- 征服复杂度
- 软件开发的核心是降低复杂度
- 降低复杂度的方法
- 将系统拆分成多个子系统
- 设计抽象的接口,隐藏底层细节(抽象最能降低复杂度)
- 避免使用全局变量
- 避免深层次的继承
- 避免深度嵌套的循环或条件判断
- 不用 goto
- 正确而统一的使用错误处理方法
- 统一的异常处理
- 类的设计应该保持简单(单一职责)
- 短小的子程序
- 良好的命名
- 减少子程序的参数
- 形成良好的编码风格
- 软件开发过程
- 开发过程决定了项目的成败与产品的质量
- 多人协作的项目中沟通合作能力的重要程度超过个人能力
- 软件开发是一个启发式的、迭代的过程。迭代的越多,产品质量越高好
- 注意代码的可读性
- 不是用语言来编程,而是用编程来丰富语言
- 注意编码规范
- 多在高层看问题,注意问题域本身而不是实现细节
- 问题的层次
- Level-0:操作系统的操作和指令
- Level-1:编程语言和工具
- Level-2:底层结构实现(算法与数据结构)
- Level-3:底层问题域(比如使用UML设计合适的类以解决问题)
- Level-4:高层问题(可以让不懂技术的人也能懂你的设计)
- 问题的层次
相关推荐
从数据到特征:基于CAT12的MRI图像预处理实战指南
本文详细介绍了使用CAT12工具进行MRI图像预处理的完整实战流程。从数据获取、环境搭建到核心的AC-PC校正、组织分割、空间标准化与调制,逐步解析如何将原始脑影像数据转化为可用于机器学习的标准化特征图。重点阐述了预处理作为脑影像分析‘生命线’的重要性,并提供了避坑指南与自动化脚本建议,帮助研究者构建高质量的阿尔茨海默症分类模型输入特征。
代码大全(Code Complete)-- 目录和关键点
这本书几乎占据所有“大神”推荐书单的前三甲,最主要的原因是这本书不是针对某一种语言,而更像是所有程序员应该遵守的“交规”。就像你可以在驾校开着车子绕圈,但是在驾校学会开车以后,在上路之前你还得把交规背熟,不然你就是“马路杀手”。写程序也一样,你如果不遵守写程序的“交规”,就会在你写的程序里横冲直撞,把零件散落到程序的所有地方,并且影响到团队的其他人的工作。 这本书不用太费脑子,但是在写程序之前最好能过一遍。
【UV打印机】PrintExp打印软件教程(四)-设置校准电压
序号名称功能说明1校准材料设置定义当前打印材料,不同的材料参数绑定不同的校准值2向导勾选进行校准向导操作3校准类型包括喷头安装、步进校准、喷头间距、套色校准、双向校准4类型子项同类型子项5操作步骤校准存在步骤和校准说明示意图。
代码大全2阅读笔记01
今天我阅读了代码大全前两章,第一章欢迎来到软件构造的世界,它分为两部分什么是软件构造,软件构建为何如此重要。 软件构造: (1) 定义问题 (2) 需求分析 (3) 规划构建 (4) 软件构架 (5) 详细设计 (6) 编码与调试 (7) 单元测试 直觉上对构建的认知是相当准确的,但他还缺乏一点深度。把构建活动放在有其他活动构成的环境中讨论,有助于在构建期间集中注意正确的任务,也...
[个人自用,全网最优]EDEM-FLUENT个人自学教程,拒绝手忙脚乱无用功!
[个人自用,全网最优]EDEM-FLUENT个人自学教程,拒绝手忙脚乱无用功!
SoC 内的 CPU、GPU、DSP、NPU 协同执行结构图解析:多异构协同的最新实战体系
随着移动端 AI 能力迅速演进,SoC(System on Chip)内部的多种异构计算单元(CPU、GPU、DSP、NPU)之间的协同执行能力成为衡量芯片智能算力的关键指标。本文基于截至 2025 年 5 月最新主流国产芯片(如海思昇腾、地平线旭日、联发科天玑、高通骁龙 8 Gen 系、寒武纪思元等)在实际落地应用中的公开结构与技术资料,深入解析 CPU-GPU-DSP-NPU 协同执行的体系结构、执行路径与调度逻辑。文章结合 Android NNAPI、Vulkan Compute、自定义调度器等工程实
[读书笔记]《软件工艺》
该书相关信息:《软件工艺》,Pete McBreen(著),熊节(译),人邮出版,2004年 软件工程的关键问题就在于:“它使我们忘记了是人开发软件”。 确定过程,验证过程。 所有的软件需求都来自于人,需求的获取无法自动完成,开发者必须和用户沟通才能了解用户的真正需求。 彼此学习是软件开发中非常重要的一个部分。 而对于如今的很多项目来说设计和实现都已经不再是难题
【Unity URP渲染管线下Shader的自定义物体半透明和投影半透明效果_半透明案例分享】
Unity Shader Graph URP渲染管线下的自定义半透明效果_半透明案例分享
代码大全2读书笔记
代码大全2读书笔记 作者写这本书的首要目的,就是希望缩小本行业中一般商用实践与大师级人物及专家们之间的知识差距。许多强大的编程技术在被编程领域的大众接触之前,都已在学术论文和期刊里尘封了多年。 成功学大师拿破仑希尔说过:什么思想决定什么样行为;什么样行为决定什么样的习惯,什么样的习惯决定什么样性格,而什么性格决定什么样的命运。 本书给我印象较深刻的章节有:前期准备、软件构建...
【AI智能体】Codex + Obsidian 打造专业知识库实战详解
Codex + Obsidian 搭建并操作知识库实战详解
Spring AI 项目实战(五):Spring Boot + AI + DeepSeek + Redis 实现聊天应用上下文记忆功能(附完整源码)
本文介绍了如何基于Spring Boot 3.2、Spring AI 1.0.0-M4、DeepSeek API和Redis构建具备上下文记忆功能的智能聊天应用。项目采用现代化技术栈,包括Java 17、Maven、Lombok等,实现了智能对话、会话管理、异常处理等核心功能。文章详细讲解了环境搭建、配置管理(含Redis和AI服务集成)、核心组件设计(如消息实体、控制器和服务层实现),以及完整的项目结构。该项目提供了美观的Web界面和REST API,支持对话上下文存储(通过Redis实现)和系统监控,可
《代码大全第2版》读书笔记(0):前言
【SECS】初识SECS协议
项目标题的第一位和第二位告诉下面有多少字节表示项目的长度。而项目的长度是指项目标题后面的字节数,这里第一个字节就是项目标题。1个字节可以表示的最大长度是0-255,所以只要项目标题后面的字节数小于等于254,都是0x01。
[读书笔记] 软件工程 VS 软件工艺 -- 《软件工艺》读后感
花了俩个晚上一口气读完了《软件工艺》,应该是即《程序员修炼之道》后再让我喝彩的非技术类计算机书籍了,虽然看得是囫囵吞枣,却也酣畅淋漓,解决了我心中的疑惑。软件工程强调的是软件开发的过程,软件工艺则强调软件开发中工匠的重要性,换句话来说,软件工程强调的是管理,软件工艺强调的是人。 软件工程将软件开发严格的划分需求、概要、详设、开发、终结几个阶段,各阶段有各自的负责人,通
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
《代码大全》读书笔记
零零碎碎趁着空闲的时间把《代码大全》这本大头部看完了。这本书涉及到代码构建过程中的方方面面,讨论的主题主要是理解软件设计的复杂性,编写复杂度低、可读性强的代码。看书中的过程中以章节为单元摘录了一些重要的内容,也做了一定的总结和思考,算作一篇笔记,记录在此,希望可以便人便己。
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
《代码大全2》读书笔记
代码大全(第2版) 编辑
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
软件工程、匠艺和写代码的艺术-《代码大全2》读书笔记
编程是介于艺术和科学之间的手艺,由艺术和技术协同融合而产生的一门工程学科。对编程来说,最有挑战的其实是将问题概念化,也就是建模,核心是管理和降低复杂度。
【读书笔记】代码大全34章:软件工艺主题
这本书大部分讲的都是软件开发的细节,本章节讲的主要是从宏观角度讲解软件工艺。 控制复杂度 软件开发的精髓就是控制复杂度降低复杂度的方法 将系统拆分成子系统精心设计接口,尽量隐藏设计细节避免使用全局变量避免深度继承避免goto整个项目使用同一种错误处理方法统一Exception的使用方法不要把类设计得太复杂保持函数的短小使用良好的变量名减少函数的参数使用现成的编码规
《软件工艺》读后感
1. 对于一个少于100人年的项目,没有必要采用软件工程的方法,那样只是会浪费太多的时间,采用软件工艺的方法可能会更快、更高效的完成任务。2. 在一个项目开始之前,应该先考虑软件工程是否适用。3. 做一个“足够好”的软件,是自己在给自己找做一个低质量的软件的借口。在一个软件里面不可避免会有Bug,但是这不能使我们放松对测试的要求,测试的目的是找到尽可能多的错误并加以改正。4. 软件工艺
软件工艺读书笔记
第一次读到这样另类的书,刚开始读这本书的时候感觉笔者是一个非常讨厌使用软件工程的方法来开发软件的人。这种给我的感觉一直贯穿到我读完整本书,这本书是我用一个晚上的时间一口气读完的,理解上可能只限于表层,但就针对这表层的一点理解下面我来谈一下我的认识。 软件工艺这本书的笔者一直强调一个问题,那就是工匠在一个项目中的地位。工匠这个词听起来是一个很老的词了,在过去其他行业当中工匠是一个怎样的人群我就不说...
代码大全读书笔记
最近拜读了《代码大全》,这部大块头确实经典,涉及到了软件开发的方方面面。有点后悔没有早些阅读,值得推荐给还没读过的朋友。它并不是针对某种语言的武林秘籍,应该可以看作是基础内功修炼吧。 笔记比较简略,只供简单查阅~ 一、开发前期准备相关 1.需求阶段: 发现错误的时间要尽量接近进入该错误的时间。由于需求是首先进行的活动,所以需求阶段引入的缺陷可能在系统中潜伏的时间最长,代价也更昂贵。 ...
《代码大全2》读后感
一、书籍基本框架 从三月起,这本书已经啃了差不多两个月了,囫囫囵囵总算是通读了一遍,除去最后的引用和查找表,八百七十几页的大部头,这个长度甚至超过了很多长篇小说。 书的内容非常细致,但却并不混乱,反而非常清晰,光是目录本身就已经将内容划分得相当清晰了。 二、一点读后感 与以前读过的《重构》一样,这本书里有很多经验在实际开发中都慢慢摸索了出来或是从其他书籍论坛中学习到过,但是更多的是完全没有意识到和模模糊糊没有形成明确概念的内容: 比如第30章编程工具里有“工具导向的环境”这样的内容,虽然在开发过程中会
代码大全读书笔记(三)
第五部分:系统考虑 软件规模对软件的质量有着深刻的影响,项目的规模对开发人员的交流;项目中的错误率;项目的生产率都有很大的影响。对于大规模的项目,需要采用科学的方法来管理构建。科学的管理构建活动通常包括以下几个方面:鼓励并执行良好的编程实践;科学的管理软件配置;定期评估构建进度;保证程序员的工作环境和良好的工作情绪; 集成指的是将一些独立的软件组合成一个完整的系统。集成
309



被折叠的 条评论
为什么被折叠?



