分享最近项目出现的问题和思想升华
每天最多的时间对着电脑鼓捣着程序,或因为一个问题不能解决而绞尽脑汁苦苦思索,或因为有了点小小的成果而沾沾自喜兴奋异常。 ----《疯狂的程序员》
软件开发是一个善于思考的职业,写程序都是要经过需求分析、设计、编码还有测试运行的。所以我在写程序的时候自然而然的就形成了一些坏毛病,例如:唯我独尊,不愿测试,不喜欢别人说自己程序烂等等。
而事实告诉我,我太把自己当回事了。
最近的最近给学校在做一个关于综合测评的BS项目,项目实现是非常容易的,但是在项目几近结束的时候发现了一个bug。
这个bug让我好几天都没有睡好觉,每天脑子中都在想是什么导致这个问题出现,怎样才能解决这个问题。
不过还好,经过了几天的痛苦折磨,在一个夜黑风高的深夜,我终于把它给解决了。
经过这次问题,我更加深刻的认识到自己在写程序上出现的一些问题,并且总结出来一些思想,今天把这些问题和思想分享给大家,和大家交流沟通,共同努力。
无风不起浪,你别把自己当个艺术家
我设计的代码是否非常糟糕,从我一敲击键盘就能察觉到。把一个方法或函数写上成千上万行,那最后不想承受洪水冲击都不行;我把所有的变量都写成i,j,k那么过一段时间之后它认识我,我却不认识它了;我不把注释写好,我还想奢望让团队的每个人都理解我的代码?可能他们到最后连我本人都不想理解了。
无风不起浪,要想风平浪静,就要运筹帷幄。让自己强大起来,做好运筹帷幄的事情。
我不是什么艺术家,我也没有那么高尚,我写出来的代码是非常烂的,没有必要把自己奉为神明,唯我独尊,东方不败的样zhi。自己写出来了代码,不去检查,不去调试,那自己做这个高尚的职业又有啥意义呢?
所以,我不要去挑剔别人的程序,有一天也许我的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。要谦虚,从周围人哪里学习经验,警戒自己不要写出这么糟的程序。
时刻告诫自己,我不是艺术家。
不注重前戏,后果很严重
前戏很重要,需求分析和设计是要要求我们对整个系统的结构和逻辑都有很清楚的理解。需求要到位,这是项目的根基,如果根基没有了,那么大楼是无从谈起的。文档和架构UML都要明确清晰明了,如果这些不明了,那么交流是项目进行中的一个阻碍。前戏阶段思路清晰非常非常重要,否则会一乱到底,乱上加乱。后果不堪设想。
所以前戏非常重要,为了避免出现意想不到的结果,还是要好好的把前戏做好。
勿以善小而不为,勿以恶小而为之
像刚才说到的无风不起浪,我们项目中会出现诸多bug,是什么原因呢?可能有很多,有些是技术上的,有些是非技术上的。
所以在这里要好好的说说这个代码编写。
1. 代码的编写,要尽量减少拼写的错误,严禁使用关键字作为变量来使用,要尽量做到代码模块化,并且保证其正确性和可重复使用性
2. 函数别写太长,功能越单一越好。函数写那么长干哈,又不是写论文,想让看程序的人累死,也想让debug的自己愁死,有木有啊!
3. 缩进要合理,当debug的时候会感受到这条带来的好处。
4. 要做代码检查工作,你不要写一万行代码再进行调试,这样增加了排错的难度。如果你把一万换成四五行,你想你的排错是不是更加容易。
5. 命名是非常有学问的事情,我一刚写程序的时候,一写变量除了i就是j要不就是k。当然我也遇到过这样尴尬的情况--写了一段代码过了一段时间后,我反问我自己,这是我写的程序吗,丫的,那个i是表示的什么变量呀!
6. 注释。做好注释不仅让自己在debug阶段更加方便而且还会让团队开发更加和谐,也会让代码更加具有亲和力。
所以编码的规范性是非常重要的,勿以善小而不为,勿以恶小而为之。