跨平台app吧 关注:13贴子:206

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

只看楼主收藏回复

开发
1.从小事做起,然后再扩展
无论是创建一个新的系统,还是添加功能到现有的系统中,我总是从一个简单到几乎没有任何所需功能的版本启动,然后再一步一步地解决问题,直到满意为止。我从来没有妄想过能够一步登天。相反,我一边开发一边学习,同时新掌握的信息还可以用于解决方案中。
我很喜欢John Gall的这句话:“复杂系统总是源于简单系统的演化。”


来自Android客户端1楼2015-12-06 09:26回复
    2.一次只改变一件事
    当我们在开发时,碰到测试失败和功能无效的情况,如果你一次只研究一个问题,那将会更容易找到问题的关键。换言之,就是使用短迭代。必须确保这个问题解决之后,再转移到另一个问题上。这适用于向下提交。如果在你添加新功能之前需要先重构代码,那么先提交重构,然后再添加新的功能。


    来自Android客户端2楼2015-12-06 09:28
    回复
      3.尽早地添加日志记录和错误处理
      在开发新系统时,我做的第一件事就是添加日志和错误处理,因为这两者从一开始就非常有用。如果系统不能照常工作,那么你就需要知道程序中发生了什么——这是日志的作用。错误处理也是如此——错误和异常越早处理越好。


      来自Android客户端3楼2015-12-06 09:29
      回复
        4.每一行新代码必须至少执行一次
        在你真正完成一个功能之前,你必须对它进行测试。不然,你怎么知道它是不是按照你的想法在执行呢?通常情况下,最好的方法是通过自动测试,但并非总是如此。不过,不管怎么说,每一行新代码必须至少执行一次。


        来自Android客户端4楼2015-12-06 09:32
        回复
          5.在整体测试之前先进行模块测试
          先进行部分模块测试可以节省时间。通常说来,我们在整合不同的模块时也会出现问题,例如模块之间的接口不匹配。但是如果我们能够信任各个组件的话,那么跟踪集成问题就会变得简单得多。


          来自Android客户端5楼2015-12-06 19:46
          回复
            6.所有事情所花费的时间总是比你预期的要长
            特别是在编程中,即使一切进展顺利,我们也很难对功能所需的时间做出正确的预算。并且,开发软件时碰到各种意想不到的问题是非常常见的。
            侯世达定律其实道出了真谛:做事所花费的时间总是比你预期的要长,即使你在预期中已经考虑了侯世达定律。


            来自Android客户端6楼2015-12-06 19:46
            回复
              7.先了解现有的代码
              大多数的编码都需要以某种方式改变现有的代码。即使是新功能,也需要适应现有的程序。所以,在你加进去新的内容前,首先需要了解当前的解决方案。否则,你一不小心就很有可能会打破现有的功能。这意味着,阅读代码和编写代码都是必要的技能。这也是为什么看似微小的变化仍可能需要很长时间才能解决的原因之一——你首先必须了解上下文。


              来自Android客户端7楼2015-12-06 19:47
              回复
                8.阅读和运行
                幸运的是,对于理解代码,我们有两种互补的方法。你可以阅读代码,也可以运行代码。运行代码的确是个非常棒的好方法。所以,请确保充分利用这两种方法。
                故障排除


                来自Android客户端8楼2015-12-06 19:48
                回复
                  故障排除
                  9.bug总是难免的
                  我不喜欢那些宣称软件开发可以“一蹴而就”的高谈阔论。不论你再怎么费尽心机,bug总是难免的。最好能够做成可以快速故障排除、修复bug和部署修复的系统。


                  来自Android客户端9楼2015-12-06 19:49
                  回复
                    10.解决故障报告
                    每个开发人员都应该花时间去处理来自客户的故障报告,并修复bug。这能让你更好地理解客户的意图,明白如何使用系统,知道排除故障的难易程度,了解系统的设计情况。这也是为自己的开发成果负责的好方法。


                    来自Android客户端10楼2015-12-06 19:53
                    回复


                      来自Android客户端11楼2015-12-07 13:26
                      回复
                        11.重现问题
                        修复bug的第一步就是重现问题。然后你得确保修复之后,问题能够彻彻底底地消失。这样一个简单的规则可以确保你不会误将非问题当作是问题,并确保解决方案真的能够奏效。


                        来自Android客户端12楼2015-12-07 20:18
                        回复
                          12.修复已知错误,然后再看看有没有遗漏的地方
                          有时候,可能同时存在着几个不同的问题。它们之间的互相作用,可能会让你毫无头绪,束手无策。不要纠结于搞清楚发生了什么,先去解决所有已知的问题,然后再看看还有什么不对的地方。


                          来自Android客户端13楼2015-12-07 20:18
                          回复
                            13.没有巧合
                            在测试和故障排除时,不要相信会出现什么巧合。就像你改变了定时器的值,那么就会改变系统重启的频率。所以一切都并非是巧合。添加新功能,另一个不相干的功能变慢了?这绝对不是巧合。相反,是你应该仔细调查的内容。


                            来自Android客户端14楼2015-12-07 20:19
                            回复
                              15.面对面的交流最有效
                              当我们需要讨论如何解决问题时,那么面对面的交流比视频、打电话和电子邮件都要好。


                              16楼2015-12-07 20:21
                              回复