软件随想——为什么你需要提高软件的技术水平?

   在做了一个又一个项目后,经常会有一种感受:一个项目用土方法很快就完成了,而采用更高技术水平的手段做项目却花了成倍的时间?
    那是否还有必要保持对技术水平的追求呢?必要。对更高技术水平的追求,都不是为了解决当前的问题,而是为了解决以后的问题。
   1. 即便是在IT这个行业的人,都常常会陷入一个误区,把快当成好。不论是客观(认知水平过低)还是主观原因(比如在公司里,你写得慢天天有人催,也没有多少领导关心代码质量;而写得快就有奖励,至于写完后的代码质量反正都是大家一起扛着,就随便咯)。而实际上,这种思维对于自由职业者、初创企业以及对自己有严格要求的人是非常致命的。因为,一切问题都会在以后报复你,通常是在半年以后。你着手开始新的项目,而旧的项目不断报BUG或者有新功能需求,再去看这些代码就会有一种:卧槽,这谁写的垃圾玩意;为什么要这么做呢?解决BUG可能很简单,但是你还是需要再对代码熟悉一下才能着手干活,熟悉时间的长短就取决于对代码质量,而代码质量呢,既取决于你所采用的技术框架,也取决于你本身的技术水平,这两者本质上都是技术水平的体现。
    所以如果一个软件的使用周期是3年或更长的话,可想而知你要在重新熟悉上浪费多少时间,实际情况来看,这些时间总是超过之前为了快而省下的时间。这其实也便是维护量大的原因。
   2. 虽然我们在这个项目上慢了,但是我们也不是只做一个项目啊,当采用更好的技术手段保证软件质量的方法运用得更熟练时,效率也一点点跟着更快的提升。我们用旧方法快纯粹是因为熟练度远远高于先进的软件管理;则在采用更高技术含量的手段时,主要时间其实是花在熟悉上。典型的对比就是你做嵌入式无操作系统,那不需要了解多少东西;可是如果你用Linux做内核,那要学的东西可就多得多了; 同时,当你使用jQuery去开发前端时也不需要了解多少东西;而如果你想用AngularJS或者React,再配合gulp,webpack等先进工具,你这条路可就长了。
    3.你做的项目复杂度不够,想象一下你做一个展示类官网,只需要jQuery+CSS+HTML4再配合个简单的CMS后台即可;可是如果你做的是一个管理整家公司的CRM WEBAPP,再用同样的方法保证让你崩溃。人其实是一种自我实现的生物,当你追求软件的技术水平时,你会发现你能完成越来越复杂的项目,进一步认为软件技术水平很重要;而让你认为软件技术水平不重要时,其实做的项目也不会很复杂,甚至于以维护为主,进一步推动自我认知:技术水平不重要。那么从长期来看,你认为哪种认知有利于自己的个人成长呢?

    因此,所有提高软件技术水平的努力其实追求的是一种长期回报。
posted @ 2017-03-20 12:59  枫叶落一地  阅读(382)  评论(0编辑  收藏  举报