代码大全2札记:前期准备
- 关注质量就是提高生产力的最佳途径。
- 如果你看到失败的乌云已经出现在地平线时,就退回到项目的前期工作吧。
- 准备工作的中心目标就是降低风险。
- 方法论应该选用最好最新的,我主要想说的是,在工作的过程中一定要抓住方向。诸如今天我测试网络通信时,就犯了严重的导向性错误,我用我本地的客户端访问我本地的服务测试客户端到服务端的通信速度,这显然是错误的。
- 现实当中,很多管理层或者决策人员往往冷漠做前期准备的程序员,这让人难受。那么如果你遇上这样的领导,如果你足够的有钱,足够的觉得公司不适合自己,那么就跳槽吧,假如没有这么糟糕,那么他询问你现在是否在coding,而你却在做需求分析,那么你就忽悠他吧,尽早交付有质量的项目才是最重要的,至于领导,就无视他吧。
- 架构师吃掉需求,设计师吃掉架构,而程序员消化设计。这样就会出现,假如架构师把需求吃错了,那么最终受害者是最无辜的程序员,如何规避这个问题,就是提高架构师的生产力。
- 发现错误的时间要尽可能接近引入错误的时间,这句话的意思就是尽早发现问题,不要把问题拖到产品交付,那么修复的成本就不可估量。
- 在进行开发之前,问问自己,“我已经非常详细的研究了需求和设计,我想不出在编码和调试阶段还会有什么问题”,无论是敏捷开发还是瀑布开发,必要的前期准备是需要的。
- 很多时候,找不到问题是最痛苦的。事实证明,大多数情况下,解决掉log日志中的问题,难度远远低于那些没有被log日志捕获的问题,有时候看着没有报错的日志找问题,我都痛苦的无法言喻。
- 需求像水,如果冻结了,就容易在上面建设。
- 圣杯的含义:有两个方面,一个是代表众人追求的最高目标,二另外一个则暗示希望渺茫。
- 假如客户非要进行需求变更时,那么就把进度和成本两个关键字告诉他吧。
- 功能需求分析checklist:
- 是否详细定义了系统的全部输入
- 输出
- 定义了输出格式
- 定义了硬件和软件的外部接口
- 外部通信接口
- 列出用户想要做的全部事情
- 是否详细定义了每个人物的数据
- 非功能需求checklist:
- 是否为全部必要的操作,从用户的视角,详细描述了期望响应时间
- 是否详细描述了其他与计时有关的考虑
- 安全级别
- 可靠性
- 定义了机器内存和磁盘空间
- 系统的可维护性
- 成功和失败的定义
- 需求的质量
- 需求是用户的语言书写的吗
- 每条需求与其他需求冲突吗
- 详细定义了相互竞争的特性
- 避免在需求中规定设计
- 在详细程度上保持相当一致的水平
- 需求是否描述清楚,开发者能够这样想吗
- 每个条款都有解决方案吗
- 是否每个需求都是可测试的
- 描述所有对需求的改动
- 架构的主题
- 程序的整体组织结构是否清晰
- 明确主要的构造块
- 涵盖需求中列出的功能
- 论证数据设计
- 详细定义数据库的组织结构和内容
- 指出所有关键的业务规则
- 描述了用户界面设计的策略
- 用户界面模块化
- 论证处理IO的策略
- 是否估算了稀缺资源(线程、数据库连接)
- 安全需求
- 为每个类、系统描述时间预算
- 可伸缩性
- 操作性
- 国际化和本地化策略
- 有 容错的办法
- 离开了良好的软件架构,可能瞄准了正确的问题,但是却使用了错误的解决方案。
- 如果不能向一个六岁的孩子解释某件事,那么说明你真的没有理解这件事。
- 精心设计的用户界面架构决定了最终做出来的程序是“人见人爱”还是没有要用。
- 在软件开发中,如果你的技术还满足不了你未来的使用能力,那么请购买一个或者使用开源的框架。
- 软件开发中缺乏像建筑真正付诸使用泥瓦钢铁建立之前已经让工程师费劲心思构架好蓝图,很多时候我们都过于急功近利,我们的coding往往不是建立在有效的需求分析之上,好悲哀啊。
代码大全2札记:前期准备相关推荐
- 代码大全2札记:善用隐喻
前言:<代码大全2>一书作为必读书籍,我也开始对其进行系列阅读,同时做好札记,对我认为重要的,或者我的评注进行记录. 建模:通过把不太理解的东西和一些较为理解且类似的作比较,可以对不深刻的 ...
- 代码大全2札记:构件决策
让工程师选择自己熟悉的编程语言编写,这样效率比同等经验使用不熟悉编程语言的工程师效率要提高30%. 编程约定,在之前的对日外包项目中,他们很重视代码编写的约定俗成,他们会整理出各种行之有效的规则让每一 ...
- 代码大全2札记:软件架构中的设计
前言:软件架构中的设计一章,主要的point有软件的首要技术使命就是管理复杂度.减少在同一时间锁关注的本质性复杂量.设计是一种启发式过程.好的设计要有迭代.信息隐藏. 设计中的挑战 设计是一个险恶的问 ...
- 《代码大全2》读后感czz
经老师推荐,买了一本<代码大全2>,花了近3个月的时间看完了,看完后觉得还有很多值得回味的地方,而且每部分之后作者还推荐了不少经典书籍.所以,作个读书心得.全书的主题是软件构建,关于软件构 ...
- Code Complete《代码大全》读书笔记
最近拜读了 Code complete<代码大全>,这部大块头确实经典,涉及到了软件开发的方方面面.有点后悔没有早些阅读,值得推荐给还没读过的朋友.它并不是针对某种语言的武林秘籍,应该可以 ...
- 读书笔记:《代码大全2》
本书在笔者实习时就已经开始阅读,按照自己的所处阶段有间隔的分成了3次阅读,一直到现在终于完成了.读者千万不要认为这本书真的只是"代码大全",在我看来,这本书就是软件工程师的心法,提 ...
- 代码大全(Code Complete)-- 目录和关键点
读后感 <代码大全>是一本指导"代码构建"的书,指导我们如何写出优秀的代码,如何成为优秀的程序员. 这样一本900多页的大部头书,当我们基于既往的编程经验,在读每一个部 ...
- 与《代码大全》齐名的经典著作
与<代码大全>齐名的经典著作 揭示微软成功的技术奥秘 C语言高手的秘籍 "本书所蕴含的思想精髓可以说是不朽的,它彻底改变了我的编程方式." --David Kline, ...
- javascript常用代码大全
http://caibaojian.com/288.html 原文链接 jquery选中radio//如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_ca ...
最新文章
- tensorflow 学习笔记-- tf.reduce_max、tf.sequence_mask
- python整理数据_Python常见数据结构整理
- Scrapy实战篇(二)之爬取链家网成交房源数据(下)
- 什么是SQL 注入?
- WEB前端面试题 分别使用2个、3个、5个DIV画出一个大的红十字
- 还原《山海经》中的东方奇幻世界,这款手游是怎么做到的?
- 小程序真机测试「启动参数」解析出错问题
- mysql数据库字段变形_详解如何利用amoeba(变形虫)实现mysql数据库读写分离
- Theory and tools for the conversion of analog to spiking convolutional neural networks
- 【数据库】SQL建表
- 现代信号处理 张贤达_信号处理领域著名科学家、清华大学张贤达教授逝世,享年 74岁...
- Activiti7讲义
- unity3d让模型不受3dCamera FOV的影响
- java缺陷管理系统_简述:一款优秀的缺陷管理系统有哪些功能特点!
- Android HAL硬件抽象层与硬件系统架构
- 用c语言编译对数函数,在C语言中使用对数函数的方法
- 物体抓取位姿估計算法綜述_NO. 1 物体位姿估计 机器人抓取
- 收购快钱做线下支付,京东数科与蚂蚁终有一战?
- Commvault斥资2.25亿美元收购Hedvig进行二次创业
- JAVA新手上路-2-javac编译