(补11月)代码大全阅读笔记2

news/2025/11/2 21:23:04/文章来源:https://www.cnblogs.com/awaTsuki/p/19185461

第6-9章的架构设计内容,彻底解答了我长期以来的核心困惑:为何同样实现了基础功能的代码,有的在后续迭代中能轻松响应需求变化,有的却如同“牵一发而动全身”的乱麻,修改一个小功能就引发连锁bug。书中系统阐述的“分层架构”模型让我茅塞顿开,尤其“表现层、业务逻辑层、数据访问层”的清晰划分,精准点出了我过往开发中的关键问题。此前负责公司电商平台的商品详情模块时,我为图便捷,将前端界面渲染、“判断商品库存是否充足”的业务逻辑,以及直接调用数据库查询商品信息的数据操作代码混写在同一个文件中。结果上线后,运营提出“库存不足时显示推荐商品”的需求,我修改业务逻辑时,不慎误删了界面渲染的关键代码,导致商品详情页短暂无法正常显示,这正是违背了“关注点分离”原则的惨痛教训。
书中关于“模块划分”的“高内聚、低耦合”原则,不仅有理论阐释,更有可落地的实践方法,让我对架构设计有了具象化认知。“高内聚”要求模块内部功能高度相关,比如将“商品的增删改查、库存更新、价格调整”等核心操作归为“商品管理模块”,而非零散分布在多个地方;“低耦合”则强调模块间通过简洁接口通信,避免直接依赖内部实现。受此启发,我对项目中的用户认证模块进行了重构:将密码加密(采用BCrypt算法)、短信验证码校验、Token生成与解析、权限判断等核心逻辑封装成独立服务,对外仅暴露“userLogin(String phone, String password)”“checkPermission(String token, String permission)”等清晰接口。重构后,当支付模块需要验证用户是否为VIP时,只需调用checkPermission接口即可,无需关心权限判断的具体逻辑;后续迭代中,将密码加密算法从BCrypt替换为Argon2时,也仅需修改认证模块内部代码,未影响任何依赖模块,彻底解决了此前“修改一处、牵动全身”的问题。
书中“架构需动态适配项目规模”的观点,更让我跳出了“要么过度设计、要么设计不足”的误区。书中明确指出,架构设计没有“放之四海而皆准”的模板:开发仅用于内部数据统计的小型工具时,若强行采用微服务架构,只会增加部署和维护成本;而开发用户量超百万的电商平台时,若沿用单体架构,后续扩展将举步维艰。我曾在开发一个员工考勤统计工具时,初期就设计了“考勤数据层、统计分析层、报表展示层”三层架构,还引入了缓存机制,结果因用户仅100多人,数据量极小,架构的复杂度反而导致开发效率下降30%。吸取教训后,在后续开发一个社区团购小程序时,我采用“单体架构起步,预留服务拆分接口”的策略:初期将所有功能整合开发,加快上线速度;当用户量突破10万后,基于预留接口将“订单管理”“用户管理”“商品管理”拆分为独立服务,平稳完成架构升级。这种“适度设计、动态调整”的理念,让架构真正成为支撑项目发展的基石,而非束缚开发的枷锁。

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

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

相关文章

java 基础语法一

java 基础语法一 一、基本概念 冯诺依曼结构,Java三大版本、编译型和解释型语言 1、五大组成部分:运算器、控制器、存储器、输入设备和输出设备;核心特点:采用二进制表示、存储程序原理、顺序执行指令 2、javaSE(…

VisualStudio 2022如何打开.slnx文件格式的解决方案

打开VisualStudio 2022,菜单中设置-选项-环境 > 预览功能 > 勾选最下方的“使用解决方案文件持久性模型”设置,再手动对.slnx文件进行关联设置即可。

(补11月)代码大全阅读笔记3

研读第23-25章关于测试与调试的内容后,我彻底摒弃了“开发负责写代码,测试负责找bug”的错误认知,建立起“开发者是质量第一责任人”的核心意识。书中一组数据让我尤为震撼:单元测试阶段发现并修复bug的成本,仅为…

CSP2025 - S 游记

Day -14 那天的模拟赛考得不错,拿了全校第二。 Day -13 太阳神开家长会骂了我们竞赛生。 心情不爽。 Day -11 晚上上厕所偶遇 xz,xz说我状态不错继续保持。 心情大好。 Day -7 集训,但是状态明显降低。 Day -5 没有…

CSP-S游记

CSP-S游记 首先读题,T1感觉直接贪心即可,T2应该不难,T3没想法,T4是计数我比较喜欢。 T1很快想出来代码也很好写20分钟过掉。 T2很容易想到 \(O(2^kn\log n)\) 的做法,但不确定能不能过就想优化把log去掉,想了一个…

小组作业1

小组作业1这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13471姓名 学…

C语言字符串及其函数

字符串及其函数c语言 没有字符串类型,所以大多用字符数组代替。 1. 字符串的输入输出 使用 scanf 和 printf 的通用输入输出。 #include <stdio.h> #include <stdlib.h>/* run this program using the co…

CPULOAD建模设计

背景: 1.中断周期的建模 在单片机中中断和任务是两类处理数据的主要形式,中断的形式主要分为周期和时间两类。比如,LIN中断是根据调度表的周期去响应的,滚轮这种则是根据外部事件响应的。 2.响应时间的建模 中断的…

C 文件操作全解速览

文件操作文件分为二进制文件和文本文件,文本文件里面保存的内容形式是ASCII字符,二进制文件里面内容保存形式是01表示的。文件的主要作用是用来进行数据的持久化,能去长久的保存数据。这里f开头的文件操作命令,大多…

Java记录类:简化数据载体的新选择

Java 14引入的record类型为开发者提供了一种声明数据载体的简洁方式,有效减少了样板代码的编写。记录类旨在透明地保存不可变数据,自动实现数据访问方法和对象常用方法。 基本语法非常简单: public record User(Str…

第二次算法作业

基本思路 该算法采用分治策略来寻找数组中第k小的元素。首先从数组中随机选择一个基准元素,然后将数组划分为三个部分:小于基准的元素、等于基准的元素和大于基准的元素。根据k值所在的范围,决定在哪个子数组中继续…

NOIP 2025 游记 退役记

【洛谷专栏】 前言 前作:NOIP 2024 游记。 上一篇文章:CSP-S 2025 游记(The Last CSP ver.)。 同样地支持友链互挂,请私信。 CSP 结束了,可能没有冬令营机会了。 联赛,翻盘,还是,很难。 正文 2025.11 11.1 提…

一个万古常青的、小而美的输入法

一个万古常青的、小而美的输入法万古常青apt install fcitx-sunpinyin 即可安装。Ubuntu和Debian不倒,就一直有。美系统词库为libgooglepinyin和sunpinyin的合并去重版,词比它们都多。 用sunpinyin训练了字的三元语法…

开始学深度学习!

开始学深度学习!

LLaMA-Factory

LLaMA-Factory Used by Amazon, NVIDIA, Aliyun, etc.Supporters ❤️Warp, the agentic terminal for developersAvailable for MacOS, Linux, & WindowsEasily fine-tune 100+ large language models with zero-…

守护线程--daemon

线程可以分为用户线程与守护线程,虚拟机必须等待用户线程执行完毕但不用等待守护线程执行完毕 守护线程如:垃圾回收机制, 内存监控等 守护线程顾名思义,用于守护用户线程,下面举例介绍 public class Daemon {publ…

换一个思维解决问题:希望在转角

前段时间困扰我的一个网络拦截请求的问题,终于被巧妙地解决了。 我之前开发了一个net proxy,专门用于对特殊网络环境的模拟,以此测试一个工作中需要测试的软件。简单来说就是用mitmproxy实现一个网络流量代理服务,…

条件表达式中的赋值问题

条件表达式中的赋值问题在条件表达式中(如while、if语句的条件部分),不允许直接进行变量初始化并同时使用该变量进行比较。C++语法规则禁止在条件判断中同时进行变量声明和比较操作。 int numJewelsInStones(string…

csp2025 总结

T1T2 没有什么失误,大概 40min 的时候过了。 T3 之前做过 https://uoj.ac/problem/772 (但其实纯粹是误导),当时就忘记了复杂度分析依赖贡献一起处理(虚树)后来改了,场上就把虚树这个环节忘了,大样例很水所以过…

CSP 总结

J 前两题写得比较快,20min 左右过了。 T3 一开始看错了,以为区间可以重叠,手动模拟了一下样例发现不对,重读了一遍题,大概在 40min 时过了大样例。 感觉手感火热,遂开 T4,发现直接统计和大于 \(l_i\) 的不太好做…