构建代码:自动化构建

代码的完成不只是能运行,还包括编译代码和打包成可配置的单元。学会一个构建工具来编写自己的说明处理源代码。新的团队成员需要立刻知道软件的关联组件和主要类去做测试,但开发人员不是心理学家。所以构建项目是必须的。一个java项目的构建工具Ant(能编译代码、打包文件)可以帮助我们构建脚本,它分为四个基本块:项目、属性、目标、任务。之后新的开发人员可以从构建脚本中快速运行。构建工具是服务于整个团队的。所以构建工具也是一个团队的核心。

测试和连续集成:智者千虑必有一失

有时候,优秀的开发人员也会破坏构建版本,我们需要设置一张安全网,并富有生产力。

当事情出错时,有三种方式检查系统:从外面看系统、测试人员深入探究、开发人团让系统全透明。必须兼顾三方面的观点,做出一个正常的测试。黑箱测试的重点是输入和输出(功能性、用户输入验证、输出结果、状态转换、边界案例与缓冲溢出错误),灰箱测试使你更加贴近代码(可以窥视一下系统),白箱测试利用系统内部的内部知识。测试套件执行的时间越长,就可能执行的次数越少。测试的时间尽可能的缩短。

测试驱动开发:让代码负起责任

测试在先,而不是在后。先做测试,通过编写最简单的代码使测试通过,让你的测试亮绿灯。测试驱动开发的宗旨是为特定的功能创建测试程序,然后编写代码满足功能要求。对软件系统来讲,超过功能的任何事情不重要。

《Head First 软件开发》阅读四的更多相关文章

  1. 程序员带你十天快速入门Python,玩转电脑软件开发(四)

    本系列文章立志于从一个已经习得一门编程语言的基础之上,全面介绍Python的相关开发过程和相关经验总结.本篇文章主要是基于上一篇的程序员带你十天快速入门Python,玩转电脑软件开发(三)的基础之上, ...

  2. 程序员带你十天快速入门Python,玩转电脑软件开发(三)

    声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 . 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群5 ...

  3. SaaS系列介绍之十四: SaaS软件开发分析

    1 引言 真正的问题,不是电脑是否具备思考能力,而是人类是否具备这种能力                     ________B.F.Skinner<计算机科学> SaaS模式不同于传 ...

  4. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端   24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器    想体验服务的时候 ...

  5. 敏捷软件开发_实例2<四>

    敏捷软件开发_实例2 上一章中对薪水支付案例的用例和类做了详细的阐述,在本篇会介绍薪水支付案例包的划分和数据库,UI的设计. 包的划分 一个错误包的划分 为什么这个包是错误的: 如果对classifi ...

  6. 四种软件开发模式:tdd、bdd、atdd和ddd的概念

    看一些文章会看到TDD开发模式,搜索后发现有主流四种软件开发模式,这里对它们的概念做下笔记. TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心 ...

  7. 《Head First 软件开发》阅读二

    项目计划:为成功而筹划 每段伟大的代码始于伟大的计划. 客户现在就要他们的软件,可是开发需要的时间远远超过客户要求时间.我们需要实际解决方法:由客户确定优先级,与客户一起确定优先级顺序,开发出Mile ...

  8. 《Head First 软件开发》阅读一

    伟大的软件开发:让客户满意. 大多数项目的焦点:钱.时间. 我们需要交付的软件系统是需要客户满意,而你认为的完成并不是客户认为的完成. 如果我们不能确定客户需要的是什么,得回去问问他们.这是执行一个项 ...

  9. python基础之迭代器、装饰器、软件开发目录结构规范

    生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大 ...

  10. TCL校园招聘——软件开发工程师(java) 只招5个。。。

    简介 TCL集团股份有限公司创立于1981年,是全球性规模经营的消费类电子企业集团之一,广州2010年亚运会合作伙伴,总部位于广东省惠州市仲恺高新区TCL科技大厦.旗下拥有TCL集团.TCL多媒体科技 ...

随机推荐

  1. java:LeakFilling(JS,JQ)

    1.<a href="javascript:void(0)" onclick="dele();"> a标签不使用链接的时候,必须加javascrip ...

  2. Windows 上第一款全局轮盘菜单软件(鼠标党进)

    哈哈,我又来了. 如果之前已经有人做过了类似的,估计也没我做的好,反正我是没有见到过的

  3. java之 Mybatis框架

    1.三层框架: 表现层: 是用于展示数据 业务层: 是处理业务需求 持久层: 是和数据库交互 注:MyBatis在持久层 2.JDBC操作数据库 public static void main(Str ...

  4. ubuntu18.04安装Vulhub

    环境 虚拟机vmware ubuntu18.04 已安装docker 1.安装docker-compose 前提:Docker-compose基于Python开发,需要pip Docker-compo ...

  5. C++中内联函数的用法

    程序带调用函数需要一定的时间\空间花销,这就要求在主程序进行过程中调用函数前几下执行指令的地址及其他相关信息,一边函数调用后能继续执行.函数调用后流程返回先前记下的地址处,并根据记录的相关信息回复,而 ...

  6. USACO4.3 Street Race【分析】

    这道题,感觉不是很难,分析清楚之后非常简单.(标签都不知道怎么加) 读完题首先想到了分割点一定是必经点的一种特殊情况,如果分割点不是必经点的话,那么它就不能把这个图分成两半(存在不经过它的边沟通两半) ...

  7. 【VS开发】字符串进制等转换关系及方法

    C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转换为字符串的一个例子:# include <stdio.h># in ...

  8. vue,基于element的tree组件封装

    封装组件代码 // 组件:树 /* 参数说明-属性: 1.treeData:展示数据(array) 2.treeEmptyText:内容为空的时候展示的文本(String) 3.treeNodeKey ...

  9. CentOS下firewalld添加开放端口

    添加 firewall-cmd --zone=public --add-port=/tcp --permanent (--permanent永久生效,没有此参数重启后失效) 重新载入 firewall ...

  10. go的变量定义

    package main //理解包的概念 import "fmt" var ( aa = 1 bb = "kkk" ss = true) func varia ...