zoukankan      html  css  js  c++  java
  • 《架构整洁之道》阅读笔记01

    我阅读的第一本名著是电子版的《架构整洁之道》,网上对这本书的评价很好,阅读后我总结了自己的一些阅读笔记和心得体会,按点论述一下:

    1.程序员三个层次

    1.1普通程序员:就是正确处理业务和数据计算,让代码跑起来

    1.2工程师:写的代码易读、易维护、易扩展、可重用、效率高

    1.3架构师:权衡、决策、简化、灵活、应对复杂度

    2.软件开发需要解决的问题

    1.微观:代码

    2.宏观:架构

    3.分离控制与逻辑

    控制:对程序流转,与业务逻辑无关,如:多线程、异步、服务发现、消息中间件等,另外还有业务逻辑中的判断(if else) ,  是否可以去掉if else ,  变为根据一定规则进行路由到不同逻辑, 这样也便于扩展, 职责分离,同时也便于测试

    逻辑:实实在在的业务逻辑,解决用户问题的逻辑

    控制、逻辑构成了整体的软件复杂度,有效分离得到最大简化

    3.架构对软件开发的影响

    一个好的软件架构需要考虑以下四点:

    3.1人力成本:可以大大节省软件项目构建与维护的人力成本

    3.2变更成本:让每次变更都短小简单,易于实施

    3.3风险:并且避免缺陷

    3.4扩展性:最大程度地满足功能性和灵活性要求

    4.设计与架构的关系

    作者的观点是二者之间没有区别。我认为一般的软件设计与架构设计差别还是很大的,面临的问题,思考的方式都是不一样的。底层设计细节和高层架构信息是不可分割的。

    5.复杂软件开发的思想

    要想跑得快,先要跑得稳

    6.软件架构的目标

    支撑软件系统的全生命周期,设计良好的架构让系统便于理解、易于修改、方便维护,并能轻松部署

    开发阶段:组件不要使用大量复杂的脚手架;不同团队负责不同的组件,避免不必要的协作

    部署阶段:部署工作不要依赖成堆的脚本和配置文件;组件越多部署工作越繁重,而部署工作本身是没有价值的,做的越少越好,所以要减少组件数量

    运行阶段:架构设计要考虑到不同的吞吐量、不同的响应时长要求;架构应起到揭示系统运行的

    维护阶段:减少探秘成本和风险。探秘成本是对现有软件系统的挖掘工作,确定新功能或修复问题的最佳位置和方式。风险是做改动时,可能衍生出新的问题

     
  • 相关阅读:
    cts 测试环境安装 ubuntu
    关于JS中乘除法的浮点错误解决方法
    事件移除匿名函数
    获取元素offsetLeft值
    jquery on and bind different
    获取事件相对于文档的位置
    angular 使用过程中遇到的问题
    python_文件操作
    monkerunner
    monkey_使用_脚本编写
  • 原文地址:https://www.cnblogs.com/cuijunfeng/p/13056461.html
Copyright © 2011-2022 走看看