大数据&云计算|总结我在架构师升级过程中的那些坑以及各种体会( 二 )
本文插图
当我了解到一个个组件的实现细节后 , 也发现自己确实也长了不少知识 , 但对实际工作的帮助并不大 。
现在回想下 , 当时应当是先了解面上的知识点 , 比如我要搭建一个分布式高并发的系统 , 我应当了解这个系统应当包括哪些功能模块(比如反向代理 , 数据库集群 , 消息中间件等) , 在这基础上 , 然后在每个方面再选用合适的组件 。
否则的话 , 光了解零件的构造 , 不了解机器的工作机制和流程 , 还是无法成为架构师 。
4 学了一大堆组件 , 也了解了很多方向 , 但要把组件组装到一起 , 不容易 在陷入学习细节的学习误区后 , 我发现无法有效地把了解到的组件整合到一起 , 比如怎么把反向代理 nginx 和消息中间件整合到一起 , 这样就无法让多个组件起到 1 加 1 大于 2 的作用了 。
这时 , 我就结合了具体的业务功能 , 看了不少代码 , 或者是别人的解决方案 , 终于知道各组件之间是怎么整合的 。
本文插图
而且 , 在此基础上 , 也开始自己动手组装一些组件 。 在刚开始的阶段 , 自己搭建的这些系统只能是实现功能 , 效果和外观上只能是呵呵了 。 但我感觉很欣慰 , 至少能动手实践了 , 能通过对比自己和大神之间的成果来了解进步方向了 。
5 后来发现架构师更得考虑可重用和可维护性
经过不断徘徊和摸索 , 现在发现 , 架构师的能力其实是体现在日常工作中的 , 在一个项目里 , 并不是架构师搭建好系统架构体系后就什么都不干了 , 架构师在项目开发过程中 , 更能帮助组员搭建出可用性高和可维护性强的应用系统 , 后者其实更能体现出架构师的能力 。
比如某个收银系统得支持预付卡 , 银行卡 , 微信 , 支付宝还有积分等的支付方式 , 而且支付的渠道还得分银联和网联以及门店等 , 如何搭建一个能支持上述渠道和上述支付方式的系统?
可能一般的程序员就会就事论事 , 用最简单最快速的方式 , 针对每种方式建一个类 , 做多在方法级别抽象出来 , 估计这样只能实现方法级别的重用 。
但发现这样远远不够 , 因为没有一成不变的代码 , 上述代码在经过多次需求变更以及多次功能改动后 , 就会变得一团糟 , 基本上就很难维护了 。 甚至会发现修改代码的时间会比写新代码的时间要长很多 。
本文插图
架构师在处理这类问题时 , 不会光想着当前如何实现功能 , 更会主动地考虑 , 当功能变更时 , 如何更高效地修改?如果当有类似功能来时 , 如何最大限度地利用现有的模块?
其实答案我们都知道 , 即面向对象思想以及基于设计模式的解决方案 。 这里我的体会是 , 当我们陷入修改泥潭时 , 或者不得不做重复劳动时 , 这时再回顾面向对象和设计模式 , 再尝试着用其中的一些方法(无非是继承 , 抽象类 , 接口 , 内聚 , 组合等方式)改善代码结构时 , 从中我们能得到意想不到的收获 , 我的一些对设计的感悟就这样来的 。
我们不可能每天都会面对架构层面的设计 , 但写代码是每天必不可少的工作 , 我们如果每天能及时回想下 , 我今天写的代码 , 如果遇到功能改动时 , 会不会修改起来很困难?如果可维护性差 , 那么该怎么改进?然后再进一步考虑下 , 我面临的问题场景能否和设计模式中的一种或多种匹配上?如果能的话 , 该怎么用设计模式的思路来改进?
本文插图
多想下这类问题 , 我们就会有收获 , 虽然我目前还谈不上是架构师 , 但至少我就通过这种方式提升了不少能力 。
推荐阅读
- 智能穿戴|漫步者DreamPods体验:外观精致佩戴舒适降噪是最大惊喜
- 数据|智领云荣登“中国大数据企业50强” | 2020大数据产业生态大会盛大召开
- 大数据|华云数据荣获中国大数据50强、2020数字赋能先锋企业30强,入选大数据产业发展白皮书及百佳案例
- 驱动中国|即信Fintech智研中心:银行践行社交化运营的要诀--渠道通 交互通 数据通
- 行业互联网|华云数据荣获中国大数据50强、2020数字赋能先锋企业30强,入选大数据产业发展白皮书及百佳案例
- 技术编程|数据结构001之简介
- 行业互联网|爱数亮相第八届医药健康论坛,以数据赋能药企数字化
- 技术编程|边缘云计算到底是什么?
- 行业互联网|智领云荣登“中国大数据企业50强”| 大数据产业生态大会
- 互联网|图匠数据CTO梁柱锦:利用AI与大数据提升线下零售管理能力 | 公开课预告