论 设计模式及项目架构的作用

  在公司技术架构部呆了快两年了,做了一些中间件,也做了很多项目的重构、技术升级或者code reviewe等工作,对项目的架构设计、技术运用有了一点儿的感悟,写一下算抛砖引玉。

  所有的技术的出现都是为了满足业务的需要,这是基础,在基础之上有了我们需要的合理的项目、架构、模式设计。这是为了节约成本,成本在哪体现呢?成本在于项目的开发维护成本(人工),服务器成本,宽带成本,沟通成本,运维成本等。

  如果一个项目一个节点的部署就抵得上五个节点部署的性能,那节约了成本吗?节约了,节约了成本就意味着为公司提高了效益。

  如果一个良好设计的项目,一个初中级程序员只花了一天就可以很清楚的了解项目的设计思想,知道他需要修改的代码在哪个模块儿,并且整个项目感觉条理清晰,代码整洁,那么他的效率就发生了提高,节约的是人工成本,同时也是提升了效益,可是如果反过来说,一个项目模块儿不清楚,项目杂乱无章,一个中级程序员需要三天时间才能run起来,而且不知道自己将要做的功能,代码应该写在哪,那么这个项目时间久了就成了“垃圾”,而且为公司降低了利润。

  如果一个程序员写出来的代码,性能极好,比如,单线程换成了多线程,比如socket换成了netty,同步换成了异步,轮询变成了监听,各个地方都做到了极好,原来需要20个节点才能扛起来,现在只需要五个,那么它节省的也是一大笔费用,要知道一个阿里云4核16G的机器也得3000多一年。

  可是一个程序员怎么才算是好的程序员呢?

  我认为,一个能理解简单业务需求并独立完成开发并解决简单问题的是初级。

  能搞定复杂业务需求,多模块儿开发并完成部署,建表,压测等功能的是中级。

  一个能解决疑难问题,完成95%的疑难业务的开发,或者一整个项目的开发是高级,且能对开发出来的代码保证性能,保证稳定性和扩展性、维护性,且在一定级别上保证自己写的代码为最优,不需要自己编写中间件,但对各种中间件、框架、技术的原理及特性或核心源码有一定的了解为高级。

  那架构是什么呢?有人说架构就是架构不用写代码,我想说QNMD吧,一个架构必然是由初中高一步一步上来的,如果一个所谓的架构师对语言的核心思想、特性,对各种中间件、框架、技术没有很充分的理解,甚至修改源码的能力,他怎么能够保证他能把这个中间件放置在项目合适的位置呢?那也就是说我认为一个架构,不仅要对各种中间件了如指掌,针对业务设计合适的技术样本,并且要有充分的技术把控管理能力,其次还要有自己独特的思想,自己的思想体现在项目的设计中,使项目可以预知一些将来可能出现的变化,并使项目能够很简单的适应这些变化。

  先到这儿。

posted @ 2020-04-15 22:43  每天进步一丶  阅读(375)  评论(0编辑  收藏  举报