zoukankan      html  css  js  c++  java
  • 代码规范及编码原则

    代码规范及编码原则

    1.1

    代码风格的原则是:简明,已读,无二义性。每一个优秀的程序员都应该遵循代码规范及编码原则。

    读了《构建之法》第四章后,我们组进行简洁总结。

    1.2

    程序风格:

    1缩进:4个空格

    2行宽:限制行宽

    3括号:在复杂的条件表达式中,用括号清楚地表示逻辑优先级

    4{}号:每个{}号独占一行

    5分行:不要把多条语句放在一行

    变量

    命名规则
    (1) 变量名的命名规则; 
    分析:变量名的命名规则遵循用户自定义标识符命名规则 
    1) 只能由字母、数字、下划线组成; 
    2) 第一个字符必须是英文字母;
    3) 有效长度为255个字符; 
    4) 不可以包含标点符号和类型说明符%,&,!,# ,@,$
    5) 不可以是系统的关键词比如else

    注释

    1、多余的注释要舍弃

    2、复杂的注释放在函数头

    函数,过程

    1.函数的规模尽量限制在200行以内。   
    2.一个函数最好仅完成一件功能。   
    3.为简单功能编写函数。

    4.函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。 

    5.函数的命名法应使用驼峰命名法或者下划线命名法,驼峰和下划线不能同时使用。

     除了此书外,《Clean Code》也可以帮助程序员学习代码规范。

    下面是Clean Code读书笔记

    一、整洁代码
    1. 概念 
             代码正确   
             简洁明了
            清晰易读  
            短小精确
    二、命名    
          1.准确:
           名字与意义匹配     
            易于区别      
          2.实用 
        使用读的出来的名称   
        使用可搜索的名称  
           3.明确    
        一个概念对应一个词  
        不用双关语   
        使用有意义的语境   
    三、函数
          1.短小
          2.职责单一
          3.一块代码中,函数的抽象层级需一致
          4.函数命名规范(参照二)
          5.参数尽可能少
          6.如果函数需要的参数要求数量有多种,应考虑将其封装成类
          7.实用异常类代替返回错误码,抽离try/catch代码块,使代码更加简洁
    四、注释
          1.少用注释,尽可能通过规范的代码来表达
          2.不使用无意义的注释
          3.必要的注释:
         法律信息
        提供信息的注释
        对代码意图进行解释的注释
        警示信息,防止踩坑
        TODO注释:未来得及完成的部分
         4. 对于无用的代码应直接删除而不是注释
    五、格式
           1.为什么需要规范格式
        易维护
        易拓展
           2.垂直格式
        行数少,短小精悍
        概念隔离,不同的的概念/逻辑 代码实用空行隔离
        相关靠近:对于关系紧密的代码,尽量写在一起
           3.水平格式
        缩进、对齐
    六、对象与数据结构
           1.区别:
        过程式代码便于在不改动既有数据结构的前提下添加新函数
        面向对象代码便于在不改动既有函数的前提下添加新类
            亦即:
        过程式代码难以添加新数据结构,因为必须修改所有函数
        面向对象代码难以添加新函数,因为必须修改所有类
    七、错误处理
           1.使用异常而非返回码:
        更加美观、整洁
           2.使用不可控异常
        可控异常的代价是违反开放/闭合原则,因为你需要在使用的地方捕获异常
           3.在异常发生的地方添加环境说明:
        这样当异常发生的时候就可以根据这些信息定位异常原因
           4.不返回null 也不传递null
        这样在接收的时候不需要进行空值检查
    八、边界
           翻了下原书,边界是Boundaries   对于这个名字,开始不是大理解,就算现在看来也还是觉得不直观
          标题略晦涩:作者的意思应该是让我们让自己的代码和第三方库代码不要耦合太紧密,需有清新的边界
           对于第三方类库给的学习建议是:探索性地学习测试,以此熟悉类库,写出良好的代码

    来源:

    https://blog.csdn.net/mummyding/article/details/51326238
  • 相关阅读:
    HashMap遍历和使用
    java的环境变量classpath中加点号 ‘.’ 的作用
    java编程思想-第六章-某些练习题
    内连接查询 (select * from a join b on a.id = b.id) 与 关联查询 (select * from a , b where a.id = b.id)的区别
    django入门-模型-part2
    django入门-初窥门径-part1
    jdk8飞行记录器配置
    docker-compose启动的tomcat无法远程连接jmx
    zabbix_sender自定义监控
    搭建基于Jenkins salt-api的运维工具
  • 原文地址:https://www.cnblogs.com/loverboy88/p/14019925.html
Copyright © 2011-2022 走看看