zoukankan      html  css  js  c++  java
  • 《构建之法》读后感(五)

    开篇作者就说了“软件=程序+软件工程”,以前写软件或者说程序,就只是写程序,最多会考虑到数据结构的知识,很少会用到软件工程,但是随着学习的深入,代码量的累积,如果还是和以前一样只是关心程序只要是可用的,实际可运行的,那么就没有意义了,这样的程序写出来也是没有价值的,首先,软件工程不仅仅就只是涉及到计算机或者软件方面的知识,相反,软件工程涉及了很对其他学科的知识,比如:管理学、数学、工业设计等等学科,一个合格的软件开发人员如果只是懂得怎样去写程序,那么嗨仅仅只是初级阶段,更高级的应该是从一个更加高级的层面上去考虑更多的东西,如整个软件的架构。整本书从实际软件开发的各个阶段出发,详细地分析了软件工程的各个环节,如:需求分析、设计实现、用户体验、软件测试已经最后的发布等等。
      敏捷开发,也是一个很早就提出来的技术解决方案,敏捷是一系列的价值观和方法论的集合,前人通过不断地实践,总结出来的开发方法及开发过程,对我们现在的开发有很强的指导意义,敏捷开发的原则很多,其中印象最深的就是“经常发布可用的软件,发布间隔可以从几周到几个月,能短则短”,以及“可用的软件是衡量项目进展的主要指标”,我的理解是敏捷开发强调的是“小而美”,定期地完成一个小版本的软件项目,比只是最终发布产品要好的多,这样也有利于产品的迭代,敏捷中的Scrum方法论,看起来简直就是无与伦比:要做什么-当前要解决什么-冲刺-得到一个增量版本。分阶段地不断递进地解决问题,但是敏捷也有很多的弊端,敏捷宣言不是圣旨,不必完全尊从,就像是Scrum,实际执行的时候也不是看上去那么美好,在一个复杂的项目中,往往不能带给团队更多的惊喜,所以,敏捷慎用。
      最后来说说软件测试,不仅仅是这本书中,几乎所有的介绍测试相关的书籍,都对测试讲得很多很多,说到测试,大家最熟悉的就是黑盒、白盒测试等,要写好一个不错的测试,首先要有一个好的测试方法,如:UnitTest、FunctionTest、StructureTest、SystemTest等等,测试方法多种多样,关键是怎样找出合适的测试方法最好地完成测试,怎样写一个TestCase?这个好像很麻烦,你必须首先知道并熟悉这个需求,要写出一个完整的测试过程,要考虑好测试的边界值的选取,极端情况下程序的健壮性,所以写好一个测试不简单。学好软件工程也是不简单的。

  • 相关阅读:
    B树、B-树、B+树、B*树介绍,和B+树更适合做文件索引的原因
    异步请求数据加载到表格后根据不同状态改变表格背景颜色【表格背景色】
    Linux/windows查看设置环境变量指令
    【周期性执行事件】MySQL事件(Event)&任务调度
    DEDE列表页调用TAG标签
    poj2488 A Knight's Journey
    [置顶] Codeforces Round #190 (Div. 2)(完全)
    SharePoint 2010 用Event Receiver将文件夹自动变成approved状态 (2)
    .NET领域驱动设计—初尝(三:穿过迷雾走向光明)
    Android解决异常apk on device '0292bea1': Unable to open sync connection!
  • 原文地址:https://www.cnblogs.com/deepend/p/14199194.html
Copyright © 2011-2022 走看看