- 博客(6)
- 收藏
- 关注
原创 软件构造课学习体悟(六)语法驱动的构造
一、引入:对于编程环节,一个经常会出现的任务就是将给定的文本内容进行读取并将读取的字符串转化为应用中所需要的各类数据。显然仅仅通过编译器而不是人为设定某些规则的话我们无法做到将读取的字符串根据我们想要的划分结果进行分割。而如果对于每一次读入的字符均给定划分方式固然可行,但是这样做会造成两个负面结果:一是代码的可读性与整洁性大大下降,毕竟对于每个文本的处理并不是那么容易;二是如果文本的容量很大(比如10000行),这个时候对于每种情况给出划分显然不合适。对于输入的文本存在一定的格式规律的情况,我们通常使用一
2020-06-07 23:33:10
276
原创 软件构造课学习体悟(五)关于断言Assertions
为了使我们编写的程序具有良好甚至是卓越的健壮性,在代码的编写中经常需要实施各种各样的防御性措施。最好的方法之一就是不引入bug,然而这是不太可能的。既然几乎不能完全避免bug,那么缩小bug所能带来的危害就至关重要。两个比较容易理解的防御思维:一是尝试将bug限制在尽可能小的区间范围内(如一个方法,模块);二是在bug未能产生较严重后果之前令其尽早出现,也就是所谓的尽早出错原则。为了尽早指出错误,我们可以使用断言来对一些程序中需要遵守的规则进行判断。一、什么是断言断言:在开发阶段的代码中嵌入,用于检验
2020-05-17 21:12:56
374
原创 软件构造课学习体悟(四)关于装饰者模式(Decorator)
我们都知道在程序编写与实现中,可复用性是十分必要且对未来的编码大有裨益的。而面向复用的编程当然不能仅仅满足于单个类本身,Java语言的装饰者模式(Decorator)即是一种面向复用的结构型设计模式,主要强调的是多个类/对象之间的关系和交互过程。一、定义与概念装饰模式的设计理念主要是以对客户端透明的方式动态扩展对象的功能,是继承关系的一个替代(继承会产生大量的子类,而且代码有冗余)。装饰模式可...
2020-04-26 20:31:41
174
原创 软件构造课学习体悟(三)关于RI和AF
一、Representation Independence我们都知道,构造抽象数据类型的好处是很大的,原因就在于它的复用性。这可以为我们避免大量的代码重复编写,方便编程。那么一个好的抽象数据类型(ADT)的安全性以及对于规约的遵守即规范性必然是极佳的。不变量就是一个衡量抽象数据类型规范、稳定、安全的重要属性。如何保护表示不变量呢,一般情况下有如下几种做法:⚪通过私有变量来保护⚪通过防御式拷...
2020-04-11 21:36:21
368
原创 软件构造课学习体悟(二)关于类型检验
前面两章主要笼统地从软件构造的角度回答了什么是“高质量的软件”以及从三个维度(阶段、动态、构造对象层次)刻画软件,并且阐述了软件构造的基本流程。对于本章所要学习的抽象数据类型(ADT)和面向对象编程(OOP),将是更为具体的学习。在本章的第一节数据类型与类型检验的学习后,我对于数据类型检测的方式有了初步的了解,下面浅谈一下在网上查阅了一些资料后的收获。一、静态检查和动态检查一种语言能够提供的自...
2020-03-23 23:46:36
146
原创 软件构造课学习体悟(一)关于软件可移植性与软件兼容性的区别
一、软件可移植性的概念:在软件工程中,可移植性(英语:Portability),又译为移植性、可携性,是指使用高阶语言写成的软件,在不同环境下,是否具备可以被重复使用的性质。一般来说,软件是否具备可移植性的衡量标准,在于进行软件移植时,需要付出多少工时为代价。具备高可移植性的软件,在移植到不同系统平台时,并不需要做太多事情,因此能够减少软件开发及布署时的成本。为了使软件具备高度可移植性,程序员需...
2020-03-08 20:12:02
5101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人