文章标题很随意,些微有一些骗点击的“贼意”;但内容却是充满了诚意,想必你已经感受到了 。
这是一次源于头条 Android 客户端软件架构问题的探讨,之所以冠上“嘴炮”之名,是因为它有一些务虚;同时又夹杂了一些方法论,不仅适用于客户端软件架构,也适用于其他工作场景,希望对大家有所帮助 。
为了拉满读者的带入感,且以“我们”为主语,来看架构的挑战、判断和打法 。
我们的挑战期望高优秀的公司对架构都有着很高的期许,都希望有一个良好的顶层设计,从上到下有统一的认知,遵循共同的规范,写出让人舒适的代码,甚至有那么一丢偷懒,有没有“一劳永逸”的架构设计可保基业长青?
然而高期望意味着高落差,面对落差,我们容易焦虑:
- 代码什么时候能写的看上去本就应该是那个样子;而现在怎么就像是在攀登“屎山”呢?
- 文档什么时候能写的既简明又详细;而现在怎么就简明的看不懂,详细的很多余呢?
- 工具什么时候能更好用更强大一点;而现在怎么就动不动掉链子,没有想要的功能常年等排期呢?
- “我”什么时候能从架构工作中找到成就感,而不是搞一搞就想着跑路呢?
没有一个单一的团队能承担这些问题的责任,我们收到过很多“吐槽”:
- 这尼玛谁写的,简直不堪入目,看小爷我推倒重来展现一把真正的实力
- XX 在这里埋了颗雷,但 XX 已经不管了,事到如今,我也只能兜底搞一把
- 这压根就不应该这么用,本来的设计又不是为了这个场景,乱搞怪我咯?
- 卧槽,这特么是隐藏技能啊,编译时悄悄改了老子的代码,找瞎了都没找到在哪过环节渗透进来的
事情难架构面临的从来不是单一的业务问题,而是多个业务多人协作的交叉问题,负重前行是常态 。
- 业务历久弥新,历史包袱叠加新的场景,随便动动刀子就拔出萝卜带出泥 。譬如:头条 2021 年 10 月的版本有 XXXX 组件,相比一年前已经翻倍;类个数 XXXXX;插件 XX 个;仓库数量 XX 个;ttmain 仓库权限 XXX 人 。(XX 代表数量级,隐去了具体数字,^_^)
- 技术栈层出不穷,一方面要保持成熟稳定,一方面要积极探索落地 。架构的同学要熟悉多种技术栈,譬如:跨端技术在客户端业务中通常都是多种共存(H5/Hybrid/小程序/Lynx/Flutter),一个业务到底选用哪种技术栈进行承载,需要耗费多少成本?选定技术栈后存在什么局限,是否存在不可逾越的障碍?
文章插图
我们常说治理,其实是设计一种机制,在这种机制下运转直到治愈 。我们的判断架构问题老生常谈谁来复盘架构问题,都免不了炒一炒“冷饭”;谁来规划架构方向,都逃不出了“减负”、“重构”、“复用”、“规范”这些关键词 。难点在于把冷饭炒热,把方向落实 。
就像老中医开方子,开的不是特效药,而是应对病症的方法,是不是有用的方子,终究还是需要通过实践和时间的检验 。希望我们不要成为庸医,瞎抓几把药一炖,就吹嘘药到病除 。
文章插图
架构方向一直存在架构并不只局限于一个产品的初始阶段,而是伴随着产品的整个生命周期 。架构也不是一成不变的,它只适合于特定的场景,过去的架构不一定适合现在,当下的架构不一定能预测未来,架构是随着业务不断演进的,不会出现架构方向做到头了、没有事情可搞了的情况,架构永远生机勃勃 。
推荐阅读
- 羊水少多久复查一次
- 九曲红梅红茶存放时间,九曲红梅红茶的色泽
- 七大常见的企业级安全架构模型
- 红茶产业中存在的问题,红茶的初制加工
- CVE-2021-4034 关于 Linux Polkit 权限提升漏洞的修复方法
- 芝奇|芝奇发布超低延迟64GB DDR5内存:CL28世界第一次
- 固态硬盘|10年质保 日本推出超耐用的SSD硬盘:一辈子只能写入一次
- 1600万像素USB摄像头拍照颜色不对怎么办?一次白平衡解决偏色
- 壁挂炉使用方法是什么?
- lte网络是什么意思?