首页 > 编程语言 >优秀的编程习惯

优秀的编程习惯

时间:2022-10-19 00:45:29浏览次数:38  
标签:文件 git 代码 编程 习惯 复用 review 优秀 500

  • 对于代码格式规范,100%严格执行,严重容不得一点沙。
  • 文件绝不能超过 800 行,超过,一定要思考怎么拆文件。工程思维,就在于拆文件的时候积累。
  • 函数对决不能超过 80 行,超过,一定要思考怎么拆函数,思考函数分组,层次。工程思维,就在于拆文件的时候积累。
  • 代码嵌套层次不能超过 4 层,超过了就得改。多想想能不能 early return。工程思维,就在于拆文件的时候积累。
下面这个就是 early return,把两端代码从逻辑上解耦了。
  • 从目录、package、文件、struct、function 一层层下来 ,信息一定不能出现冗余。比如 file.FileProperty 这种定义。只有每个’定语’只出现在一个位置,才为’做好逻辑、定义分组/分层’提供了可能性。
  • 多用多级目录来组织代码所承载的信息,即使某一些中间目录只有一个子目录。
  • 随着代码的扩展,老的代码违反了一些设计原则,应该立即原地局部重构,维持住代码质量不滑坡。比如:拆文件;拆函数;用 Session 来保存一个复杂的流程型函数的所有信息;重新调整目录结构。
  • 基于上一点考虑,我们应该尽量让项目的代码有一定的组织、层次关系。我个人的当前实践是除了特别通用的代码,都放在一个 git 里。特别通用、修改少的代码,逐渐独立出 git,作为子 git 连接到当前项目 git,让 goland 的 Refactor 特性、各种 Refactor 工具能帮助我们快速、安全局部重构。
  • 自己的项目代码,应该有一个内生的层级和逻辑关系。flat 平铺展开是非常不利于代码复用的。怎么复用、怎么组织复用,肯定会变成’人生难题’。T4-T7 的同学根本无力解决这种难题。
  • 如果被 review 的代码虽然简短,但是你看了一眼却发现不咋懂,那就一定有问题。自己看不出来,就找高级别的同学交流。这是你和别 review 代码的同学成长的时刻。
  • 日志要少打。要打日志就要把关键索引信息带上。必要的日志必须打。
  • 有疑问就立即问,不要怕问错。让代码作者给出解释。不要怕问出极低问题。
  • 不要说’建议’,提问题,就是刚,你 pk 不过我,就得改!
  • 请积极使用 trpc。总是要和老板站在一起!只有和老板达成的对于代码质量建设的共识,才能在团队里更好地做好代码质量建设。
  • 消灭重复!消灭重复!消灭重复!
主干开发

最后,我来为’主干开发’多说一句话。道理很简单,只有每次被 review 代码不到 500 行,reviewer 才能快速地看完,而且几乎不会看漏。超过 500 行,reviewer 就不能仔细看,只能大概浏览了。而且,让你调整 500 行代码内的逻辑比调整 3000 行甚至更多的代码,容易很多,降低不仅仅是 6 倍,而是一到两个数量级。有问题,在刚出现的时候就调整了,不会给被 revew 的人带来大的修改负担。

标签:文件,git,代码,编程,习惯,复用,review,优秀,500
From: https://www.cnblogs.com/Sultan-ST/p/16804764.html

相关文章

  • shell编程基础
    一、为什么要实现shell编程shell集合了大量命令,借助shell,大量任务可以实现自动化,提高效率。 二、脚本1、代码:#!/bin/sh符号#!用来告诉系统执行该脚本的程序。编辑完,如果要执......
  • 用 Kotlin 的函数式编程 替代 GOF 设计模式
    用Kotlin的函数式编程替代GOF设计模式函数式编程(FP)值就是函数,函数就是值。所有函数都消费函数,所有函数都生产函数。"函数式编程",又称泛函编程,是一种"编程范式"(prog......
  • 45、shell编程-函数
    函数function是由多个shell组成的语言块,实现代码重用和模块化编程,与shell类型,不同点为shell程序运行会单独开启进程,而函数不会开启进程,是在当前shell环境中运行,可影响当前sh......
  • Java并发编程学习7-阻塞队列
    阻塞队列介绍阻塞队列之前,先来介绍下队列Queue。Queue用来临时保存一组等待处理的元素。它提供了几种非阻塞队列实现,如下:ConcurrentLinkedQueue,这是一个传统的先进先出......
  • 即时通讯技术文集(第2期):脑残式网络编程系列 [共12篇]
    为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术周刊,本次是第2 期。第 1 篇[标题] 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四......
  • 简单的clojure下socket server编程
    一、概述本文是简单的clojure下SocketServer编程,所谓的简单是:收发都是string,可以通过函数启动和关闭Server。所用的库为:aleph,项目地址:https://github.com/clj-commons/a......
  • 已整理-shell脚本编程资料整理
    目录:1、变量的定义与类型2、配置用户环境3、shell的整数运算4、条件测试5、if条件分支6、循环7、ca......
  • Delphi TWebBrowser编程简述
       Delphi3开始有了TWebBrowser构件,不过那时是以ActiveX控件的形式出现的,而且需要自己引入,在其后的4.0和5.0中,它就在封装好shdocvw.dll之后作为Internet构件组之一......
  • 【汇编】最简单的汇编程序:实现清屏(.asm源码)
    项目环境编译环境:搭建一个nasm2.8的编译环境。镜像文件:采用winhex_18.2刷入编码。虚拟机:采用Bochs-2.4.5。项目软件傻瓜式环境配置。解压文件到D盘能直接使用。程序介绍汇编......
  • 反射学习——Robyn编程学习(Java)
    反射为什么我们需要反射?因为反射就是通过找到一个类的CLASS对象,从而对该类的属性和方法进行操作,可以理解为使用了一个镜子来操控类。反射原理图反射优化类加载的过......