如何读懂程序代码

?正正爱编发 2024-11-28 11:38:59
最佳回答
1程序代码是别人写的,只有原作者才真的了解程序代码的用途及涵义。许多程序员心里都有一种不自觉的恐惧感,深怕被迫去碰触其它人所写的程序代码。但是,与其抗拒接收别人的程序代码,不如彻底了解相关的语言和惯例,当成是培养自我实力的基石。   对大多数的程序员来说,撰写程序代码或许是令人开心的一件事情,但我相信,有更多人视阅读他人所写成的程序代码为畏途。许多人宁可自己重新写过一遍程序代码,也不愿意接收别人的程序代码,进而修正错误、维护它们、甚至加强功能。   这其中的关键究竟在何处呢?若是一语道破,其实也很简单,程序代码是别人写的,只有原作者才真的了解程序代码的用途及涵义。许多程序员心里都有一种不自觉的恐惧感,深怕被迫去碰触其它人所写的程序代码。这是来自于人类内心深处对于陌生事物的原始恐惧。   读懂别人写的程序代码,让你收获满满 2不过,基于许多现实的原因,程序员时常受迫要去接收别人的程序代码。例如,同事离职了,必须接手他遗留下来的工作;也有可能你是刚进部门的菜鸟,而同事经验值够了、升级了,风水轮流转,一代菜鸟换菜鸟。甚至,你的公司所承接的项目,必须接手或是整合客户前一个厂商所遗留下来的系统,你们手上只有那套系统的原始码(运气好时,还有数量不等的文件)。   诸如此类的故事,其实时常在程序员身边或身上持续上演着。许多程序员都将接手他人的程序代码,当做一件悲惨的事情。每个人都不想接手别人所撰写的程序代码,因为不想花时间去探索,宁可将生产力花在产生新的程序代码,而不是耗费在了解这些程序代码上。 2此文章未经许可获取自百度经验3很遗憾的是,上述的情况对程序员来说很难避免。我们总是必须碰触到其它人所写成的程序代码,甚至必须了解它、加以修改。对于这项需求,在现今开放源代码的风气如此盛行的今日,正如之前的《程序设计2.0》文中所提到的,你可以透过开放源代码学习到新的技术、学习到高手的架构设计,大幅提高学习的效率及效果。你甚至可以直接从开放源代码项目中抽取、提炼出自己所需的程序代码,站在巨人的肩膀上,直接由彼端获得所需的生产力。从这个观点来看,读懂别人所写的程序代码,就不再只是从负面观点的“被迫接收”,而是极具正面价值的“汲取养份”。   先了解系统架构与行为模式,再细读 4倘若撰写程序代码是程序员的重要技能之一,那么读懂别人的程序代码、接着加以修改,也势必是另一个重要的技能。   如果你不能熟悉这项工作,不仅在遇到你所不愿面对的局面时,无法解决眼前接手他人程序代码的难题,更重要的是,当你看着眼前现成的程序代码,却不知如何从中撷取自己所需,导致最后只能入宝山空手回,望之兴叹。   阅读他人的程序代码,大致上可以分为三种程度:一、了解,二、修改、扩充,三、抽取、提炼。   了解别人的程序代码是最基础的工作,倘若不能了解自己要处理的程序代码,就甭论修改或扩充,更不可能去芜存菁,从中萃取出自己所需,回收再利用别人所撰写的程序代码。 5虽说是“阅读”,但程序代码并不像文章或小说一样,通过这种做法,便能够获得一定程度的了解。阅读文章或小说时,几乎都是循序地阅读,你只消翻开第一页,一行行阅读下去即可。但是,有许多程序员在试着阅读其它人的程序代码时,却往往有不知从何读起的困难。   或许找到系统的第一页(也就是程序代码执行的启始点)并不难,但是复杂度高的系统,有时十分庞大,有时千头万绪。   从程序代码的起始点开始读起,一来要循序读完所有的程序代码旷日费时,二来通过这种方式来了解系统,很难在脑中构建出系统的面貌,进而了解到系统真正的行为。所以,阅读程序代码的重点,不在于读完每一行程序代码,而是在于有效率地通过探索及阅读,从而了解系统的架构及行为模式。以便在你需要了解任何片段的细节实作时,能够很快在脑上对应到具体的程序代码位置,直到那一刻,才是细读的时机。   熟悉沟通语言与惯例用语   不论如何,有些基本的准备,是阅读他人程序代码时必须要有的。 6首先,你最好得了解程序代码写成的程序语言。想要读懂法文写成的小说,总不能连法文都不懂吧。有些情况则很特殊。我们虽然不懂该程序代码撰写所用的语言,但是因为现代语言的高阶化,而且流行的程序语言多半都是血统相近,所以即使不那么熟悉,有时也可勉力为之。  除了认识所用语言之外,再来就是要先确认程序代码所用的命名惯例(naming convention)。了解命名惯例很重要,不同的程序员或开发团队,差异可能很大。  这命名惯例涵盖的范围通常包括了变量的名称、函式的名称、类别(如果是对象导向的话)的名称、代码档案、甚至是项目建构目录的名称。倘若使用了像设计模式之类的方法,这些名称更有一些具体的表述方式。  命名惯例有点像是程序员在程序语言之上,另行建构的一组沟通行话。程序员会通过共同约束、遵守的命名惯例,来表达一些较高阶的概念。例如,有名的匈牙利式命名法,便将变量名称以属性、型别、说明合并在一起描述。对程序员来说,这种方式能够提供更丰富的信息,以了解该变量的作用及性质。  对程序代码阅读来说,熟悉这个做法之所以重要,是因为当你了解整个系统所采用的惯例时,你便能试着以他们所共同操用的语汇来进行理解。倘若,不能了解其所用的惯例,那么这些额外提供的信息,就无法为你所用。像以设计模式写成的程序代码,同样处处充满着模式的名称,诸如:factory、facade、proxy等等。以这些名称指涉的类别,也直接通过名称,表达了它们自身的作用。对于懂得这命名惯例的读者来说,不需要深入探索,也能很快捕捉到这些类别的意义。  当你拿到一套必须阅读的程序代码时,最好先取得命名惯例的说明文件。然而,并不是每套程序代码都附有此类的说明文件。另一个方式,就是自己到程序代码中,大略浏览一遍,有经验的程序员可以轻易发掘出该系统所用的命名惯例。  常见的命名方式不脱那几类,这时候经验就很重要,倘若你知道的惯例越多,就越能轻易识别他人所用的惯例。如果运气很糟,程序代码所用的惯例是前所未见的,那么你也得花点时间归纳,凭自己的力量找出这程序代码命名上的规则。  掌握程序代码撰写者的心态与习惯  大多数的程序代码,基本上都依循一致的命名惯例。不过运气更差的时候,一套系统中可能会充斥着多套命名惯例。这有可能是因为开发团队由多组人马所构成,每组人马都有不同的文化,而在项目开发管理又没有管控得宜所造成。最糟的情况,程序代码完全没有明显的惯例可言,这时候阅读的难度就更高了。  想要阅读程序代码,得先试着体会程序代码作者的“心”。想要这么做,就得多了解对方所使用的语言,以及惯常运用的语汇。在下一回中,我们将继续探讨阅读程序代码的相关议题。 end 20210311
汇率兑换计算器

类似问答
  • 如何读懂自己的保险合同
    • 2024-11-28 02:38:46
    • 提问者: 未知
    1了解自己的保险合同由哪些文件构成一般来说,一份人寿保险合同,主要由保险单、现金价值表、保险条款和投保单组成。可能还会包含有一些与保险合同有关的其它投保文件、合法有效的声明、批注及其他书面协议。 这些文件,无论你是否能看懂看明白,请在收到后一定要妥善保存,以便将来在申请理赔或做保全手续时使用。2了解自己的保险合同牵涉到哪些人 投保人:向保险公司提出保险申请、与保险公司签订保险合同的人,同时也是需要...
  • 期货程序化交易源代码怎么开发
    • 2024-11-28 14:54:31
    • 提问者: 未知
    使用现成的交易**,学习交易系统的语法,将自己的交易思路转换成公式,然后执行。使用ctp交易接口,使用c++将自己的交易思路转换成程序代码,然后执行。
  • 如何读懂现金流量表?
    • 2024-11-28 11:02:35
    • 提问者: 未知
    (四张表分别是资产负债表、利润表、现金流量表、所有者权益变动表),它们都是有各自用处,互相有勾稽关系的。...经营业务造血能力强,还在变卖家当回收投资,还在向股东和...
  • 程序员如何转行?
    • 2024-11-28 09:23:14
    • 提问者: 未知
    近段时间,有很多程序员朋友问我年后会不会跳槽,以及跳槽是不是明智之举,这是很严肃的话题,我通常不会…
  • 未来 ai 是否可能自学编程写代码,代替程序员?
    • 2024-11-28 00:57:28
    • 提问者: 未知
    以图2漫画(改编自[3])为例,当用户提出的需求相对简单,且这个 ai 编程机器人可以在某个大代码库中找到能够实现这一需求的程序时,效果通常是不错的。但是如果用户提出的...
  • 重疾险如何“读懂”条款?
    • 2024-11-28 15:36:46
    • 提问者: 未知
    首先非常欣慰的是,您没有只凭着广告上面宣传的信息就放弃自己研究条款。这是非常付责任的。下面告诉您关…
  • 如何看待异乡好居老板娘控告程序员删代码?
    • 2024-11-28 20:20:46
    • 提问者: 未知
    如下图,一个我敬仰的前辈被老板娘恐高删了价值几百万的代码,我也快进入创业公司了,如果这种事情发生在…
  • 解释这个c语言代码的每个程序
    • 2024-11-28 17:45:02
    • 提问者: 未知
    max返回输入参数两个中最小的那个。min返回输入参数两个中最大的那个。
  • 啥是小程序,小程序如何赚钱?
    • 2024-11-28 13:39:42
    • 提问者: 未知
    进入微信来说,赚钱还是挺容易的。但是很多的人...一场成功的活动运营可以为小程序带来无数用户,但也需要找到和产品契合的形式和满意的工具,如百度h5、易企秀、活动盒子等。...
  • 如何快速读懂开源代码?
    • 2024-11-28 02:24:28
    • 提问者: 未知
    其实看源码最好的方式,是去看和你项目相关的代码。而不是漫无目标,见到源码就读。再好的开源代码,也...先从这种地方入手,知道怎么追踪代码,然后看人家是如何实现细节的。...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。