编程的奥义(一)
2019-08-21 本文已影响0人
凡心往事
简单谈谈,本周的技术收获。
1、快,微服务和容器
从开发的角度来看,编写代码要快、开发要快、功能测试要快、环境部署要快、服务启停要快;
从生产的角度来看,程序运行的速度要快、高并发之下还是要快。
因为对快的需求,逐渐发展出了目前的微服务技术和容器化技术。
微服务架构之所以流行,因为把服务拆小了,可以高度复用,不用经常编写和修改代码,节省了非常多的时间。
容器化技术之所以流行,因为容器化技术可以使得生产环境和测试环境一致,节省了大量的环境部署时间、减少了出错的可能性,还可以随意增加容器节点,增强业务处理能力,保证高并发下的快速响应。
2、如何编写复杂业务代码?
写复杂业务的代码,需要流程引擎吗?需要设计模式吗?
在我看来,都不需要,对于这种业务流程的表达,简单朴素的组合方法模式是再合适不过的了。
在做过程分解的时候,不要把太多精力放在工具上,或者设计模式带来的灵活性上。
而是应该多花时间在对问题分析,结构化分解,最后通过合理的抽象,形成合适的阶段和步骤上。
过程分解完了之后,引入对象模型,对象模型更加清晰的还原了业务语义,同时,通过对象的多态可以消除代码中的大部分if-else。
所以,复杂的业务代码怎么写?
即自上而下的结构化分解 + 自下而上的面向对象分析。
最后,说点与技术无关的。
当一无所有的时候,就要拼搏(前提是找对方向),因为没有什么可失去的,大不了从头再来。
当打下坚实基础,前途远大的时候,就要稳中带拼,不能为了一次前途未仆的收益,就把自己所有筹码压上去。