zoukankan      html  css  js  c++  java
  • 分析一套源代码的代码规范和风格并讨论如何改进优化代码

    我的工程实践是印章检测,可以用opencv的来实现印章的检测与去除。下面是opencv的一些操作的代码

    1.分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点;

    opencv是一个语言库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

    在实用opencv前要先安装,安装之后在jupyter notebook中输出import cv2 。调用opencv的内置函数时,要加上从cv2.函数名,如,此处读入一张猫的图片。由于python是根据缩进来控制逻辑的,所以正确的缩进尤为重要,好在jupyter notebook提供了自动缩进功能。

    2文件名/类名/函数名/变量名等命名、接口定义规范


    opencv的函数命都是有英语含义的,如读入图像时cv2.imread('cat.jpg'),imread表示image read 读入图片,cv2.imshow("img_gray", img_gray)表示输出图像,方便记忆与学习,

    3列举哪些做法符合代码规范和风格一般要求列举;

    1)适当的备注时符合代码规范的一般要求;

    2)由于jupyter notebook可以即时出,所以即时的执行结果,可以立刻看到结果是不是符合预期,加以调整;

    3)代码的函数命,清晰明了,可以一眼明白函数具有什么功能。

    4)由于python是用分行来表明逻辑的,所以多分行有利于读懂代码,维护代码。

    4列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;

    1)命名

    如果你给变量起名为a,b,c,用简单的文本编辑器就没法搜索它们的引用。而且,没人能猜到它们的含义。

    首字母大写的缩写:IR用来表示image read就很不合理

    同义词用来用去:例如 display, show

    2)注释,如果没有注释,别人要花很长时间来读你的代码,费时费力,有可能下次自己读代码的时候,都会都不懂。

    5总结同类编程语言或项目在代码规范和风格的一般要求

    python要求用缩进来表示逻辑块,所以缩进对于python格外重要

    每行代码尽量不超过80个字符

    禁止复合语句,即一行中包含多个语句:

    模块级函数和类定义之间空两行;

    类成员函数之间空一行;

    要使用太多的连续空行来区分代码的逻辑块

    函数的参数列表中,默认值等号两边不要添加空格

  • 相关阅读:
    廖雪峰的多线程 1
    保持良好的心态 戒骄戒躁
    Break camelCase
    int32 to IPv4 (int32到IPv4地址转换)
    Stop gninnipS My sdroW!
    Find The Parity Outlier 找到奇偶校验异常值
    今日新闻整理 2020-7-31
    改造rabbitmq demo 到 jpa
    Flink实战(110):FLINK-SQL应用场景(11)connector(十九)Flink 与 hive 结合使用(七) Flink Hive Connector 使用
    Hadoop基础(六十):面试题 Hadoop数据切片(二)切片机制源码
  • 原文地址:https://www.cnblogs.com/gmz-ustc/p/11657615.html
Copyright © 2011-2022 走看看