极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:00
登录|注册

技术、业务和架构之间的关系

讲述:初明明大小:4.56M时长:05:00
你好,欢迎收听极客视点。
在软件设计开发的过程中,很多人会陷入对技术的讨论中。有人甚至认为自己学会几种技术就能当架构师了。要知道架构不等于技术,学会多种技术也只能代表你解决问题的手段较多。另外也有观点认为,技术人普遍看不起业务人,业务人不理解技术人。此前,资深架构师王概凯(Kevin)以钻木取火为切入点,深入介绍了技术、业务和架构之间的关系。在他看来,技术总是在解决不断提高的业务需求时产生,目的也是为了获取更大更好的利益。
当人类一无所有,或者什么都不会的情况下,并没有技术。类似于人类在最早期,只能通过双手干活。一旦人类在日常生活中发现某些规律,就可以通过人为创造条件,让规律按照意愿发生,这就是技术。比如取火,最早人类只能靠打雷等自然现象产生火。
为了解决生存问题,取火变成了一项业务目标,这个时候人类没有生火的技术,只能靠不断加木材来维持火的生命。后来人类发现了钻木可以生火的规律,就产生了钻木取火的技术。
众所周知,钻木取火是靠双手快速转动木棍,摩擦生火的,这种方法对力量与速度有高要求,并不是所有人都能够做到的。为了解决快速转动木棍的问题,就有人采用弓弦来提升木棍转动的速度。
也就是说,业务目标是取火,钻木取火技术的出现解决了这个问题。但是钻木取火这项技术的效率不高,影响了业务效率。于是,人类就有了优化技术的动机,产生了弓弦转动木棍的技术。
可以看到,技术总是在人类解决业务需求时产生,目的是获取更大更好的利益。所以,技术是为了解决业务问题而产生的,没有了业务,技术就没有了存在的前提。
而技术与技术之间,有两种关系:
在解决同一个业务问题的前提下,更高效、更低成本的技术会淘汰低效、高成本的技术,这是人类利益诉求所决定的。
一般最开始解决根本问题的技术效率较低,只是把不可能变成了可能。当有效率提升需求出现时,技术的低效率部分就会被改进,形成新的技术。
当“改进”发生时,必定会形成一个切分,新技术会通过某种方式和原有技术连接在一起形成一个整体,使新技术可以和原有技术共同工作,帮助原有技术以更高的效率解决问题。因为要解决的主要问题(生火)并没有发生改变,所以分拆所形成的是一个树状结构,这时就产生了架构。
也就是说,先有技术,才会有架构。新技术与原有技术通过树状结构组合在一起,在解决主要问题(生火)之后,再开始逐渐分拆为更细粒度的技术(弓弦转木棍)。而这个细粒度的技术(弓弦转木棍)往往不会和业务的主要目标(生火)发生直接关系。
不同的技术,通过树状结构,组合在一起形成一个完整的架构解决方案,共同完成业务目标。这就是技术,业务和架构之间的关系。
而技术人员和业务人员都是树的分支节点,一旦产生冲突,必须两个根节点(一般都是领导)碰面才能解决问题。这也是为什么下层无法理解上层,而上层都喜欢下军令状要求下层执行的原因。人只有尽量去理解上层的问题才能做好更下层的分拆。
在软件行业,这个分拆节点技术就是软件,了解软件才能更好地利用技术完成业务目标,而软件中和业务直接相关的只有 Business Domain 这一部分。
Business Domain 相当于人的大脑,而 Service、Repository、Glue Code 等部分所采用的技术,全都是计算机领域的技术,为了让程序跑起来,相当于人的四肢。多数开发人员的工作主要专注于四肢部分,其实,真正应该投入精力的是大脑部分,因为大脑能够决定四肢是什么。很多架构师、技术人员主要专注于技术,忽略了业务本身,这也是为什么技术总是和业务冲突的原因。
架构师应该承担起解决业务问题的这个角色来,专注于 Business Domain 和软件本身的架构,让技术人员致力于业务在计算机中跑起来而努力。只有把这两者很好的结合起来,才能更好地完成业务的目标,让软件更好地服务于人类。最终一定会得到一个良好的软件架构,令软件开发团队和业务部门都能够很好地开展工作并降低成本。
以上就是今天的内容,对于技术、业务和架构之间的关系,你怎么看呢?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • J.Smile
    架构可以分为技术架构和业务架构。技术架构关注于硬件系统复杂度,业务架构关注于模块边界的划分和拆解等复杂性问题。产品经理解决跟用户对接的需求规划和明确,架构师负责需求更好的落地和运行。
    5
  • TT
    技术为架构服务,架构为业务服务,业务为商业服务
    3
  • 小斧
    在解决同一个业务问题的前提下,更高效、更低成本的技术会淘汰低效、高成本的技术,这是人类利益诉求所决定的。 一般最开始解决根本问题的技术效率较低,只是把不可能变成了可能。当有效率提升需求出现时,技术的低效率部分就会被改进,形成新的技术。
  • Y
    技术脱离不了业务,业务为商业提供服务。
  • 旭东(Frank)
    技术和业务起冲突,也有可能是产品把业务需求曲解了
  • Expif
    一体两面
收起评论
显示
设置
留言
6
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部