首页 > 其他分享 >《代码大全》阅读笔记03

《代码大全》阅读笔记03

时间:2023-10-05 21:25:41浏览次数:36  
标签:03 编码 哪些 笔记 模块 准备 软件 前期 大全

三思而后行:前期准备
做任何事情都需要前期准备,在软件开发中更是如此,尽管如此,还是有很多程序员接到任务后就是想着尽快编码,

很多老板不重视软件开发的前期准备。要想保证一个软件的质量,在前期准备,需求分析,架构设计,编码,测试,

维护等每一个环节都要重视质量。具体程序员接到任务的时候要检查一下在你之前的那些软件活动有没有准备好,如果需求中有好多没有说明的地方,

架构设计也不明确,你不知道需要和其它模块之间如何通信,基础组件啥也没有,这种情况下进行详细设计和编码会很受罪。

和同事老板达成前期准备重要性的共识之后,就是如何做前期准备以及如何判断前期准备已经做好的技巧,这些是更实用的地方。

如何做前期准备基本上是需求分析人员,产品经理和架构师的关心的问题,而判断前期准备是否已准备好则是具体程序员也需要具备的能力。

首先要判断你做的软件的类型和规模,如果你做的是一个长期的项目,一期一期的做,就更适合敏捷开发和迭代式开发,做一些基本的前期准备就可以开工了,

先把最核心的功能实现,每隔一段时间把一些新需求加入设计和编码中来,设计和编码可以结合起来,需求也不用一下子就写的特别全面,先写出最基本的需求。

如果你要做一个性命攸关的系统,如航天软件,医疗软件等,前期准备就应该更严格,需求规格说明书要尽量详细,设计也要花很长时间来做,尽量防止以后改动。

根据你的项目的性质来选择更迭代化还是更瀑布式的开发。

架构设计要做到什么程度呢?架构设计包括好多个组成部分,程序如何组织,每个模块间如何通信,每个模块都负责什么?

主要的类有没有定义出来,主要的数据是哪些?结构是怎样的,有哪些表?需要遵循哪些业务规则?大体的用户界面有没有设计出来?有哪些稀缺资源需要管理?

如何管理?软件的安全需要什么样的级别,进行威胁建模了吗,都有可能面临哪些安全问题?哪些部分需要着重考虑性能问题?如果软件的使用者增大后,如何扩展软件满足用户需求?

这个软件和其他已有软件或者系统的交互性如何?是否需要支持国际化?软件应该在哪个模块输入用户数据,哪个模块输出,在那一层检测IO错误?系统的错误处理策略是怎样的,

检测到错误是否需要传递给调用者,还是只记录日志就可以了,是所有模块都要对数据有效性进行验证呢,还是有些模块可以假设输入的数据是干净的?系统的容错性是怎么考虑的,

都需要容哪些错?系统架构的可行性如何,有没有先做出一些原型进行验证?有没有考虑过系统的健壮性,在考虑健壮性的时候是否进行了过度设计,

对一些基本不会出现的情况进行了设计?有些模块或者功能是否直接买一套比自己做更划算?哪些模块可以重用,或者已经有可重用的模块?架构是否足够灵活,

以很容易的面对需求的变化,是否对几乎以后肯定会有的需求进行了考虑?优秀的架构都是经过多次决策最终选定的比较靠谱的一个,

在你具体进行详细设计和编码之前先针对架构师设计出来的架构问一下上面这些问题,判断一下架构是否已经准备好。
前期准备所花费的时间是不容易把握的,也没有个固定的衡量标准,但前期准备是必须要做的,前期准备的根本目的是降低风险,提高项目质量。

标签:03,编码,哪些,笔记,模块,准备,软件,前期,大全
From: https://www.cnblogs.com/-GYP/p/17743918.html

相关文章

  • 72ed 2023/8/25 点分治学习笔记
    起因&介绍8月22号的T3是道黑,但思路却不算太难,就去打了这是第一次接触点分治,其实之前也有过一道点分治题,叫阴阳,但当时没去改,就一拖拖了半年才学点分治类似于树形DP,但在一些地方上处理有不同就比如在跑过根结点(1),进入处理它的子树时,会将其他的一部分视作没有(emmm大概这个意思,子树......
  • 《软件工程:方法与实践》读书笔记1
    精益的思想本来就是源于汽车制造业,这本书就直接用日本丰田的实例很形象的告诉了我们什么是精益的思想。精益思想的核心是“消除浪费”,但是这个“浪费”和普遍被认可的观点有一些区别比如:仓库里还有原材料的剩余,普遍思想是全力生产产品以降低每个产品的平均的设备成本;然而,对于精......
  • kotlin协程的基础笔记
    导包在Android项目中需要导入:implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"implementation"org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3"通过maven树可以分析:|||\---org.jetbrains.kotlinx:kotlinx-coroutine......
  • Android跨进程数据通道若干方案的实验笔记
    一、实验背景和目标我想做一个Android平台的跨进程数据通道,通过这个通道支持若干App之间的数据传输。我想到了一些传输方案,但是缺乏在方案中做出选型的评价依据。本实验会基于若干方案实现数据传输通道,在模拟的业务场景中进行实验,从功能性指标和非功能性指标对各方案做出评价。i.......
  • Logisim学习笔记
    教程计算机硬件系统设计(基于Logisim)-华中科技大学.谭志虎demo从零开始demo菜单->分析电路:(与Multisim有何不同?)todo......
  • 线段树学习笔记
    学习链接代码(未完成)#include<bits/std++.h>usingnamespacestd;intarray[200005],tree[200005<<2];//array是初始数组,tree是线段树voidupdate(intitem)//更新item号节点的函数,这里是最大值,也可更改为区间和、最小值等{tree[item]=max(tree[item<<1],tree[it......
  • 【Linux笔记】tar——压缩与解压
    #【Linux笔记】tar——压缩与解压打包与压缩打包文件(生成新的tar文件):tar-cfnewTar.tarfile.txt打包并压缩文件(生成新的.tar.gz文件):tar-zcfnewTar.tar.gzfile.txt注:打包和压缩是不一样的概念gzip这种压缩方式默认只能压缩一个文件,所以当有多个文件需要压缩时,就......
  • 微机原理笔记
    \[chapter1.\quad绪论\]Intel微处理器的发展1978年:8086/8088微处理器出现,首枚16位微处理器。微型计算机概述计算机加电以后,首先运行BIOS(BasicInputOutputSystem)系统,进行硬件的检查、初始化(加电时寄存器的内容是随机的)、给操作系统提供编程接口等。通过硬件驱动程......
  • 《需求掌握过程》阅读笔记
    今天读了《掌握需求过程·》这本书,理解了什么是需求,为什么要掌握需求,在开发软件时,身为一个程序员就要明白,开发软件的前前后后需要知道的东西,将尽可能多的可以预知的内容,做到心知肚明。目前的我们在开发软件的时候还是做的还是比较小的项目,偶尔也会遇到一些数据库设计出错导致,编写......
  • C error:deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    问题描述解决C++中[Warning]deprecatedconversionfromstringconstantto'char*'[-Wwrite-strings]char*string="aaabbbcc";//warning的原因是字符串常量存放在const内存区...原因主程序初始化字符串,是字符串常量,该字符串的内存分配在全局的const内存区。......