我以前觉得自己很聪明,在公司写软件的时候也这么觉得。但是当我作为一名自由职业者写软件的时候,觉得自己很笨,脑子不够用,掉进泥窝里面,怎么也不爬出来。真的
在对客户改变或者增加功能,而我很难甚至无法修改代码时候,让我感到痛苦不堪,对自己能力产生了极大的怀疑,而且心情很糟(我承认我是一个很情绪化的人,这是事实)。
但是我既然做了自由职业者,我必须继续干下去,我必须赚钱生活。所以,为了调节心情,我看《道德经》《菜根谭》,寻找让自己心情平复下来的方法。在读了那些书之后,我明白一个道理,求不得,爱别离、憎相逢是人最痛苦的事情,一个人做不到事情,不能强求,比如喜马拉雅山不是每个人都可以登上去的。男人也可以说自己不行。一个人要敢于承认自己在某一个方面某一件事上失败,并不丢人。人不能太过要强,刚者易折,强及则辱,这是人之常情。做事如同一场赌局,输了,那就潇洒离场,别在桌子上硬撑,你没钱了,再待下去只能让别人耻笑。所以在我做的第三个项目,我向客户承认,不好意思,我做不了。
在第三个项目失败后,我开始疯狂寻找第三个项目解决方案,串口通讯效率低,那用多线程,用一个线程实时检测inbuffercount值,达到返回数目后,检测数据是否正确,然后立即再次发送查询,把通讯效率达到硬件的极限。 同一个form代码过多,用类load form,把通讯封装到类模块里面,以减少form里面的代码。经过艰苦的学习和总结,我终于恢复了一点信心,所以我又勇敢的接了第四个项目。(有人问,为什么你技术不行,客户还会给你做项目,答案是那时候我会忽悠)
所以在第四个项目里面,共有2个PLC、6个智能电源、6块数显表、1个气密性检测仪,总共13个串口,我也很容易的解决了串口通讯问题。但是随着开发的进度,又出现了代码难于修改的问题。因为在总结第三个项目失败的时候,我在网上参考了很多资料,我尝到了学习的甜头。所以这次,我开始寻找修改代码的方法。这时候我发现了重构,我到现在都记得,看到重构技术的时候,多么的欣喜若狂,感到发现了一座宝藏,好像流浪汉遇到了面包,黑夜看到了黎明。我决定把重构技术用在项目上,于是我向客户说,我要打点技术资料,借用客户的打印机,白天打了100多页《重构:改善既有代码的设计》,晚上又偷偷的打了100多页。
虽然重构最后没达到我的预期效果,因为开头软件设计太烂,无法进行单元测试,整体测试又麻烦,更重要的是,除了消除重复代码外,我不知道往什么方向重构,怎样的代码才算是好代码。即使这样,重构还是帮我基本顺利的完成了项目。
在第四个项目结束后,我开始研究重构,到底往什么方向重构?我又开始学习,所以我找到了设计模式。重构的目标——设计模式。