zoukankan      html  css  js  c++  java
  • 《软件工程之美》day4

    什么架构师思维

    架构设计,就是要控制技术的复杂性,其中有几种有效的方式:

    1. 抽象
    2. 分治
    3. 复用
    4. 迭代

    抽象思维

    抽象思维可以说是整个架构设计的基础。因为对于架构设计来说,是要为了满足业务需求的,而业务需求都是一些文字性的描述、原型、UI 设计图,这些需求要最终变成代码让机器执行,就必须先进行抽象,抽象成计算机能识别的模型。

    分治思维

    架构设计的一个重点,就是要对复杂系统分而治之,分解成小的、简单的部分。但光分解还是不够的,同时还需要保证分解后的部分能够通过约定好的协议集成在一起。

    复用思维

    复用是一种非常简单有效的提升开发效率的方法,通过对相同内容的抽象,让其能复用于不同的场景。

    迭代思维

    好的架构设计,通常不是一步到位,而是先满足好当前业务需求,然后随着业务的变化而逐步演进。

    优秀架构师的特点

    所以要成为好的架构师,需要具备几个条件。

    1. 有架构师思维:具备良好的抽象思维、分治思维、复用思维和迭代思维;2. 懂业务需求:能很好地理解业务需求,能针对业务特点设计好的架构;
    2. 有丰富的编码经验:像抽象、分治、复用这些能力,都需要大量的编码练习才能掌握;另外保持一定量的编码经验也有助于验证架构设计;
    3. 良好的沟通能力:架构师需要沟通确认需求,需要让团队理解架构设计。

    什么是技术债务?

    技术债务,就是软件项目中对架构质量和代码质量的透支。

    识别技术债务

    1. 开发速度降低:通常项目正常情况下,在相同的时间间隔下,完成的任务是接近的。尤其是使用敏捷开发的团队,每个任务会评估故事分数,每个 Sprint 能完成的故事分数是接近的。但是如果单位时间内能完成的任务数明显下降,那很可能是技术债务太多导致的。
    2. 单元测试代码覆盖率低:现在大部分语言都有单元测试覆盖率的检测工具,通过工具可以很容易知道当前项目单元测试覆盖率如何,如果覆盖率太低或者下降厉害,就说明存在技术债务了。
    3. 代码规范检查的错误率高:现在主流的语言也有各种规范和错误检查工具,也叫 lint 工具,比如 Javascript 就有 eslint,Swift 有 SwiftLint,python 有 pylint。通过各种 lint 工具,可以有效发现代码中潜在的错误和不规范之处,如果错误率高,则说明代码质量不够好。
    4. Bug 数量越来越多:正常情况下,如果没有新功能开发,Bug 数量会越来越少。但是如果 Bug 数量下降很慢,甚至有增多的迹象,那说明代码质量或者架构可能存在比较大问题。

    解决技术债务有三种策略

    1. 重写:将老系统推翻重写、
    2. 维持:维持现状,只对严重问题修修补补。
    3. 重构:每次只是改进系统其中一部分功能,在不改变功能的情况下,只对内部结构和代码进行重新整理,不断调整优化系统的结构,最终完全偿还技术债务。

    预防技术债务的产生

    1. 预先投资:好的架构设计、高质量代码就像一种技术投资,能有效减少技术债务的发生;
    2. 不走捷径:大部分技术债务的来源都是因为走捷径,如果日常能做好代码审查、保障单元测试代码覆盖率,这些行之有效的措施都可以帮助你预防技术债务;
    3. 及时还债:有时候项目中,因为进度时间紧等客观原因,导致不得不走捷径,那么就应该把欠下的技术债务记下来,放到任务跟踪系统中,安排在后续的开发任务中,及时还债及时解决,就可以避免债务越来越多。

    内容来源

    极客时间 软件工程之美

  • 相关阅读:
    Exchange 2013与 Office Web Apps 整合
    SharePoint2013 以其他用户登录和修改AD域用户密码 功能
    sharepoint 2010 自定义页面布局
    sharepoint 2010 记录管理 对象模型
    SharePoint2010 对象模型 关联列表
    在SharePoint Server 2010中更改“我的网站”
    xenapp 6.5 客户端插件第一次安装总是跳到官网
    如何解决在Windows Server 2008 R2 上安装证书服务重启后出现 CertificationAuthority 91错误事件
    在Win7 Hyper-v虚拟机中挂接真实机的声卡
    win8 中如何删除 共享文件夹 用户名和密码
  • 原文地址:https://www.cnblogs.com/luoleqi/p/14279173.html
Copyright © 2011-2022 走看看