分享
 
 
 

{End bracket} 什么造就好的代码?

王朝vc·作者佚名  2006-01-17
窄屏简体版  字體: |||超大  

{End bracket}专栏...

什么造就好的代码?

原著:Paul DiLascia

翻译:James Liu

原文出处:MSDN Magazine July 2004 ({ End Bracket }: What Makes Good Code Good?)

当 MSDN 杂志让我就我关心的问题写一个专页时,我说:“你是说废除税收,车载电话,或者SUVs?吗”唉,原来他们指的是一些关于编程的东西。经过一番思考,我觉得我所关心的问题是

编写好的代码。从 Redmond 到 Zwaziland,众多的书籍和杂志不遗余力地解释如何使用最新的 API 或者某些高级对象,就是没有关于如何

编写好的代码以及何为好的代码的内容。

一个好的程序运行没有瑕疵,没有臭虫。到底是什么内在的因素使然呢?其实这并不神秘,我们只需要偶尔用点心思提醒自己,无论是使用C/C++、C#、Java、Basic、Perl、COBOL 还是 ASM 进行编码,所有好的编码无不显示出同样的特点:简洁

、易读、模块性、分层、设计、效率、优雅和明晰。

简洁意味着你能用五行完成的代码,就不要用十行。这需要你额外的努力去简化,但不要过分以至让代码晦涩难懂。组织,实现和设计的简洁,可以使你的代码更可靠,远离Bug,不出错。

易读就是要让别人能读懂你的代码。需要写好注释,遵循变量命名规范,不要自作聪明的任意命名。例如“taxrate”就比“tr”要好。

模块性是说你的程序像宇宙万物一样。这个世界是由分子组成的,而分子是由原子,电子,核子,夸克和谎言(如果你相信的话)组成。同样,好的大型系统程序是由一些小的部分组成,而这些小的部分则由更小的

构件块组成。你可以写一个只有最基本功能的文本编辑器:移动,插入和删除。正如原子可以以各种奇妙的方式组合,组件可以被重用一样。

分层让你的程序从内部看起来像一块夹心蛋糕。应用程序建立在框架之上,而框架建立在操作系统之上,而操作系统又建立在硬件之上。即使是在应用程序内部,仍然需要分层,比如

:文件-档案-视图-框架(File-Document-View-Frame)等。高层会对低层进行调用(调用下行,响应上行)。低层永远都不会知道上面的高层是什么。如果Doc直接调用Frame,事情就会变的很糟糕。模块和分层是通过API来定的,API对它们的边界进行限定。由此看来,设计是非常关键的。

设计意味着在你的程序建立之前,需要花时间对它进行很好的设计。毕竟,早期的认真构思比后期的费力调试要合算得多。一个值得称道的准则是用一半的时间进行设计。你需要有一份功能说明书(描述程序做什么)和一份开发计划。所有的API必须书写成档。

效率意味着你的程序运行快而且代价小。不会引起文件以及数据链接等的冗余。它仅仅做它应该做的。有序地进行加载与卸载。在函数层面上,你总是可以在测试中不断的进行优化。但在更高的层次,对性能你必须有很好的计划。

优雅和美一样,你很难去描述,但却很容易识别。优雅是汇集了简洁,高效和华丽而创造出的一种感觉。比如:int fact( int n )

{

return n==0 ? 1 : n * fact(n-1);

}

明晰是所有其它特性中最重要的一个。计算机为创造比物理硬件复杂的多的软件系统提供了可能性。编程最大的挑战就是管理复杂性。简洁、易读、模块化、分层、设计、效率和优雅都是非常好的达到明晰的

途径,专门用来对付复杂性。明晰的编码、明晰的设计、明晰的目的。在每一个层面上,你必须真正理解你所做的一切,否则就是不明晰。一个不好的程序之所以失败,通常不是由于缺少编码技巧,而是没有一个明确的目标。这就是为什么设计是最重要的原因。它让你诚实,如果你不能写下来,你不能向他人解释,你就没有真正明白你所做的事情。

有太多的东西我没有说,但我必须再补充一点。不到万不得已不要放弃编程的准则,除非你为了得到某种便利,或者你已经陷入窘境,程序已经在运行而且你没有时间去改正。但要记住的是:你不按编程准则,必须要做

得足够巧妙,最好还带一点点美感。如果出了什么问题,不要怪我哦。最后,

祝编程愉快!

本文由 VCKBASE MTT 翻译

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有