1 打好基础
来源:互联网 发布:软件 一面 ipone版 编辑:程序博客网 时间:2024/06/11 11:49
1)软件构建
“构建”就是指创建事物过程中动手的那些部分。
软件构建中的构建只要活动就是编码与测试。需求分析和架构设计是这之前完成的基础工作,系统测试是后续工作。
2)用隐喻来更充分的立即软件开发
通过你不打理解的东西和一些你较为理解的东西比较,你可以对不理解的东西产生更为深刻的理解。
模型的威力在于其生动性,让你能够把握整个概念。
各种软件隐喻:写作代码(太简单,从头先到尾);培植系统(一点点增加);构造软件(暗示和软件开发的存在诸多阶段,计划,准备等。)
3)三思而后行
架构的典型组成部分。
程序组织 系统架构首先要以概括的形式对有关系统做一个综述。架构应该定义程序的主要构造块,每个构造块实现一个高层功能。应该定义每个构造块的通信规则。对于每个 构造块,架构应该描述它能直接使用哪些构造块,能间接使用,不能使用哪些。
主要类 架构无需详细说明系统中每个类。瞄准80/20法则。
数据设计 架构应该描述所用到的主要文件和数据表的设计。它应该描述曾经考虑过的其他方案,并说明没有做出选择的原因。
业务规则 如果架构依赖于某些特定的业务规则,那么它就应该详细描述这些规则。
用户界面设计
资源管理 架构应该描述一份管理稀缺资源的计划。稀缺资源包括数据连接,线程,句柄,内存等。
安全性 架构应该描述实现设计层和代码层面的安全性方法。在制定编码规范的时候要时刻应该把安全性牢记在心,包括处理缓冲区的方法,处理非授信数据(用户输入,配置文件和其他外部接口输入的数据)的规则,加密,错误消息的细致程度,保护内存中的秘密数据,以及其他事项。
性能 定义性能目标,性能目标也应该详细定义资源(速度,内存,成本)之间的优先顺序。空间和时间预算等。
可伸缩性 满足未来需求的能力。
输入输出 读取策略是先做,后做还是及时做。
错误处理 错误是进行纠正还是仅仅检测;主动还是被动;如何传播;处理机制等。
容错性
关于"买"还是"造"的决策 如果架构不采用现货供应的组件,那么就应该说明"自己定制的在哪些方面胜过现成的"。
架构的总体质量 架构的目标应该清除的表述。以系统的可更改行为首要目标的设计,以及性能方面是不同的。架构应该描述所有主要决策的动机。优秀软件架构很大程度上是与机器和编程语言无关的。架构应该明确指出有风险的区域,为什么有风险。
- 1 打好基础
- 打好基础,很重要
- 打好基础才是关键
- 如何打好编程基础
- 循序渐进打好C语言基础
- 盖国强:打好基础坚持不懈必定峰回路转
- 学好知识,为明天打好基础
- [5-15] 打好基础,不忘初心
- 做程序员就要打好基础
- 打好Android基础,实战中运用
- 怎样打好古筝基础,练好基本功?
- 打好Android基础,实战中运用基础
- 好打
- WebKit项目全面紧急动员 为Chrome打好基础
- 打好基础是做一切事情的前提-java
- 就业感言:打好基础是迈向成功的第一步
- android基础打好以后深入学习方向
- 面向新手 学习c#的东东 打好基础很重要!
- Linux中断实现浅析
- 用session实现购物车(含设计分析及源代码)part1
- Linux中断牛刀小试
- Android 怎么获取手机端的ip地址
- Android-StageFright之数据流的封装和AwesomePlayer流程
- 1 打好基础
- VC++6.0-在Release下实现单步调试
- Java抽象类用法示例详解
- 在JavaScript中实现类似Java中List<Map>类型的数组
- 系统字段的一些,。。。。
- tnsping 命令
- oracle基础之pl/sql基础知识
- oracle中遇到数据库字段的问题
- 面试时遇到不会回答的问题怎么办??