初入编程时的我,作为新手,一直很迷茫,从未有方向。总觉得高级程序员,像天空中的星星高高在上。不知道自己通过怎样的姿势,才可以到达。
直到有一天我阅读了《程序员修炼之道:从小工到专家》,里边的这几条至今受用,以下是我的分享,供也在迷茫期的你参考。如果受用,请把他们记在心里,贴在桌子上。
1、要有负责心
在我们的每日工作中,有一半以上时间是在解决各种Bug。高级程序员在面对这些Bug时会从多个维度思考,Bug出现的时间、系统环境、硬件版本以及软件版本等等。接着修复问题,严格自测,上线后观察,一直会跟进到底,把影响降低到最小。
他们会主动承担责任,为结果负责。面对各种问题时,不是第一时间为自己找借口,不是互相推脱,互相指责。而是,想尽一切办法解决问题,即使解决不了,也会给出最优选择。
责任心在程序员的职业生涯中,具有最重要的指导意义,也是成为高级程序员必须具备的素质。
2、掌握代码调式技巧
众所周知,在移动互联网时代,基于市场和需求的变化,项目周期的变化也会很快。有时一个月的工作计划,会缩短到2个星期。面对巨大的项目压力,程序员的代码质量会有所下降。
这时调试技巧就尤为重要。一行代码的输入输出要清楚,一个函数的输入输出要明确而具体。高级程序员会在函数的开始和结束输出Log,把所有的参数和返回值打印到日志系统,便于追踪。在解决问题的过程中,使用开发工具一行一行进行调试,实时观看参数的变化。
高级程序员清楚的知道他写的每一行代码在项目中的作用和意义。
3、不要重复造“轮子”
我们对代码的记忆最多只有2天,如果代码没有注释说明,也许第二天一早就会忘记它的具体意义。30天之前写的代码相信没几个人会记得。
重复是怎样发生的呢?
1.程序员们没有意识到他们在重复。
2.程序员们偷懒,他们重复,因为那样似乎更容易。
3.同一个团队的几个人重复同样的信息。
新需求持续进行迭代,需求的变化导致代码需要重新修改。这时的程序员也未必是当初那个程序员,导致隐藏的问题产生,产品到用户手上随时可能会爆发问题。
高级程序员会尽力避免开发重复的代码,组装成公共组件库是最好的选择。
4、尽量使你的程序解耦
全球首位计算机博士David Wheeler曾经说过这样一句话,“计算机科学领域的任何问题都可以通过增加一个中间层来解决”。这句话诠释了解耦的重要性。网络七层协议的设计,软件开发的设计中,数据层、服务层和应用层,无不参考这位伟大计算机博士的思想。
生活中随处可见这样的例子。共享单车的出现,就是对我们出行的解耦合。你要做的就是在你需要的时候去使用,不需要了解更多的细节,出现问题了也不需要你去维修,只管用就好。
高级程序员开发的代码,既屏蔽细节,又提高了灵活性。
5、适当的进行重构
重构是改善现有代码的设计。在给外部提供接口不变的前提下,随着时间的推移,在内部重写、重做和重新架构代码。
什么时间做最好?做的太早,看不出有做的必要性。做的晚,耗费大量的时间周期,会影响当前的项目。
初期的系统架构设计以简单、易用为主。在创业公司3、5个人一个小队,开始了一个项目。在人力资源匮乏的条件下,首要任务是先把系统搭建起来,短期实现基础版。后期随着需求的增加,系统变得庞大。早期的架构明显有些弊端,不能跟随项目进行发展。这时候重构就势在必行了。
高级程序员清楚在什么时间点进行重构。在不影响外部系统的情况,重新开发,提供更稳定的服务。
6、积累自己的代码库
如果你做了多年的软件开发,没有积累自己的代码库,没有做好笔记。面对新的项目,所有代码重写一遍。无疑了浪费了很多时间。网络上也可以下载到相关代码,但随手的一个小功能,如果在自己的代码仓库里积累好。也省去了搜索的时间。
高级程序员会积累自己的代码仓库
7、实践、实践、再实践
有很多原则和道理我们听过无数遍,但是从来没有去实践。如果不经过几十万行代码的锤炼。很难达到一个高度。外部环境的支撑很重要。但是,如果没有这样的机遇,就需要我们创造条件去寻找。
高级程序员会不停的实践,总结,再实践!