提前代码优化的教训

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21845263/article/details/84934525

总是想着写高性能代码,但是对于一个项目而言,一开始就特别注重高性能代码往往会:

1.大大提高代码量
2.增加写代码难度
3.Bug率飙升
4.项目完成时间大幅增加

比如对于现在这个用Netty写个服务器的项目,本来如果用Http协议就好了,虽然对于这种环境性能不是很高,但是可以很快地实现这些功能,然而我从一开始就自定义协议,以高性能为导向,但是这么做的代价是架构变得更加复杂,自定义了一大堆协议类型,代码大大增加,同时Bug率飙升.如果从一开始就用Http协议,就没有那么多事了,本来在需要高性能的地方,再采用自定义的高性能协议就好了.

其实一个项目有很多地方要考虑,比如在给定时间内完成是一个很重要的因素,企业里面,项目无法及时完成后果很严重,而性能问题往往可以通过加钱买机器来解决.当项目的性能出现瓶颈时,往往可以后期优化解决瓶颈.更何况对于一个项目,能不能用这才是首要的,有足够的性能却没有完成这个项目那这个项目是失败的.
性能的优化是无止境的,你这么考虑性能,那你怎么不用汇编去写呢?你怎么不直接从机器码的01开始写起呢?这样性能绝对够,但是这样对于一个小型项目恐怕都得写个十几年.

以后只能这样告诉自己了:

你这么想着优化性能,你怎么不从汇编开始写呢?
你这么想着优化性能,你怎么不从汇编开始写呢?
你这么想着优化性能,你怎么不从汇编开始写呢?

以后应该如何做呢?
如果做的项目有时间限制,那么尽可能选择能快速完成项目的技术来做,逐步迭代优化,如果是个人项目且时间充裕,那么依然先最快完成项目,完成后慢慢用各种方式优化然后重构代码.如果是做个小型个人项目(暂定1000行代码以内的),并且没有什么时间限制,那就可以花较多时间去代码优化.

其实,一个项目的书写代码的难度也是挺重要的,如果难写,往往也容易出bug,更重要的是打击一个人的自信心,让自己更不想去完成项目,这往往导致个人项目尚未完成就被废弃.容易写出来才是首要的,这样才能够感受到写代码的乐趣.

2018/12/10 08:28

猜你喜欢

转载自blog.csdn.net/qq_21845263/article/details/84934525