源代码

分析一套源代码的代码规范和风格并讨论如何改进优化代码

给你一囗甜甜゛ 提交于 2019-12-01 07:13:54
我的选题是《针对领域知识的中文知识图谱自动化》 源码下载: https://codeload.github.com/chizhu/KGQA_HLM/zip/master KGQA_HLM 基于知识图谱的《红楼梦》人物关系可视化及问答系统 文件树: app.py是整个系统的主入口 templates文件夹是HTML的页面 |-index.html 欢迎界面 |-search.html 搜索人物关系页面 |-all_relation.html 所有人物关系页面 |-KGQA.html 人物关系问答页面 static文件夹存放css和js,是页面的样式和效果的文件 raw_data文件夹是存在数据处理后的三元组文件 neo_db文件夹是知识图谱构建模块 |-config.py 配置参数 |-create_graph.py 创建知识图谱,图数据库的建立 |-query_graph.py 知识图谱的查询 KGQA文件夹是问答系统模块 |-ltp.py 分词、词性标注、命名实体识别 spider文件夹是爬虫模块 |- get_*.py 是之前爬取人物资料的代码,已经产生好images和json 可以不用再执行 |-show_profile.py 是调用人物资料和图谱展示在前端的代码 来源: https://www.cnblogs.com/tianjiazhen/p/11667083.html

分析一套源代码的代码规范和风格并讨论如何改进优化代码

陌路散爱 提交于 2019-12-01 07:12:32
我的工程实践题目是:风格迁移应用开发和移植。以下分析是一套基于tensorflow的风格迁移代码。 1、 结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点 该代码是利用python语言结构特点实现的风格迁移,其目录结构为: 其中程序文件有:settings.py; model.py; calculate_loss_function.py; train.py; read_data.py. 各文件的内容及功能如下: settings.py:设定一些重要参数、文件路径以及迭代次数,相当于配置文件。 model.py:vgg19模型定义文件,内有各卷积层的计算公式及处理方法。 calculate_loss_function.py:计算损失函数,通过风格损失和内容损失以各自权重相加所得。 train.py:运行文件,调用模型计算卷积数据,利用损失函数不断迭代计算,优化参数。 read_data.py:读取文件并显示 2、 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进 个人觉得这套代码写的挺好的了,比我自己写的可读性强太多了,但其中还是有可以修改的地方。 再model.py中,可以加多一些模型的介绍,以及对self的说明

分析一套源代码的代码规范和风格并讨论如何改进优化代码

末鹿安然 提交于 2019-12-01 07:12:25
本人工程实践选题是《基于情感词典的大数据分析》,为此我在github上找了一份相关项目的代码并用于进行本文的分析: 目录结构为: 一级: 二级: 三级:词典目录: 输入数据目录: 输出结果目录: 可见其目录比较清晰,把代码和数据分开,并且训练数据和输出数据也进行了区分,文件名也很好地说明了各个文件的用途,使人一目了然。 代码片段: 可以看出文件名/类名/函数名/变量名均符合python的规范要求,而且在必要的地方有相应的注释,结构清晰,方便他人进行代码阅读。 代码规范和风格: 基本原则:代码风格的原则是:简明,易读,无二义性。 缩进:一般4个空格。 行宽:行宽必须限制,但是以前有些文档规定的80字符行宽太小了(以前的计算机/打字机显示行宽为80字符),现在时代不同了,可为100字符。 括号:在复杂的条件表达式中,用括号清楚地表示逻辑优先级。 分行:不要把多行语句放在一行上。例如,a = 1; b = 2; // bogus;更严格地说,不要把不同的变量定义在一行上:Foo foo1, foo2; // bogus 大小写问题:由多个单词组成的变量名,如果全部都是小写,很不易读,一个简单的解决方案就是用大小写区分它们。Pascal——所有单词的第一个字母都大写;Camel——第一个单词全部小写,随后单词随Pascal格式,这种方式也叫lowerCamel。一个通用的做法是:所有的类型

分析一套源代码的代码规范和风格并讨论如何改进优化代码

左心房为你撑大大i 提交于 2019-12-01 07:11:02
  本文分析的源代码是keepalived,keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。 一、结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点。 keepalived是用c语言实现的,代码目录结构是按照模块划分的,有安装bin目录,doc目录和lib目录等。文件名是以文件实现的一组功能集命名,一个文件里的函数为实现一个模块功能的接口函数,函数名是更具体的功能含义,一般要做到见名知意。变量名和函数名定义规范一样,也是根据变量的含义功能来命名变量。单独有目录为测试接口API,作用是测试接口,即单元测试。 二、列举哪些做法符合代码规范和风格一般要求 keepalived在函数命名,文件命名,变量命名都符合代码规范,并且命名风格采用下划线来分割变量名或函数名,便于阅读,做到见名知意。keepalived源码是一个学习良好代码规范和良好代码风格的好的范例。 三、列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进; keepalived代码在简洁上,清晰以及无歧义上做的很好,没有这三个问题,但是就是注释有点好,对函数的注释

分析一套源代码的代码规范和风格并讨论如何改进优化代码

£可爱£侵袭症+ 提交于 2019-12-01 07:10:28
我的工程实践题目是,针对领域知识的中文知识图谱构建,下面分析一个比较相关的知识图谱项目: 基于医药知识图谱的智能问答系统 结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点 源码目录结构: idea是内是项目的工程配置文件 image内是项目所引用的图片 apche_configuratione内是项目的apche配置文件 static是前端网页文件 KGBA_Based_On_Medicine和kgba是核心代码文件 命名特点: 文件名命名并不规范,有的大写字母开头,有的全小写, 类名采用了统一的大小写混合的驼峰命名法,函数名和函数名采用了word_word的统一命名方法,易于读者看懂含义; 列举哪些做法符合代码规范和风格一般要求: 1.代码简洁易懂,逻辑清晰,必要出有需要注释,便于后人理解维护 2.使用了能够反映功能的名词短语,代码中无论是类名函数名变量名都用与实际作用相近的单词加下划线组成,杜绝了完全不规范的缩写,避免望文不知义 3.代码缩进合理,采用了适当的空行使得代码结构明了,便于阅读 4. 类功能明确,精确的实现了累的功能,类的划分逻辑清楚,一个类用来实现一组相近的功能。 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进:

分析一套源代码的代码规范和风格并讨论如何改进优化代码

青春壹個敷衍的年華 提交于 2019-12-01 07:09:25
结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点; 按照每个文件的主要功能进行命名,使得程序文件的作用清晰透明,便于读者把握脉络。 数据放置和前端程序各自放置在目录文件夹下,内容结构较为清晰 文件名命名为标准的驼峰式命名法 该源码最大的优点是使用了ini文件进行参数配置 这样使得参数配置集中且方便修改。 列举哪些做法符合代码规范和风格一般要求; 引用部分的代码保留了相关转载声明。 代码内变量名及函数名单词之间都用_分割,使得变量名清晰可读。 代码内注释较为详尽(主要是搬运的官方文档详尽,添加部分的问题还是不小) 函数头下方也会有函数变量注释 以及符号附近均用空格隔开,方便阅读。 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进; 该套源码的注释及变量命名等没有明显的问题,但是整个程序的运行方式及环境配置方法均未做任何说明,且由于距离发布已经过去近两年的时间,tf框架及其他第三方包的的更新。需要相当的时间来进行debug,且调试到运行后仍无法运行出合适的结果,需要重构部分代码。 总结同类编程语言或项目在代码规范和风格的一般要求。 一般来说最好有对应的文献来说明具体的原理,源码以有明确的环境配置及运行流程为上。

分析一套源代码的代码规范和风格并讨论如何改进优化代码

三世轮回 提交于 2019-12-01 07:09:10
一、结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点 1、项目特点及编程语言   该套源代码是实现音频解析分离的系统,使用的编程语言是 Python 。 2、源代码目录结构   如下图所示,源代码目录结构层次清晰,各文件夹的命名均使用了完整的对应着实际功能的英文单词,文件名符合文件内容,相关内容做到合理的归类,所以可以一目了然地知道各个文件夹所存储文件的功能。    3、文件名/类名/函数名/变量名等命名   如下图所示,源代码中的类名使用”大写字母开头“的方式命名,函数名、变量名均使用“小写+下划线”的方式命名,宏名使用”全大写“的方式命名。      采用这种命名风格,符合代码规范的一般要求,易于理解。但命名中使用下划线“_”,虽然一定程度上会使英文单词之间的界限清晰,但破坏了整体性,当代码较为复杂的情况下,不仅降低了代码存储效率,还可能造成误操作,误认为是多个函数或变量。   在这里,我更推荐使用驼峰式命名:     大驼峰:类名。     小驼峰:方法名,变量名,参数名。     全大写:常量名,单词之间下划线。 二、列举哪些做法符合代码规范和风格一般要求   在该项目的代码编写中,符号和变量间隔合理,清晰整洁,符合基本的编写规范:     (1

python 程序的执行过程

天涯浪子 提交于 2019-12-01 07:07:45
Python程序的执行过程 我们都知道,C语言在执行之前需要将源代码编译成可执行的二进制文件,也就是将源代码翻译成机器代码,这种二进制文件一旦生成,即可用于执行。但是,Python是否一样呢?或许很多人都听过,Python和Java都是半编译半解释的语言,那么问题来了,什么又是半编译半解释呢?这还要从C语言开始说起 比方我们现在有一段C语言写成的程序,我们在一台Linux服务器上编译好了,生成可执行的二进制文件,可是我现在想要在一台Windows的机器上执行这个文件,这是不可能的,原因是因为不同平台间的机器代码是不一样的,在Linux机器上生成的二进制可执行文件,是不能拿到Windows上执行的,甚至都是在Linux上编译的文件,但是用的C编译器不同,一样有可能无法执行。所以,这才有了半编译半解释。 半编译半解释保证,一次编译,到处运行。这是Java的承诺,同样适用于Python。半编译半解释会从源代码中产生一组字节码,它并不是机器代码,但是不管是在Linux还是Windows的机器上,同样的源代码产生的字节码都是一样的,同时它还有个虚拟机,虚拟机会一条一条执行字节码,生成可执行的机器代码交给CPU执行。正是因为字节码和虚拟机这两个特性,使得我们的程序可以正常执行在Linux或Windows机器上 那么你一定好奇,Python的编译器和Python的虚拟机在什么地方呢?于是

分析一套源代码的代码规范和风格并讨论如何改进优化代码

我只是一个虾纸丫 提交于 2019-12-01 07:02:42
我在github上选了一套仿mooc在线学习的代码进行分析,以下是代码的目录结构。 1.结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点 该代码目录结构的话还算清晰,各类名、函数名等也都以所实现的相应功能进行命名,做到了见名知义,可以很方便地找到相应的代码。分层也比较清晰,DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此;Service层主要负责业务模块的逻辑应用设计;Controller层负责具体的业务模块流程的控制;View层与控制层结合比较紧密,需要二者结合起来协同开发,主要负责前台jsp页面的表示。 2.列举哪些做法符合代码规范和风格一般要求 标识符命名符合规范,类名采用了大驼峰式命名规则,类名每个单词的首字母都大写,其它小写;而函数名、变量名则采用了小驼峰式命名规则,第一个单词的首字母小写,后面每个单词的首字母都大写。 类名后面加上了不同的后缀表示额外的意思,如CourseService表示这个类是个服务类,里面包含了给其它类提供业务服务的方法;CourseServiceImpl表明这个类是个实现类,不是接口。 静态常量全部大写并用下划线分割。 包名统一使用了小写字母。 每个if while for等语句,都不要省略大括号。

对一套源代码的规范和风格的讨论及优化改进

本小妞迷上赌 提交于 2019-12-01 06:58:15
  我的工程实践是机器学习相关,因此我在GitHub上选了下面的源代码进行学习: https://github.com/WillKoehrsen/machine-learning-project-walkthrough 一、对源代码的分析   1、目录结构   该源代码使用Python语言,在jupyter notebook上编写。在文件目录下有a uto_ml、 data、deprecated、images四个文件夹和Machine Learning Project Part 1.ipynb、Machine Learning Project Part 2.ipynb、Machine Learning Project Part 3.ipynb等源代码文件,其中:   文件夹auto_ml中存放的是管道程序;   文件夹data中存放的是该项目的训练集和测试集等数据压缩包;   文件夹deprecated中存放的是对数据进行探索的程序文件;   文件夹images中存放的是该项目用到的图像文件。      2、代码风格   由于该项目没有使用类,所有暂不讨论类的相关问题。我们随机选取了源代码中的一段个函数实现代码。    代码中实现不同功能的部分用空行隔开,并且在前面都有对本段功能描述的注释语句,清晰易懂; 函数的命名和变量的命名都采用英文半拼+英文全拼且用下划线隔开的组合方式