好代码是怎么炼成的

集百家之长, 归我所用 - Follow Basic Coding Style
1.代码能够清晰的表达你的思路
2.代码应该具备自解释能力,注释代码别是单纯解释语句,这种注释毫无疑义
3.编码的缩进和排版规范
4.所有的函数和变量应有他人容易理解的名字
5.将Tab键改用为4个空格字符
6.减少但个函数的长度,控制在50-100行以内
7.避免幻数,多使用枚举和常量的定义

取个好名字 - Use Naming Conventions
1.采用匈牙利命名法对变量进行命名
2.名字要清晰表达含义,不要怕长

凌波微步, 未必摔跤 - Evil goto’s? Maybe Not…
1.goto的使用应该遵循原则,而不是全盘否定
2.不用写高深晦涩的语句,不要一味追求性能忽视代码可读性
3.模式并不是一味正确,特定问题更需要考虑反模式

先发制人, 后发制于人- Practice Defensive Coding
1.尽量保持代码的简洁和简单
2.调用其它接口和函数时候首先对返回值进行检查
3.避免有符号/无符号,32位/16位,被零除等误算情况

见招拆招, 滴水不漏 - Handle The Error Cases: They Will Occur!
1.通过异常处理机制来保证程序代码的健壮性
2.异常处理中一定要注意资源的释放
3.异常处理要关注日志的详细记录,便于后续BUG分析
4.不用把后台编码或系统异常直接抛给用户

熟习剑法刀术, 所向无敌 - Learn Win32 API Seriously
1.Win32 API是微软平台编程根本
2.对系统强大的公用类库的熟悉和整理将事半功倍

双手互搏, 无坚不摧 - Test, but don’t stop there
1.如果你没有进行测试,你完成的代码将仅仅是个半成品
2.尽可能多的对自己的代码进行测试
3.编码人员应该更专注于百盒测试和单元测试
4.要善于使用JUnit,NUnit,PureCoverage,Compuware,NCover等测试工具
5.相互间的Review和走查是对代码可维护性的重要测试手段
6.有特殊性能要求时候需要对相关功能或模块单独进行性能测试

活用段言 - Use, don’t abuse, assertions
1.断言可以很好的描述假设和不可能的情况
2.断言对程序Debug很有用,可以尽早的发现程序问题

草木皆兵, 不可大意 - Avoid Assumptions
1.考虑到用户使用的各种场景
2.不用假设用户会正确输入数据,要做好各种完整性和边界的检验
3.程序中70%左右代码是为了保证这种完整性服务的,正常条件下功能可能30%代码就实现了

最高境界, 无招胜有招 - Stop writing so much code
1.一味拷贝粘贴代码就是在制造拷贝BUG,这种代码对系统无任何意义
2.编码过程注意重用,函数级->组件级->系统级
3.通过重构持续改进代码质量,改进自我逻辑思维

最后总结下:
1.养成良好编码习惯,你面试的一小段代码可能就足一展现你全部陋习。
2.熟练使用好各种辅助工具,但不要全部依赖工具,最主要是学习分析和设计的思考方式
3.注重单元测试,关注程序性能,可维护性,可测试性是编码技能提升重要手段
4.通过重构使编码过程形成完整闭环的反馈回路,重构能力可以很好体现自己的设计能力
5.养成良好习惯,形成自己的编码过程检查单,多请教老员工可能事半功倍。

时间: 2024-10-06 04:53:42

好代码是怎么炼成的的相关文章

好代码是怎样炼成的

编程是开发者的强力技能,而代码则是开发者的有效武器,那么好代码是怎样炼成的呢?我想分享一下以下这些想法,因为我觉得这些对于这次重要的讨论来说是一个有趣的起点.好代码并不只是可以编译而已,它还会沟通.它会和现在的你交谈,也会和以后维护代码的你交谈.它对于你的团队和任何外部来查看的人来说都是可以被理解的.好代码对可靠性和可测试性的要求胜过聪明的小技巧.如果需要清晰的表明自己的意图和结果,好代码会更倾向于使用一个或多个额外的步骤来表达.好代码也考虑其使用程度,一段代码一次跑一百万遍和只跑一遍的要求是不

高性能的移动用户体验是这样炼成的!

在人际关系中,良好的第一印象是很重要的,人们愿意在彼此身上寻求信任与诚实,并期望在接下来的经历中重现和增强这些好感.相同的道理也体如今移动应用或互联网产品中.在打造良好的品牌信誉及其与终端用户之间持久信任关系的过程中,"设计"扮演着极其重要的角色. 在用户的期望中,移动应用应该是准确.友好和高效的.然而,移动设备自身的局限性确实为产品的设计带来了不少挑战.要打造值得信赖的移动应用用户体验,产品在性能方面的表现是极其重要的关键因素.  本文中,我们将对移动应用的设计与性能表现之间的关系进

优秀的JavaScript模块是怎样炼成的

引言:如今的JavaScript已经是Web上最流行的语言,没有之一.从Github上的语言排行榜https://github.com/languages上即可看出,也是如今最为活跃的开源社区.随着Node的加入,JavaScript开枝散叶进入服务器领域,为这个语言榜的占比,也贡献了几分热度.尽管经历了Web2.0的洗礼 ,但在国内谈及开源,开源人士似乎都当这门语言并不存在,这也意味着国内的开发中坚阶层,并没有改变JavaScript以及前端过去二流形象的认识,也没意识到JavaScript如

【转】雄鹰计划-卓越工程师炼成记

原文网址:http://bbs.elecfans.com/jishu_400775_1_1.html 注意:雄鹰计划所有信息都将有朱兆祺ForARM进行实时更新,注意不良人士的骗局.这个计划全程免费.报名审核通过者凭借电子发烧友论坛用户名完成下面三项: 1.朱兆祺ForARM步步为营之单片机QQ群:110291944,凭借电子发烧友论坛用户名加入. 2.朱兆祺ForARM步步为营之单片机PCB领取,拍下时凭借电子发烧友论坛用户名领取: http://item.taobao.com/item.ht

第八章--注册码是怎样炼成的

你应该明白的是,并不是所有的软件作者都像你想象并希望的那笨 没有人愿意自己的软件被别人在调试器中用一条d指令就能找到正确的注册码...要是那样的话还出来搞什么? 前 边儿我们讲的查找软件注册码的方法是有针对性的,必须保证的是该软件使用的是明码比较,这样的话,我们只需找对地方,一个d指令就成了.那既然有明码比较 这个词,就不难猜出还有相应的非明码比较...非明码比较也比较容易理解,就是软件比较两个注册码的方法不同而以,并不是计算出正确的注册码后就与用户输 入的进行比较,它可能会采用每计算出一位就与

技术高手如何炼成?--转自知乎

原文地址:http://zhuanlan.zhihu.com/zhengyun/20270317 觉得蛮好,转给自己与相同问题的看看 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:郑昀链接:http://zhuanlan.zhihu.com/zhengyun/20270317来源:知乎 关键词:成长,知识体系,学习金字塔,论坛,博客,RCA,分享会本文档适用人员:技术人员 面试的时候,我会问面试者,你日常如何构建自己的知识体系,如何让自己更高更快更强?多数工程师并没有

谈谈一个优秀的程序员是如何炼成的

一个优秀的程序员是如何炼成的?他们关注什么?问一下自己这个问题会很有意思.这能让你好好思考一下软件开发的过程.拿它来问一下同事也不错,这能引起一些关于如何一起协作的很有意思的讨论.下面是我认为成为一名优秀的程序员所必需的5个技能. 问题分解 编程讲的是如何解决问题.但在你开始写代码之前,你需要清楚如何解决问题.一个好的程序员应该得拥有这样的技能,他能将问题分解成子问题,直到每个子问题都可以很轻松地进行解决.不过要找到一个解决问题的方式可不是件简单的事.好的程序员能够很好的对问题进行建模,这样写出

OSChina 周六乱弹 —— 加班狗是怎样炼成的?

周六,又到了与周末撕逼的时候了,不说了,单身狗求约! @光子123 :唉,又到周末了,单身狗求约 @从今以后 :唉,又到周末了,单身狗求约 @CMAD :唉,又到周末了,单身狗求约 @Guest_Main :唉,又到周末了,单身狗求约 @火红莲 :唉,又到周末了,单身狗求约 介么多求约的,温馨提示:性别不和的不要约哦,不符合 OSC 是全国最大同性交友平台的宗旨! @贾顺名 : @红薯 免费打广告就不说什么了. 为了大家 @开源蜂蜜:周末又到了,发现一大批单身狗,来跟妹子一起写代码吧. 介个小小

[转]程序员高手是怎样炼成的?

估计很多的朋友在很小的时候就看过奥斯特洛夫斯基同学的<钢铁是怎样炼成的>,偶小时候在农村混,看的最多是各式各样的牛屎以及长得极象牛屎的山头,这些所谓的名著偶直到大学才有机会拜读,但说实话,偶是个俗人,还是更喜欢看一些痞子写的文字或带COLOR的BOOKS.偶之所以写这么个主题,主要是太多的朋友给偶发EMAIL或在VCHOME.NET提问,偶其实也与大家一样为生活而奔波,因此没有时间一一作答,在这作一次回答,还望海涵. 高手是一个哗众取宠的词汇,世上本来并没有高手,说的人多了也就有了高手,我看程