《代码大全2》读书笔记2

news/2025/10/31 1:08:32/文章来源:https://www.cnblogs.com/yawnzzn/p/19178435

《代码大全2》第四章聚焦“关键的构建决策”,核心是让开发者明白,构建阶段的前期选择比后期修改更重要,这些决策直接影响代码的后续维护成本。首先是语言选择,书中明确“无最优语言,只有最适配场景”,比如对性能要求极高的游戏引擎适合用C++,前端交互逻辑适合用JavaScript,快速迭代的工具类项目适合用Python,选择的核心是匹配项目需求与团队能力,而非盲目追逐新技术。其次是编程约定,强调团队需提前统一规范,包括变量命名(如驼峰式userName、常量全大写MAX_COUNT)、代码格式(缩进空格数、换行规则)、注释风格,避免“每人一套编码习惯”导致的阅读障碍,让代码成为“团队共同语言”。最后是工具选择,提出“善用工具解放人力”,比如用Git做版本控制解决代码冲突,用ESLint、Pylint做代码检查统一格式,用Maven、Gradle做构建工具自动化依赖管理,这些工具能将重复工作自动化,减少人工失误,提升团队协作效率。
第五章深入“软件设计基础”,打破“设计是架构师专属工作”的误区,强调每个开发者都需要具备设计思维,因为设计是构建的“蓝图”,直接决定代码的结构合理性。本章首先明确好设计的核心原则:单一职责原则要求一个函数或类只做一件事,比如“计算订单金额”的函数不应同时处理“打印订单”的逻辑,避免功能耦合导致修改困难;最小意外原则要求代码行为符合开发者直觉,比如函数名getUser()就应只返回用户信息,而非偷偷修改用户数据,减少他人阅读和使用时的理解成本。同时,本章也点出设计的常见误区:过度设计是为“可能的需求”添加复杂逻辑,导致代码冗余;无设计则是直接堆砌代码,缺乏结构,两者都会让后期维护变得艰难,平衡“当下需求”与“未来扩展”是设计的关键。
第六章将视角从“个人设计”扩展到“工作组的工作设计”,核心是解决“团队如何统一设计思路,避免各自为战”的问题。首先是设计评审(Design Review),书中强调这是团队协作的关键动作——通过会议让开发、测试、产品等不同角色同步设计方案,提出意见,比如测试人员可能会指出设计中难以覆盖的测试场景,产品人员能确认设计是否符合需求,避免“个人设计盲区”导致后期返工。其次是接口约定先行,要求团队提前定义模块间的接口规则,包括API参数、返回格式、错误码定义等,并形成文档,比如“用户模块”向“订单模块”传递用户信息的接口,需明确字段含义与类型,防止开发中因接口理解不一致导致模块无法衔接。最后是复用现有设计,书中提倡优先复用团队已有的成熟模块,比如通用的“权限校验”“日志记录”模块,而非重复造轮子,既能提升开发效率,也能保证代码质量的一致性,减少新模块引入的潜在风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/951229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

revit 设置参数和获取参数值

revit 设置参数和获取参数值设置参数 // 获取长度参数L Parameter paramL = selectedElement.LookupParameter("L");if (paramL == null) {message = "所选图元不包含参数L";trans.RollBack();r…

revit 设置参数

revit 设置参数设置参数 // 获取长度参数L Parameter paramL = selectedElement.LookupParameter("L");if (paramL == null) {message = "所选图元不包含参数L";trans.RollBack();return Result…

revit api 过滤器获取元素

revit api 过滤器获取元素通过过滤器取到元素 using System; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autodesk.Revit.UI.Selection; using System.Collections.Generic; namespace HelloRevit {[Au…

Skill Discovery | RGSD:基于高质量参考轨迹,预训练 skill space

① 用对比学习把参考轨迹的 embedding 尽可能拉远,② 使用 DIAYN reward 同时做模仿学习和 skill discovery。论文标题:Reference Guided Skill Discovery。 ICLR 2026 的新文章。 arxiv:https://arxiv.org/abs/251…

revit api 事务和事务组

revit api 事务和事务组使用事务创建元素public void CreatingSketch(UIApplication uiApplication) {Document document = uiApplication.ActiveUIDocument.Document;ApplicationServices.Application application = …

Ai元人文:价值权衡元能力的培育路径与开源生态构建

Ai元人文:价值权衡元能力的培育路径与开源生态构建 笔者:岐金兰 2025年10月31日 摘要:本文探讨了智能价值权衡元能力的本质与提升路径。基于"三值纠缠模型"的理论框架,我们提出了一套从"编程"…

Ubuntu server配置Docker Daemon.json 顽固不生效

本文详细记录了在 Ubuntu Server(ubuntu-24.04.3-live-server-amd64) 环境中,Docker 守护进程(dockerd)拒绝加载 /etc/docker/daemon.json 配置的疑难杂症。即使配置内容和权限都正确,问题依然存在。本文提供了…

sunpinyin online的简单例子

sunpinyin online的简单例子#include <stdio.h> #include <sunpinyin.h>class WinHandler : public CIMIWinHandler {void enableDeferedUpdate(CIMIView* view, int waitTime) {}void disableDeferedUpda…

程序员修炼之道:从小工到专家

初入行业,多数人是 “代码搬运工”,能完成需求却难思深层逻辑。真正的突破,始于跳出 “实现工具” 思维。 要多问 “为何这么设计”,而非只做 “如何实现”;要主动复盘项目坑点,把经验转化为方法论;更要持续深耕…

microsoft edge webview离线安装包

microsoft edge webview2离线安装包&在线安装包 Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。

概率递推1

Problem 19.2025年7月16日-27日,第32届世界大学生运动会在德国举行。在比赛期间,运动员甲(来自中国)和运动员乙(来自澳大利亚)因赛事成为朋友。运动员甲持有一套熊猫主题的运动项目徽章,包含乒乓球、羽毛球、篮…

Revit Api打印当前项目的所有的可打印视图

Revit Api打印当前项目的所有的可打印视图打印当前文档中的可打印视图 public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements) {Do…

实验课收获2025.10.30

这几周的实验课密集地学习了几个经典算法:归并排序、切绳子问题、最长公共子序列和背包问题。有的理解起来很快,有的却让我卡壳了好久。 对我来说接受度比较高的:背包问题 背包问题的动态规划思路我接受得很快。老师…

DW1000芯片帧组成解析

对DW1000链路层协议帧格式进行简单介绍。概述 在物联网定位与数据传输场景中,DW1000 作为遵循 IEEE802.15.4-2011 UWB 标准的芯片,其核心数据传输载体是 “帧”。它像一个精密的 “快递包裹”,通过三层结构(同步头…

revit api测量距离

revit api测量距离根据起始点,和方向向量,创建模型线,获取距离这里的方向是向上的,可以根据自己的需要修改using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using System;[T…

《程序员修炼之道》第一章有感

《程序员修炼之道》第一章有感翻开《程序员修炼之道》第一章,瞬间跳出了“完成任务就够了”的误区。程序员不是单纯写功能的,更要主动打磨代码、想着优化提升。这场职业修炼,从认真对待每一行代码开始。

10月30日日记

1.今天上体育课学习三步上篮,和学习数据结构 2.明天休息 3.数据库索引为什么多用B+树而不是哈希表

代码大全2阅读笔记(3)

一、开篇:别让 “交付” 成为代码质量的终点 读完《代码大全 2》的维护与优化章节,最颠覆认知的一句话是:“代码的生命周期中,编码只占 20%,剩下 80% 的时间都在维护与迭代”。很多时候我们把 “代码能运行、功能…

rustdesk 下载Windows版

蓝奏云下载 rustdesk-1.4.3-x86_64.exe rustdesk-1.4.2-x86_64.exe rustdesk-1.4.1-x86_64.exe 旧版下载 rustdesk-1.4.0-x86_64.exe最新版随github更新

apue笔记-进程环境、进程控制、进程关系

原文博客:https://nosae.top进程环境 C程序总是从main函数开始执行,内核在调用main之前会调用一个特殊的启动例程,由这个例程去调用main。这个例程如果用C代码来写(一般是用汇编来写),那就是exit(main(argc, arg…