我的工程实践题目是,针对领域知识的中文知识图谱构建,下面分析一个比较相关的知识图谱项目:
基于医药知识图谱的智能问答系统
结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点
源码目录结构:
idea是内是项目的工程配置文件
image内是项目所引用的图片
apche_configuratione内是项目的apche配置文件
static是前端网页文件
KGBA_Based_On_Medicine和kgba是核心代码文件
命名特点:
文件名命名并不规范,有的大写字母开头,有的全小写,
类名采用了统一的大小写混合的驼峰命名法,函数名和函数名采用了word_word的统一命名方法,易于读者看懂含义;
列举哪些做法符合代码规范和风格一般要求:
1.代码简洁易懂,逻辑清晰,必要出有需要注释,便于后人理解维护
2.使用了能够反映功能的名词短语,代码中无论是类名函数名变量名都用与实际作用相近的单词加下划线组成,杜绝了完全不规范的缩写,避免望文不知义
3.代码缩进合理,采用了适当的空行使得代码结构明了,便于阅读
4.类功能明确,精确的实现了累的功能,类的划分逻辑清楚,一个类用来实现一组相近的功能。
列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进:
文件格式完全不统一,有的采用驼峰命名法,有的首字母缺没有大学,有的文件名单词之间用下划线分隔开,有的却没有
部分文件命名比较随意,含义不清,其他方面代码比较符合规范,逻辑清晰没有违背代码的简介,清晰,无歧义原则。
总结同类编程语言或项目在代码规范和风格的一般要求:
此项目主要使用python语言,因此下面将列举python的代码风格和规范的一般要求:
1命名规范:
函数、变量及属性都应该用小写单词拼写,只见用_连接,不遵循驼峰命名法
类与异常应该首字母大写,不要用_连接
受保护的实例属性,应以单下划线开头
实例的私有属性,应以上下划线开头
模块级别的变量单词都要大写,中间以单下划线隔开
变量要尽可能有意义
2.空白规范
和语法相关的每一层缩进都用4个空格表示
赋值时等号两边都要有一个空格
每一行所占用的字符数应不超过79,实际操作中应当尽量不让代码编辑器的行滚动条显示出来
在使用函数进行函数式编程时,函数之间要空两行
在类中的函数,函数之间应该空一行
函数与类是同一个级别,则他们之间应该空两行
对于超出每行规定的字符数的长表达式,应当敲回车缩进,通常除了首行其余各行都要在原来的基础上再次缩进4个空格
3.语句规范
判断变量是否为None、False或True时不要用==,要用is,例如,if a is None
import语句应放在句首,导入时要尽量使用绝对导入不要使用相对导入,并且导入时最好指定相应的模块的某一具体功能,例如,from datetime import datetime
模块导入时应根据标准库模块、第三方模块以及自用模块进行分类
检测容器不为空时,应使用if 容器名,例如,lists = [] if lists
采用内联形式的否定词,不要把否定词放在整个表达式的前面,例如,应该if a is not None 而不是 if not a is None
4.注释规范
对某些重要的代码块的功能说明,应使用单行注释
对整个模块功能的说明应使用多行注释
对类或函数的功能及使用方法的详细说明应使用文档字符串
python的注释尽量使用英文
5.并发规范
I/O密集型,像web应用这样的场景应该使用多线程编程
计算密集型,像计算圆周率等场景应该使用多进程编程,尽可能利用多核CPU优势