作家
登录

前辈经验 | 10+年程序员总结的20+条经验教训

作者: 来源: 2017-11-17 09:11:59 阅读 我要评论

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践


前辈经验 | 10+年法度榜样员总结的20+条经验教训

以下是我作为一名法度榜样员经由10几年时光总结出的一些有关于软件开辟的经验规矩:

一、开辟

无论是创建一个新的体系,照样添加功能到现有的体系中,我老是年腋荷琐简单到几乎没有任何所需功能的版本启动,然后再一步一步地解决问题,直到知足为止。我大年夜来没有妄图过可以或许一步登天。相反,我一边开辟一边进修,同时新控制的信息还可以用于解决筹划中。

我很爱好John Gall的┞封句话:“复杂体系老是源竽暌国度单体系的演变。”

1.大年夜小事做起,然后再扩大

2.一次只改变一件事

当我们在开辟时,碰着测试掉败和功能无效的情况,如不雅你一次只研究一个问题,那将会更轻易找到问题的关键。换言之,就是应用短迭代。必须确保这个问题解决之后,再转移到另一个问题上。这实用于向下提交。如不雅在你添加新功能之前须要先重构代码,那么先提交重构,然后再添加新的功能。

在你真正完成一个功能之前,你必须对它进行测试。不然,你怎么知道它是不是按照你的设法主意在履行呢?平日情况下,最好的办法是经由过程主动测试,但并非老是如斯。不过,不管怎么说,每一行新代码必须至少履行一次。

我不爱好那些传播鼓吹软件开辟可以“一蹴而就”的高谈阔论。不论你再怎么想方设法,bug老是不免的。最好可以或许做成可以快速故障清除、修复bug和安排修复的体系。

3.尽早地添加日记记录和缺点处理

在开辟新体系时,我做的第一件事就是添加日记和缺点处理,因为这两者大年夜一开端就异常有效。如不雅体系不克不及照常工作,那么你就须要知道法度榜样中产生了什么——这是日记的感化。缺点处理也是如斯——缺点和异常越早处理越好。

4.每一行新代码必须至少履行一次

5.在整体测试之前先辈行模块测试

先辈行部分模块测试可以节俭时光。平日说来,我们在整合不合的模块时也会出现问题,例如模块之间的接口不匹配。然则如不雅我们可以或许信赖各个组件的话,那么跟踪集盘考题就会变得简单得多。

6.所有工作所花费的时光老是比你预期的要长

特别是在编程中,即使一切进展顺利,我们也很难对功能所需的时光做出精确的预算。并且,开辟软件时碰着各类意想不到的问题长短经常见的。

侯世达定律其实道出了真谛:干事所花费的时光老是比你预期的要长,即使你在预期中已经推敲了侯世达定律。

7.先懂得现有的代码

16.橡皮鸭法

8.浏览和运行

荣幸的是,对于懂得代码,我们有两种互补的办法。你可以浏览代码,也可以运行代码。运行代码切实其实是个异常棒的好办法。所以,请确保充分应用这两种办法。

二、故障排查

9.bug老是不免的

10.解决故障申报

11.重现问题

大年夜多半的编码都须要以某种方法改变现有的代码。即使是新功能,也须要适应现有的法度榜样。所以,在你加进去新的内容前,起首须要懂得当前的解决筹划。不然,你一不当心就很有可能会打破现有的功能。这意味着,浏览代码和编写代码都是须要的技能。这也是为什么看似渺小的变更仍可能须要很长时光才能解决的原因之一——你起首必须懂得高低文。

修复bug的第一步就是重现问题。然后你得确保修复之后,问题可以或凶芄补底底地消掉。如许一个简单的规矩可以确保你不会误将非问题算作是问题,并确保解决筹划真的可以或许奏效。

12.修复已知缺点,然后再看看竽暌剐没有漏掉的处所

有时刻,可能同时存在着几个不呵9依υ?题。它们之间的互相感化,可能会让你毫无头绪,束手无策。不要纠结于搞清跋扈产生了什么,先去解决所有已知的问题,然后再看看还有什么纰谬的处所。

13.没有偶合

在测试和故障清除时,不要信赖会出现什么偶合。就像你改变了准时器的值,那么就会改变体系重启的频率。所以一切都并非是偶合。添加新功能,另一个不相干的功能变慢了?这绝对不是偶合。相反,是你应当细心查询拜访的内容。

14.接洽关系时光戳

在故障清除时,事宜的时光戳可以作为你的好副手 。寻找偶数增量。例如,如不雅体系重启了,并且方才发出过一个3000毫秒阁下的请求,那么可能是触发了某个准时器,才导致出现重启的动作。

三、团队合作

15.面对面的交换最有效

当我们须要评论辩论若何解决问题时,那么面对面的交换比视频、打德律风和电子邮件都要好。

碰到你绞尽脑汁也解决不了的问题时,不妨找一个同事,然后将问题解释给他们听。很多时刻,当你在论述时,即使你的同事一言不二,你可能也会忽然灵光乍现找到问题的关键。


  推荐阅读

  微软程序员埋的一个漏洞:竟在Office中躺了17年

据ZDNet报道,微软悄然修复了一个长途履行BUG,而这个BUG居然安然地在Windows和Office中躺了17年。安然公司Embedi最早申报了马脚,他们在一个老旧的微软对象Equation Editor中的EQNEDT32.EXE可履行法度>>>详细阅读


本文标题:前辈经验 | 10+年程序员总结的20+条经验教训

地址:http://www.17bianji.com/lsqh/38956.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)