【从零开始学架构-李运华】08|架构设计三原则
成为架构师是每个程序员的梦想,但并不意味着把编程做好就能够自然而然的成为一个架构师,优秀的程序员和架构师之间还有一个明显的鸿沟需要跨越,这个鸿沟就是“不确定性”
架构设计并没有像编程语言那样的语法约束,更多的时候是面多多种可能时的“选择”
例如:
- 选先进的技术还是团队熟悉的技术?先进的出问题怎么办?熟悉的后续技术演化困难怎么办?
- 用Angular还是React,一个很强大一个更灵活
- MySQL还是MongoDB?
- 淘宝的电商架构咳哟简单的照搬么?
- 等等
但存在共性原则:合适原则、简单原则、演化原则
合适原则
合适优于业界领先。
优秀人才的技术情节导致各种以先进技术主导的创业失败,原因有:
- 将军难打无兵之仗(人数)
- 罗马不是一天建成的(积累)
- 冰山下面才是关键(业务)
所以真正的优秀架构都是在企业当前人力、条件、业务等各种约束下设计出来的。BAT的架构师到小公司没有了大公司的资源、平台、积累和业务,只照搬大公司的做法和技术即会失败!
简单原则
简单优于复杂。
软件领域复杂度体现两个方面:
1、结构的复杂性
- 组成复杂系统的组件数量更多
- 同事这些组件之间的关系也更加复杂
- 组件增多整体出现鼓掌的概率增加,可用性下降
- 某个组件改动会影响关联的所有组件
- 定位复杂系统的问题比简单系统更加困难
2、逻辑的复杂性
- 单组件承担功能过多,导致逻辑复杂度升高
- 后续的功能修改会影响很大
- 使用了复杂的算法难以实现修改和问题解决
如果简单和复杂的都能满足需求,最好选择简单的方案!
演化原则
演化优于一步到位。
软件架构同建筑架构相似,但建筑不可变,软件可变。
例如:Windows的演化、Android的发展。
软件架构类似于大自然“设计”的一个生物,通过演化适应环境,逐步变得强大。
- 首先满足当前需要
- 不断迭代保留,不断完善
- 业务变化时,架构扩展、重构、甚至重写。
不要贪大求全,分析清楚自身业务特点,快速落地,不断完善演化。
【从零开始学架构-李运华】08|架构设计三原则相关推荐
- 阿里P9李运华:架构到底是指什么?
你好,我是李运华. 2018 年,我发布了<从 0 开始学架构>这门课程,分享了我之前在电信业务和移动互联网业务方面的经验和感悟. 后来,我转岗去了蚂蚁国际,从事更加复杂的支付业务.为什么 ...
- mysql 魔乐_魔乐科技 李--兴--华 企业级架构会话授权管理 OAuth
资源内容: 魔乐科技 李--兴--华 企业级架构会话授权管理 OAuth|____OAuth代码.rar|____200301h_springcloud与oauth统一认证(springcloud整合 ...
- SpringBoot微架构-李兴华-专题视频课程
SpringBoot微架构-2719人已学习 课程介绍 SpringBoot是Spring推出的一种微架构的开发框架,在现在的项目开发之中使用非常普遍,并且也是现在所有企业开发的基础要 ...
- SpringCloud微架构-李兴华-专题视频课程
SpringCloud微架构-5680人已学习 课程介绍 SpringCloud是现在热门的RPC开发框架,也是以后的RPC开发趋势.在本套课程之中将为读者详细的讲解分布式技术的发展历 ...
- 阿里P9李运华:想成为架构师,你必须知道CAP理论
CAP定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在2000年的ACM PODC上提 ...
- 《李兴华Java架构师 》完整版
一.常用的LDAP服务器有以下几种 1:Apache directory server 2:Sun directory server 3:openDS 一个开源的,基于LDAP和DSML标准的Dire ...
- 从零开始学架构 01-架构基础【笔记】
从零开始学架构(李运华) pdf下载地址 https://pan.baidu.com/s/1cZJOR3cfpmS1BDfp6gJaBQ 提取码:u2ou 说明:对从零开始学架构这本书看时所做的记录, ...
- 从零开始学 Web 系列教程
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新-- github:https://github.com/Daotin/Web 微信公众号:前端队长 博客园:http://ww ...
- 【从零开始学微服务】04.微服务架构的特点
大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家. 微服务架构被技术大牛们总结出了以下九个特点: 服务组件化 围绕业务功能 产品而不是项目 强终端弱管道 去中心化管理 去中心化数据管理 基础 ...
- 从零开始学架构5 - 实战篇
从零开始学架构5 - 实战篇 38 | 架构师应该如何判断技术演进的方向? 潮流派? 保守派? 跟风派? 技术演进的动力 1)对于产品类业务,答案看起来很明显:技术创新推动业务发展! 苹果开发智能手机 ...
最新文章
- Linux架构思维导图
- python3多进程写时拷贝_Python实现多进程的详解(附示例)
- kafka消费并导出_如何使用Docker内的Kafka服务?消息服务测试实践篇
- modbus报文解析实例_云原生、全栈可编程的下一代SDN解析与实践 (一)丨传统SDN架构演进...
- 将MATLAB中的图像信息用到Vivado中
- python display函数_【python】pandas display选项
- Akash Network主网现已部署Sushiswap应用
- esp虚拟服务器,esp32搭建web服务器
- python 3.6中使用open函数遇见的问题
- golang从简单的即时聊天来看架构演变
- VB C# 语法对比图 (代码实例)
- python局域网alive ip侦听
- Java研发方向如何准备BAT技术面试
- 推荐一款UI非常Good的 Redis 客户端工具
- php 手写签批 手机办公_好签原笔迹手写签批SDK
- MBP TouchBar自定义使用
- ZigBee Dotdot
- 【Developer Log】ProGuard扰码web项目(WAR)
- php fatal error: cannot redeclare,Fatal error: Cannot redeclare 常见问题
- 组件对外接口设计-易用性
热门文章
- Microsoft Office Professional Plus 2010在安装中出错 解决办法 安装office2010出错
- ai里怎么做阴影效果_使用ai制作出文字阴影效果的详细方法
- emu8086打印等腰三角形
- 《水经注全国POI兴趣点1.0》发布
- JDBC下载,使用,访问数据库
- NMEA的GPGGA数据包解析 字符转数字
- CellularAutomation(细胞自动机)
- 【TSP问题】基于禁忌搜索算法求解旅行商问题Matlab源码
- VMware激活密钥
- PAT (Basic Level) 1045 柳婼、旭神两大思路分析【测试点】样例