首页 > 其他分享 >构建之法阅读笔记

构建之法阅读笔记

时间:2024-02-29 12:44:25浏览次数:23  
标签:本书 原则 代码 笔记 构建 阅读 软件 过程

《构建之法》阅读笔记
《构建之法》是一本关于软件构建流程和工程化的书籍,作者是Robert  C.Martin。本书主要介绍了如何规范化地进行软件开发,以实现高效、高质量的软件构建过程。以下是我在阅读过程中的笔记和心得体会。
一、本书的核心概念
1.整洁代码:作者强调写出整洁、可维护的代码,这是构建优质软件的基础。整洁代码具有清晰的模块化结构、单一职责原则、易于阅读和理解等特点。
2.软件构建过程:本书详细介绍了软件构建的五个步骤,分别为:获取需求、设计解决方案、编写代码、测试代码和部署代码。这五个步骤需按照顺序进行,确保软件质量。
3.团队协作:在软件开发过程中,团队协作至关重要。团队成员需遵循共同的编码规范、代码风格和构建流程,以保证代码的一致性和可维护性。
4.持续集成:通过持续集成(CI)机制,实时检测代码变更并自动构建、测试,确保软件在每次变更后都能保持正常运行。
二、本书的关键原则
1.单一职责原则:每个模块或类应只负责一项功能,避免功能过于复杂,提高代码的可维护性。
2.开放封闭原则:软件实体(类、模块、函数等)应易于扩展,但不易修改。这意味着在新功能开发时,应尽量使用现有实体进行扩展,而非修改原有代码。
3.里氏替换原则:子类应能够替换掉其父类,保证代码的通用性和可替换性。
4.依赖注入原则:通过依赖注入,将模块间的依赖关系显式化,便于调试和优化。
三、本书对我的启示
1.认识到软件构建过程的重要性。在实际工作中,我们往往过于关注编码阶段,而忽视了构建过程。然而,一个规范化的构建过程能够确保软件质量,提高开发效率。
2.学会了如何实现团队协作。遵循共同的编码规范、代码风格和构建流程,有助于提高团队协作效率,降低沟通成本。
3.了解了持续集成的重要性。通过实施持续集成,我们可以实时检测代码问题,确保项目的稳定性。
总之,《构建之法》为我们提供了一套规范化的软件构建方法,有助于提高软件开发质量和效率。在实际工作中,我们应该遵循书中所提到的原则和步骤,努力实现高质量的软件构建过程。

标签:本书,原则,代码,笔记,构建,阅读,软件,过程
From: https://www.cnblogs.com/zjm921/p/18043328

相关文章

  • 文献笔记:LINE: Large-scale Information Network Embedding
    https://arxiv.org/pdf/1503.03578v1.pdf本文研究了将非常大的信息网络嵌入到低维向量空间的问题,这在可视化、节点分类和链路预测等许多任务中都很有用。大多数现有的图形嵌入方法无法扩展到通常包含数百万个节点的现实世界信息网络。在本文中,我们提出了一种名为“LINE”的新型网......
  • 最大流学习笔记
    (该笔记用于复习,请不要用此学习)最大流问题对于输入的一个有向图,对于一条边(u,v,w),我们建立一个图包含(u,v,w)和(v,u,0)dinic算法的步骤:1.对当前图进行bfs(只有边权>0的可以走),找到源点到每个点的最短路2.判断源点是否可以走到汇点(bfs完直接判断即可)可以->下一步不可以->返回当......
  • 组合数学 学习笔记
    1.几个组合恒等式\((1)C_n^m=C_n^{n-m}\)\((2)\sum\limits_{i=0}^{\min(n,m,k)}{C_n^i\timesC_m^{k-i}}=C_{n+m}^k\)\((3)\sum\limits_{i=0}^nC_n^i=2^n\)\((4)\sum\limits_{i=0}^n{c_n^i\timesi}=n\times2^{n-1}\)\((5)\sum\limits_{i=0}^{n}{C......
  • 树状数组学习笔记
    目录原理(结构)建树应用单点修改,区间求和区间修改,单点求值区间修改,区间求和单点修改,区间求最值求逆序对个数二维树状数组trick:树状数组上倍增权值树状数组正文1.原理引用日报图片。设黑色框内数组为\(a_1\toa_8\).可以推得\(c_i=a_......
  • cdq分治学习笔记
    简介cdq分治通过分治的思想可以在\(O(n\log^2n)\)的时间内(常数极小)解决如下问题:解决和点对有关的问题/解决偏序问题(三维偏序,动态逆序对)优化dp(拦截导弹)将动态问题转化为静态问题(城市建设)一.解决和点对有关的问题这种问题的通常表述:给定长度为\(n\)的序列,多次......
  • FHQ-treap学习笔记
    平衡树,即平衡二叉搜索树。二叉搜索树(BST),它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。(from百度百科)而在使用这种......
  • 搜索 学习笔记
    目录最基础的搜索1.1bfs1.2dfs双向搜索2.1双向广搜2.2双向宽搜2.3meetinthemiddle3搜索的优化3.1记忆化搜索3.2最优性剪枝3.3可行性剪枝3.4其他方法迭代加深搜索DancingLinks\(\alpha-\beta\)剪枝A/IDA正文1.最基础的搜索......
  • ASP.NET Core MVC应用模型的构建[4]: Action的选择
    ControllerModel类型的Actions属性包含一组描述有效Action方法的ActionModel对象。对于定义在Controller类型中的所有方法,究竟哪些方法才能成为有效的Action方法呢?所以在正式介绍ActionModel类型之前,我们先来聊聊Action方法的选择规则。一、Action方法的选择二、ActionModel三、......
  • 分块 学习笔记
    目录分块思想分块基础操作2.1\(O(\sqrtn)-O(\sqrtn)\)区间加、区间查询2.2\(O(1)-O(\sqrtn)\)区间加、单点查询2.3\(O(\sqrtn)-O(1)\)单点加、区间查询各种分块思路3.1对序列分块普通区间和维护区间\(k\)大等3.2对值域分块3.3对操作分块3.......
  • 简单字符串 学习笔记
    目录字符串哈希字典树字典树的倒序建树KMP正文1.字符串哈希1.1基础可以在数字和字符串之间快速转化。考虑一个哈希函数:\(f(s)=(\sum\limits_{i=0}^{n}s_i\timesbase^{n-i+1})\)。容易发现这些值是唯一的。但是取模时需要选一个较大模数,减少冲突概率。cons......