1 编程语言共有的特性有哪些。
- 名字说明
- 类型说明
- 初始化
- 对象的局部性
- 程序模块
- 循环控制结构
- 分支控制结构
- 异常处理
- 独立编译
2 如何选择开发语言。
程序设计语言的选择常从以下几个方面考虑:
- 项目应用领域
- 算法与计算的复杂性
- 数据结构的复杂性
- 效率
- 可移植性
- 程序设计人员的水平
- 构造系统模式
3 什么是编码规范。
软件编码规范是与特定语言相关的描写如何编写代码的规则集合。
4 枚举编码规范的基本要求,以及一些常用的编码规范
基本要求:
- 程序结构清晰且简单易懂,单个函数的行数一般不超过100行(除特殊情况)
- 算法设计应该简单且直截了当,代码要精简,避免出现垃圾程序
- 尽量使用标准库函数(类方法)和公共函数(类方法)
- 最好使用括号以避免二义性
常用的编码规范:Google公司的编码规范
5 什么是程序内部文档。
程序内用于对代码进行说明的注释,包含
- 描述性注释:边写代码边注释,变量定义和分支语句一般要有注释。
- 序言性注释:通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用
- 功能性注释:功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样,而不要解释下面怎么做。
6 如何做程序内文档(或者注意点有哪些)
对于描述性注释:
1.边写代码边注释,变量定义和分支语句一般要有注释。
2.修改代码同时修改相应的注释,不再有用的注释要删除。
3.注释应该与程序一致。但不应注释含义已十分清楚的代码。
4.注意格式,注释的位置应与被描述的代码相邻,一般为代码的上方且为左对齐。
5.当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。
对于序言性注释:
通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用
对于功能性注释:
功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样,而不要解释下面怎么做。
要点:
- 要描述一段程序而不是每一个语句
- 要使用缩进和空行使代码和注释可以进行区分
- 注释要正确
7 枚举提升代码效率的方法。(代码、输入输出、数据库访问)
1.代码效率
- 先简化算数和逻辑表达式
- 仔细研究嵌套的循环,以确定是否有语句可以从内层往外移(优化嵌套循环)
- 尽量避免使用多维数组
- 尽量避免使用指针和复杂的列表
- 使用执行时间短的算术运算
- 即使语言允许,一般也不要采用混合数据类型
- 尽量使用整数表达式和布尔表达式
2.存储器效率
采用结构化程序设计,将程序功能合理分块,使每个模块或一组密切相关模块的程序体积大小与每页的容量相匹配,可减少页面调度、减少内外存交换,提高存储器效率。
3.输入输出效率
- 所有输入/输出都应该有缓冲,以减少过多的通信次数
- 对辅存(如磁盘),应选用最简单的访问方法
- 辅存的输入/输出,应该以块为单位进行
- 终端和打印机的输入/输出,应当考虑设备的特性,以提高输入/输出的质量和速度
4.数据库访问效率
- 采用高性能数据库
- 避免表扫描
- 建立合理的索引,避免扫描多余数据,避免表扫描
- 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描
- 该查询也将导致表扫描
select id from t where name like ‘%abc%’
8 如何确保程序结构清晰、且简单易懂(综合题目)
1.根据开发要求及自身能力选择合适的开发语言
2.保持良好的编码风格,遵循一定的编码规范,代码应该正确、易读、易于修改、易于扩展、易于维护
3.编写并维护程序内部文档
9 补充
软件编码
定义:软件编码是一个复杂而迭代的过程,包括程序设计和程序实现。
要求:
- 正确地理解用户需求和软件设计思想
- 正确地根据设计模型进行程序设计
- 正确而高效地编写和测试源代码
软件编码是设计的继续,会影响软件质量和可维护性。
包含工作:
- 程序设计
- 理解软件的需求说明和设计模型
- 补充遗漏的或剩余的详细设计
- 设计程序代码的结构
- 设计审查
- 检查设计结果
- 记录发现的设计缺陷(类型、来源、严重性)
- 编写代码
- 应用编码规范进行代码编写
- 所编写代码应该是易验证的
- 编译代码
- 修改代码的语法错误
- 代码走查
- 确认所写代码完成了所要求的工作
- 记录发现的代码缺陷(类型、来源、严重性)
编码风格
变量名的选择
表达式的书写
简单直接地反映意图,不要卖弄技巧!
构造语句时应该遵循的原则是,每个语句都应该简单而直接,不能为了提高效率而使程序变得过分复杂;
不可将浮点变量用“==”或“!=”与任何数字比较,应该设法转化成“>=”或“<=”形式
对于for语句:如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层。
GOTO语句的使用:
>goto语句可以灵活跳转,但是经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。
>在处理例外时,用goto语句从多重循环体中一下子跳到外面,用不着写很多次的break语句。
输入输出