1.版本号
软件版本号就是商品的型号。
常见的版本号命名规则和几种类型
[name].x.y.z-[state]
name 为可选段,一般为v,表示Version;
x.y.z 为各版本的序号,一般都会遵循语义化版本 2.0.0 | Semantic Versioning
实际上基于此规范,name段不会出现;
state 可选段,用来表示当前软件的状态。例如:b 表示bate版,即测试版。
序号段核心规则
序号段就是 x.y.z 这一段,x、y、z为非负整数。
序号 说明
x :主版本号(major)无法向下兼容时,需要递增
y :次版本号(minor)新增新的特性时,需要递增
z :修订版本号(patch)修复问题时,需要递增
0.y.z 表示当前软件处于研发阶段,软件并不稳定
1.0.0 表示当前软件为初始的稳定版,后续的更新都基于此版本
对于系统基础的软件,一般在版本号中会标明适用的操作系统名称
版本状态段规则
标识 说明 含义
α 或 a alpha 版 内测版,Bug多
β 或 b beta 版 公测版,有缺陷
γ 或 g Gamma 版 成熟测试版,接近发行版
rc ReleaseCandidate 版 预发布版,有时会进一步细分:rc1、rc2
Demo 演示版 演示用,不做升级
SP SP1 service pack,升级包
Trial 试用版 试用版
Unregistered 未注册版 没有注册的版本,功能上有限制,这个大家懂的
Lite 精简版 只包含核心功能
enhance 增强版 增强版
free 免费版 自由使用的版本
release 发行版 有时间限制
upgrade 升级版 有功能增强或者修复了Bug
Retail 零售版 单独发售
Cardware 共享版 使用公用许可证
实际上大部分软件版本号命名都遵守上述规则。
总结
软件版本号格式通常为:x.y.z
x 主版本号,不向下兼容时递增;
y 次版本号,向下兼容,有新增特性时递增;
z 修订版本号,向下兼容,修复问题时递增;
a、b、rc 分别表示当前软件的发行状态。
在不同的项目也会有不同的命名规则.
除了版本号之外还会有一些修饰的词,比如: alpha: 内部版本 beta: 测试版 rc: 即将作为正式版发布 lts: 长期维护
2.面向对象设计原则
面向对象的设计原则又称软件工程基本原则,是一-组遵循的准则,它使构建和维护高质量,灵活,容易调整复杂软件应用程序变得更容易、可靠和有效。
第一个设计原则是单一职责原则,它指出每个类都应该只处理一个职责,以便使类的实现更加清晰,可维护性更强。这样,当需要更改某个类时,只需要更改它负责的职责,而不会影响其他类。
第二个设计原则是开放-封闭原则,这个原则指出,软件实体应该是可扩展的,而不是可修改的。这意味着,软件实体应该可以添加新的功能,而不是修改现有的功能。
第三个设计原则是里氏替换原则,(1)在任何父类出现的地方都可以用他的子类来替代(子类应当可以替换父类并出现在父类能够出现的任何地方),子类必须完全实现父类的方法。在类中调用其他类是务必要使用父类或接口,如果不能使用父类或接口,说明类的设计已经违背了LSP原则。
(2)子类可以有自己的个性。子类当然可以有自己的行为和外观了,也就是方法和属性。
(3)覆盖或实现父类的方法时输入参数可以被放大。即子类可以重载父类的方法,但输入参数应比父类方法中的大,的仍然是父类的方法。即以子类中方法的前置条件必须与超类中被覆盖的方法的前置条件相同或者更宽松。
(4)覆盖或实现父类的方法时输出结果可以被缩小。
第四个设计原则是依赖倒置原则,它指出,软件实体应该依赖于抽象,而不是具体的实现。这样,当实现发生变化时,不会影响到软件实体的结构和功能。
第五个设计原则是接口隔离原则,它指出类之间不应该有太多的依赖关系,而是应该通过接口来实现松耦合。这样,当某个类发生变化时,不会影响到其他类,因为它们之间没有直接的依赖关系。
第六个设计原则是组合重用原则,尽量使用对象组合,而不是继承来达到复用的目的。该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新的对象通过向这些对象的委派达到复用已有功能的目的。
第七个设计原则是迪米特法则(最少知识法则),它指出,一.个对象应该尽可能少地与其他对象进行交互。这样,当一个对象发生变化时,不会影响到1/2其他对象。
总的来说,面向对象的设计原则是一-组 有效的软件开发准则,它们可以帮助软件开发者更好地开发出可维护、可重用,可扩展的软件系统。