苦李,

今天和我们公司前端大佬闲聊,说到从更高层次看待项目,例如,封装前端组件库,维护组件相关文档等,他说到,重要的不是怎么实现业务代码,而是个人能为团队带来什么。

我想问下,后端代码如果要优化,如何从更高的角度来进行,或是平时编写代码如何建立一种高层次架构思维,有哪些具体方面可以让自己为团队带来价值。

Y


Y,

要想站在更高层次看待项目,必须保证脑子里有更高层次的方法论,脑子里有货,需要的时候才能提出自己的见解,否则,坐井观天,机会放在面前也抓不住。

例如,同样的需求,普通程序员想着怎么把功能完成,而在架构师眼里,他会下意识的将需求划分为功能需求和非功能需求,功能需求就是根据项目不同,开发不同的代码,通常包含模块化、可测试性、可构建性等等;而非功能需求,通常包括性能、可靠性、安全性、可扩展性等等,这里说的非功能需求,对应到你说的前端架构里,也就是更容易组件化的部分。是否理解功能需求和非功能需求对系统设计的不同的指导作用,从侧面能反映出一个程序员的抽象能力。

再例如,架构设计分为集中式架构、分层架构、分布式架构、SOA架构、面向资源架构等等,如果你没有对这些架构模型做过详细的学习,没有做过细致的横向对比,你的眼界一定是仅限于现有的架构模式,项目现在是分层架构,你一定只会在分层架构上做文章,现在是分布式架构,你一定只会在分布式架构上做文章,很难跳出这个局限。

这就好比,穿越回三国,空投1000辆坦克给诸葛亮,他能率领蜀军统一三国吗?依然不能!因为压根没见过的东西,怎么可能用来征战四方。

架构师最重要的一个技能就是现实->抽象的转换,而这种转换是基于足够的方法论之上的,换句话说,是要有足够的理论储备。没有理论,则不成体系,不成体系,则很难有自己的见解。

下面是苦李总结的提升架构能力的一些事项:

  • 学习同类技术框架,侧重差异功能分析
  • 参加老项目的架构重构工作
  • 实践各种概念和理论,总结价值
  • 培养持续重构的习惯,变化是提升设计能力的最大动力
  • 不要只停留在概念和理论,例如学习设计模式,必须进行实践证明
  • 深入掌握一套业务分析方法论
  • 掌握领域模型设计能力
  • 多参与核心代码的编写
  • 提升对非功能性需求的设计能力
  • 参与技术选型的工作

总结的可能不全,希望有所帮助。

哦,对了,记得关注李苦李公众号。

苦李

祝好。

扫码关注李苦李公众号

李苦李公众号

添加新评论