你未必非要按照楼主那十条一条一条来,但是要了解楼主传达的思想:做设计前要做好文档工作(包括基本的流程图、时序图以及文字说明)。很多工程师都忽略这一点,认为文档工作浪费时间。你写个几十行的代码,可能不需要流程图,但是关键是要养成良好的习惯。因为你不可能总写小程序。 我工作中主要用FPGA,我们设计的每个子模块都要有文档:接口信号定义,模块功能介绍,详细设计实现思路,详细的时序图(因为是FPGA,很底层的东西,所以要精确到每个周期)。开始项目经理让我这样做,我也觉得很烦,很麻烦,可是做了几次,发现了好处: 首先,写文档、画流程图和时序图的时候,就是在思考和设计了,文档写完了,其实设计已经完成了一多半,而之后写代码、仿真和调试,只是对先前设计的验证。我喜欢用visio画图,主要的设计时间也花在了画图上。图画完了,也想清楚了,剩下就是把图插到文档里,添上文字和表格,思路再清晰一下。之后就是照着文档写代码了,写代码这部分我认为是不用太费脑子的,我有时会拿回家听着音乐,聊着QQ做。而在调试过程中遇到的问题,追溯起来也很方便。实践中,我感觉这样反而是省时间的(当然,别拿小程序说事,一辈子总写小程序也没啥出息)。 其次,维护和升级成本大幅度降低,技术交流也很方便。我现在写一个模块,可能几个月后让我加入新功能,那时可能很多东西都忘了。而有文档就好了,当时怎么想的,某些功能是怎么实现的,在哪里改代码比较合适:一清二楚,省去很多时间。更何况有时候这种升级、维护工作可能要交给别人去做,谁也不想自己写完模块半年甚至更长时间之后还让人追着屁股问这问那吧?那么文档是最好的方法,从个人角度说你省了事;从公司角度说,人力成本大幅度降低(他问你,浪费的是两个人的时间成本)。 为什么很多工程师不喜欢写文档呢?一则可能是嫌麻烦吧。我觉得吧,虽然现在我们是工程师,可能只负责一块,但是要试着去从更高的层次去思考和看自己的工作,这是有利于个人成长的;二则可能是有技术保密的考虑吧。很多人还是怀着“教会徒弟饿死师傅”的思想,怕自己很容易被替代,总喜欢保持神秘感。其实技术是学不完的,放宽心态,与其盯着自己现在的这点东西,不如多丰富自己,让别人永远追不上自己,那才是真正不可替代的。这对自己和团队都是有益的。你将来的高度,取决于你的心的宽广程度。 以上是我的一点体会,有不对的地方欢迎指正。 |