1.软件版本命名
软件版本 由四部分组成:
第一部分 软件架构或软件界面变化
第二部分 软件功能新增
第三部分 软件bug修复
第四部分 1.编译版本 加日期版本 它是编译时的版本标记,一般序 都是递增的。(如windows系统版本 )
2.日期版本 加希腊字母版本 用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本 。
希腊字母版本 常见有3种,分别为:alpha(内测版)、beta(公测版)、release(正式版)。
例如:1.1.1.20160101_beta
2.软件开发模型
边做边改型
瀑布模型—->敏捷开发(演变)
快速原型模型
增量模型
迭代(演化)模型
螺旋模型
极限编程模式
3.web软件结构模式
B/S模式
C/S模式
4.软件编程设计模式
mvc模式
mvp模式
mvvm(mvvc)模式
5.单例与原型(属于软件设计模式)
单例只有一个实例。(世界上只有独一无二的我)
原型根据一个原型创建N个对象。(根据“人”,创造“男人”与“女人”)
6.软件编程范式(思想)
面向过程编程 / 过程式编程(POP)
面向过程编程按照函数步骤一步步往下执行。
以功能函数(funtion)为中心编程。
面向对象编程(OOP)
面向对象编程把事物拆分成各种对象,在各种对象里面封装了一些方法,对象之间相互调用并执行。
以对象数据(data)为中心编程。
面向切面编程(面向侧面)
函数式编程
函数响应式编程
逻辑编程
7.软件架构风格
rest风格:通过url来定义资源位置与操作。
如:http://example.com/resources/ 或者 http://example.com/order
8.软件设计架构
面向服务架构
微服务架构
9.软件设计范式
约定优于配置 (惯例重于配置),目的按照约定的规范编程(约定软件目录结构,代码命名),减少软件开发人员需做决定的数量(大幅度减少配置的工作量),提高开发效率。
PS:并非一切都是积极的。任何结构化软件项目都存在两个基本问题。
会增加学习成本,学习软件编程规则,强迫软件开发人员必须遵守此规则。(代码文件一定要这样子命名,代码文件一定要放在这里)
会让软件开发人员忽略一些软件实现的基本原理。(不知道为什么要这样做,是怎么实现的)
10.UML基本模型图
结构UML图
类图 面向对象编程中类与类之间关系、属性。例如:User class 与 vendor Class关系
组件图 描述系统软件之间交互关系,接口。例如:Apache+Tomcat+webApp1+webApp2+dataBase结构
复合结构图 面向对象编程中类与结构化分类器、部件、端口、连接器和协作。例如,user类通过login接口登陆user界面
部署图 描述系统软件部署的节点。例如:数据库服务器集群。
对象图 面向对象编程中类具体某个实例。例如:user类中如果common user角色就进入common user界面。如果admin user角色就进入admin user界面。
包装图 面向对象包名(命名空间)的关系。例如:Dao包里面包含UserDao类。
行为UML图(交互UML图)
活动图 描述系统软件的业务功能,流程图。例如:用户第一步做什么,第二步做什么。
通讯图 描述用户对象之间的协作,而不是时间序列,类似于序列图,只是新增人物角色在序列图里面。
交互概览图 序列图与活动图的混合图。
状态图 系统软件的不同情况下,执行什么样的动作。例如:用户登陆失败状态,用户登陆成功状态,用户登陆过期状态会出现什么的操作。
序列图 面向开发人员介绍用户在一个时间轴(生命线)上操作行为。例如:用户进入登陆页面,未注册用户点击“注册”按钮注册页面,填写信息后提交表单,再进入登陆页面进行登陆。
定时图 描述多条生命线上的操作行为。类似于序列图。
用例图 面向普通人员介绍用户与系统软件的交互。例如:登陆用户拥有什么操作权限,未登陆用户拥有什么权限。
PS:这是UML 2.x的13种图表。
在实际建模中,结构图是必需,但行为图(交互图)只需序列图,用例图,活动图。
11.字节流与字符流
以InputStream(输入)/OutputStream(输出)为后缀的是字节流。
以Reader(输入)/Writer(输出)为后缀的是字符流。
字节流:程序-直接操作文件-文件
字符流:程序-放入缓存-写入文件-文件
PS:优先使用字节流。
12.heap(堆)和stack(栈)
堆是操作系统动态分配内存空间的。访问速度慢,全局访问变量,先进先出。
栈是编程语言固定分配内存空间的。访问速度快,局部访问变量,先进后出。
高级编程语言与低级编程语言
高级编程语言就是接近自然语言(人类语言),见其名知其义。
比如:java,c#,Python。
低级编程语言就是接近汇编语言或者机器语言,语言精练,不易阅读与理解。
比如:汇编语言。
22.软件位数(32位与64位)
位数越高意味着数据可以在更大的块进行处理,这也意味着更准确。
位数越高意味着系统可以指向或地址的物理内存位置的更大的数字。
以windows系统为例:

PS:MAC OS X/MACOS 是64位操作系统。
电脑主机内存超过4G以上的建议安装64位操作系统,更能发挥内存的作用。(现在大多数的cpu都是64位的)
23.bit(位)、(byte)字节、字符区别
bit是计算机存储设备的最小单位。
byte是计算机处理数据的基本单位。
字符是人使用的符 ,抽象的,如,a,b,1,2。
PS:1byte=8bit,一个汉字两个字节,一个英文一个字节。
24.gb(Gigabyte)与gib (Gibibyte) 区别
gb是一种十进制的信息计量单位。
1GB = 1,000(103)MB
gib是一种二进制的信息计量单位。
1GiB = 1,024(210)MiB
PS:因为windows系统把这两个单位搞混,导致外存储设备显示的容量与标示的容量不符。windows操作系统显示的gib,不是gb。
外存储设备的实际容量与标示容量相符,是正确的,并没有小。
硬件厂商采取十进制的换算方法计算。原因是1k=1000,1k!=1024。
25.编码
ASCII(美国信息交换标准代码)是美国制定的,基于26个基本拉丁字母的一种语言编码。(英文语言编码)
Unicode(中文:万国码、国际码、统一码、单一码)是Unicode联盟制定的,拥有全世界的语言的一种语言编码(世界标准编码)
如:UTF-8,UTF-16
GB 2312 或 GB 2312–80 是中华人民共和国国家标准简体中文字符集(中国标准编码)。
如:GBK 是中文字符扩展集(已过时),GB 18030是国内目前最新的中文字符集。
Big5是针对中国使用繁体中文(正体中文)地区的中文字符集(中国港澳、台湾地区标准编码)。
26.硬编码与软编码。
硬编码就是使用固定值。
如:
软编码就是使用变量去代替固定值。
如:
27.软件开源协议
LGPL协议: GNU Lesser General Public License 是指GNU 宽通用公共许可协议。开发者在不修改源码的前提,只引用源码的功能,无需强制开源自己的代码。
Apache License协议:非盈利开源组织Apache 采用的协议,与BSD类似。
MPL协议:The Mozilla Public License是指非盈利开源组织Mozilla采用的协议,开发者不受专利限制。
EPL协议:Eclipse Public License是指非盈利开源组织Eclipse采用的协议,商业软件可以使用,也可以修改EPL协议的代码,但要承担代码产生的侵权责任,与BSD类似。
CDDL协议:Common Development and Distribution License是指通用开发与销售许可协议,实为MPL的拓展协议,允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92165 人正在系统学习中 相关资源:软件开发范型(Paradigm)-清华大学郑人杰_殷仁昆教授_《软件工程…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!