作完了,终于做完了!几个晚上忙碌到凌晨。有成果了。这是最终的截图:

本来想把这篇blog写成技术类文章,也谈谈软件架构阿,设计模式阿,重构阿,扩展性阿,双缓冲画图阿等等,但是,Coding结束之后,却没有心情再谈这些技术,一个是因为自我感觉水平的确还没高到可以蛊惑世人的程度,第二个是万一分析技术发现了更好的设计,担心自己不睡觉,又回去Coding。

这个程序基本上就是GDI画图,BitBlt, LineTo,CreateSolidBrush偶早就已经驾轻就熟了,所以从头到尾就没有遇到什么技术难题,但是画图根画图不一样,因为没有技术问题,所以想的更多的是Design上的东西。稍微在这个小程序中用了一些Pattern和OO的思想。有点感悟,或许这就是万老师说的,代码编得多了,才会想到模式,架构。

认识好多在软件公司里的同学,好多都说他们的软件烂,上次回嘉定,SAP中国研究院的同学说他们的某款软件BUG狂多云云,还有一位华为的工程师更直接,原话:“在中国电信跑的几千万的项目,代码写的都跟屎一样”。

或许进了软件公司,很多项目都是被进度和时间所束缚,内有老板,PM催,外有客户赶。在这种情况下,实现代码的功能就成了第一位的工作。至于优美的设计,良好的可扩展性,OO,Who cares?设想,给了客户一个功能没有完全实现的程序,然后告诉他:这个程序代码风格优良,注释完整,扩展性好,灵活运用了多种设计模式和OO的思想,采用国内外最先进的软件工程思想和过程管理工具进行项目管理……客户会什么反应。这样,还不如给客户一个设计烂点,代码乱点,bug有点,注释少点,维护性差点,但是客户需求的功能全都实现的程序。或许你会问,后续工作怎么办?后续的事情当然后续再说了。不管怎么着,还可以用“No Silver Bullet”来当挡箭牌。

或许,这也是某些软件公司和软件工程师的无奈。心有余:期望努力的设计,架构,完善一个系统,而力不足:最终,还是被时间和进度拉回到了现实中来。