我在github上选了一套仿mooc在线学习的代码进行分析,如下是代码的目录结构。git
1.结合工程实践选题相关的一套源代码,根据其编程语言或项目特色,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的作法和特色github
该代码目录结构的话还算清晰,各种名、函数名等也都以所实现的相应功能进行命名,作到了见名知义,能够很方便地找到相应的代码。分层也比较清晰,DAO层主要是作数据持久层的工做,负责与数据库进行联络的一些任务都封装在此;Service层主要负责业务模块的逻辑应用设计;Controller层负责具体的业务模块流程的控制;View层与控制层结合比较紧密,须要两者结合起来协同开发,主要负责前台jsp页面的表示。数据库
2.列举哪些作法符合代码规范和风格通常要求编程
标识符命名符合规范,类名采用了大驼峰式命名规则,类名每一个单词的首字母都大写,其它小写;而函数名、变量名则采用了小驼峰式命名规则,第一个单词的首字母小写,后面每一个单词的首字母都大写。jsp
类名后面加上了不一样的后缀表示额外的意思,如CourseService表示这个类是个服务类,里面包含了给其它类提供业务服务的方法;CourseServiceImpl代表这个类是个实现类,不是接口。编程语言
静态常量所有大写并用下划线分割。函数
包名统一使用了小写字母。单元测试
每一个if while for等语句,都不要省略大括号。学习
在适当的地方加上了代码注释,加强了程序的可读性。测试
3.列举哪些作法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进
类名的命名在有些地方没有遵循大驼峰式命名规则。
变量名的命名在有些地方出现了拼音和英文单词夹杂的现象,而应该统一采用英文单词的形式。
有些关键功能模块的代码注释仍是不够全面,不利于之后的修改。
4.总结同类编程语言或项目在代码规范和风格的通常要求。
包名由一个小写单词组成,类名采用大驼峰式命名规则,函数名、变量名则采用小驼峰式命名规则。
package行要在import行以前,import中标准的包名要在本地的包名以前,并且按照字母顺序排序,若是import行中包含了同一个包的不一样子目录,则应该用*来处理。
类变量存取的方法,若是只是简单的用来对变量赋值获取值的话,能够简单的写在一行上,其它的方法不要写在一行上。
{}中的语句应该单独做为一行,}语句永远单独做为一行。
程序块采用缩进风格编写,缩进只使用TAB键,不使用空格键,方法体的开始、类的定义、以及if、for、while等等中的语句都要使用缩进。
恰当的使用换行。
对不易理解的地方加上代码注释,加强程序的可读性与可维护性。