wordvba编程代码大全_代码大全-前3章纪要

本文是《代码大全2》[1]的读书笔记。之前也读过一些代码整洁相关的书籍,但是随着时间推移,很多都遗忘了。因此,在开始读这本书之前,打算尝试做着记录,以便翻阅查询、回忆。首先,尝试一种方式,读5分钟,思考5分钟,整理复述或者是笔记5分钟。

第1章 软件构建 Software Construction

1、是什么?

构建活动主要是编码与调试,涉及详细设计、规划构建、单元测试、集成、集成测试等其他(软件开发)活动。

e75ce5da1efd042817dae6709f3be32b.png

构建活动中的具体任务:

  • 验证有关的基础工作已经完成,因此构建活动可以顺利地进行下去。
  • 确定如何测试所写的代码。
  • 设计并编写类(class)和子程序(routine)。
  • 创建并命名变量(variable)和具名常量(named constant)。
  • 选择控制结构(control structure),组织语句块。
  • 对你的代码进行单元测试和集成测试,并排除其中的错误。
  • 评审开发团队其他成员的底层设计和代码,并让他们评审你的工作。
  • 润饰代码,仔细进行代码的格式化和注释。将单独开发的多个软件组件集成为一体。
  • 调整代码(tuning code),让它更快、更省资源。

2、为何重要?

主要组成、核心、必不可少,效率差异,源代码是唯一精确描述

3、阅读建议

顺序阅读、主题阅读等

第2章 理解软件开发 Software Development

1、隐喻的重要性

隐喻可以帮助人们建立模型,生动地理解新的知识概念或者问题解释。但是也存在过度引伸从而造成误导。

2、如何使用隐喻

隐喻就像是探照灯,是一种启发式方法。不像算法一样,是直接明确的路线图。至于怎么用,作者讲的比较高深,不甚理解,摘录如下。

那么该如何使用软件中的隐喻呢?应该用它来提高你对编程问题和编程过程的洞察力:用它来帮助你思考编程过程中的活动,想象出更好的做事情的方法。你不可能看到一行代码并说它违反了本章所描述的某个隐喻。但随着时间的流逝,人们会发现,相对于不善运用隐喻的人来说,那些使用隐喻来照亮自己的软件开发过程的人,他对于编程的理解会更好,并且能够更快地写出更好的代码。

3、常见的软件隐喻

还没细看

  • Software Penmanship:Writing Code 软件中的书法:写作代码
  • Software Farming:Growing a System 软件的耕作法:培植系统
  • Software Oyster Farming:System Accretion 软件的牡蛎养殖观点:系统生长
  • Software Construction:Building Software 软件构建:建造软件
  • Applying Software Techniques:The Intellectual Toolbox 应用软件技术:智慧工具箱

第3章 前期准备 Upstream Prerequisites

1、前期准备的重要性

  • 初期-准备工作
  • 中期-构建实践
  • 末期-系统测试

准备工作中心目标是降低风险,集中改进需求分析和项目规划。

准备不周全的原因:技能缺乏、知而不行、来自管理者的压力。

论据讲述:Appeal to Logic、Appeal to Analogy、Appeal to Data

2、软件类型

bf8778d13bbe5ad09574471c076324b5.png

1d3a012c7476a6bf3124462aa5ff6dbc.png

发现错误的时间要尽可能接近引入该错误的时间。

序列开发开发和迭代开发

3、问题定义的先决条件(怎么判断)

从客户的角度描述问题,而不是解决方案。除非是计算机相关的问题,采用术语陈述比较恰当。

4、需求的先决条件(怎么判断)

理由:无需猜测、避免争论、减少变更

需求稳定、核对表、制定流程、演进原型开发等等

5、架构的先决条件

架构的典型组成部分如下列出,作者对每个话题都进行一些描述介绍。

  • Program Organization 程序组织
  • Major Classes 主要的类
  • Data Design 数据设计
  • Business Rules 业务规则
  • User Interface Design 用户界面设计
  • Resource Management 资源管理
  • Security 安全性
  • Performance 性能
  • Scalability 可伸缩性
  • Interoperability 互用性
  • Inetrnationalization/Localization 国际化/本地化
  • Input/Output 输入输出
  • Error Processing 错误处理
  • Fault Tolerance 容错性
  • Architectural Feasibility 架构的可行性
  • Overengineering 过度工程
  • Buy-vs-Build Decisions 关于“买”还是“造”的决策
  • Reuse Decisions 关于复用的决策
  • Change Strategy 变更策略
  • General Architectural Quality 架构的总体质量

核对表

6、前期准备时长

一般说来,一个运作良好的项目会在需求、架构以及其他前期计划方面投入10%~20%的工作量和20%~30%的时间(McConnell1998,Kruchten 2000)。

在本章的最后,作者给出一些关于“需求”、“软件架构”、“软件开发过程”的书籍。

参考

  1. ^代码大全2 https://baike.baidu.com/item/%E4%BB%A3%E7%A0%81%E5%A4%A7%E5%85%A8/9962473?fr=aladdin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值