解释型脚本语言初探
编程主流思想
1.结构化编程面向功能分解
功能分解相当于C的函数和模块
数据流图相当于C的结构体
2.函数式编程
兰巴达演算:兰巴达表达式
LISP,Erlang:Erlang经典的分布式开发语言
尾递归栈的使用:对于尾递归,优化了栈的使用,无论多少迭代只使用一个栈
避免防御式编程:当发生错误时,会有相应的机制来应对
3.ER实体关系
a)关系型数据库3NF
属性不能传递依赖于主属性(属性不依赖于其它非主键属性)
第三范式(3NF)是在第二范式(2NF)的基础上建立起来的,即满足第三范式(3NF)必须先满足第二范式(2NF)。
如果某一属性依赖于其他非主键属性,而其他非主键属性又依赖于主键,那么这个属性就是间接依赖于主键,这被称作传递依赖于主属性。
下面以一个学校的学生系统为例分析说明这几个范式的应用。首先我们确定一下要设计的内容包括那些。学号、姓名、年龄、性别、电话、系别、系办地址、系办电话、课程、学分、成绩,等信息。
b)选择、投影、笛卡尔操作join
关系代数运算的基本运算是并、差、笛卡尔积、选择和投影
c)实体关系图――静态模型
4.面向对象编程
对象和类:包含和继承关系,既不是包含也不是继承则是关联关系
包含关系有:组合关系和聚合关系
区别在于:组成对象的所有子对象生命周期和构成整体对象的生命周期是否一致
对象包含2个部分
l属性:静态特征
l行为:动态特征
目的:实现高度的软件复用
5.三个阶段:
OOA:面向对象的分析
OOD:面向对象的设计
OOP:面向对象的实现
解释性脚本语言的特点
编译型:java,c,.net有编译过程
解释性:编译器解释器已集成,编译过程不需要干涉可直接执行
优点:大大节省软件开发的时间
编译时的代码是存在硬盘上
运行时的代码是从硬盘加载到内存上的一种动态状态
编译型:强类型变量,一旦定义了变量类型,从使用到结束类型是不会改变
解释型:动态类型:弱类型变量,只有在运行时才知道变量的类型,变量在运行时可以改变类型
优点:大大增加开发的便利性
Python是使用弱类型变量的解释型脚本语言,只有在运行时在强调变量的类型。优点:
开发速度快
运行效率高
代码比编译型语言简洁
内置数据容器
通用性强――跨平台使用
易于扩展和嵌入――python和C的互操作
方法论:
笛卡尔方法论
拆分
排序
处理
归并
软件工程过程方法
软件生命周期
RUP统一软件过程管理
敏捷开发
项目管理(计划、组织、执行、控制)
程序员境界
线性级
逻辑级
架构级
工程级