讨论代码设计顺序的重要性

在公司我们经常会需要用代码版本管理工具来对自己的代码进行管理,当我们对之前版本的代码修改之后需要对其提交,服务器确认。如果我们工作需要改动的代码量较小的话,直接一次提交大多数情况下都是可以的。但如果我们修改的代码量很多,我们应该如何commit才是最好的呢?

到我们实习生的培训员A告诉我们:当我们发现自己当前工作比较大,修改的代码比较多的时候,我们应该事先计划好自己代码的设计,先做什么后做什么,每做一个东西我们都应该有相应的commit。每个commit之间都应该是有合适的修改量,而且两次修改的内容尽量让其关联度不要太高,但也不能太细分了,加一行代码就commit一下肯定是不可取的。

比方说,我们要实现A功能,我们需要写这些函数:

a函数,本次修改的核心框架,对源代码影响最大;

b函数,是被a函数调用的,其间会用到源代码中的一些资源;

c函数,只被a函数调用,与源代码无关系。

那么依照关系我们应该先提交c函数,确认c函数无误后进行提交;

然后添加对整体代码影响较小的b函数,最后再提交影响最大的a行数。

这样做的好处是,我们可以避免一开始就提交a所导致的各种各样的问题,方便我们修改以及定位bug的位置。

如果我们一开始就提交a,势必我们也会连着bc一起提交,这样让我们维护也更加困难。

还有很多地方了解的不够深刻,仅为本人拙见。

这是一篇相关文章: http://www.cnblogs.com/BraveCheng/archive/2012/07/02/2573617.html

时间: 2024-10-21 07:13:14

讨论代码设计顺序的重要性的相关文章

代码顺序的重要性

背景 在修改前辈留下来的代码时踩到一个坑.简单讲一下代码做了什么事:在 try/catch 里实例化多个类,并调用类的方法为其赋值,catch 到错误也不会中断,而是通过打日志的形式收集报错信息. 我需要在里面新实例化一个类,有样学样,上来就是一顿copy改,可是新增的类的某个属性总是不对,排查了半天才发现一个坑. 错误模拟 class Point { constructor(x, y) { this.x = x this.y = y } getX() { return this.x } set

当C#中带有return的TryCatch代码遇到Finally时代码执行顺序

编写的代码最怕出现的情况是运行中有错误出现,但是无法定位错误代码位置.综合<C#4.0图解教程>,总结如下: TryCatchFinally用到的最多的是TryCatch,Catch可以把Try代码块的错误捕捉到,并对错误进行后续处理.这一点比较常见. 现在要讨论的是如果Try和Catch代码块有return时代码的执行顺序.众所周知,return的作用是退出当前函数,不执行return后面的代码.那么问题来了:如果return出现在Try或catch代码块中,并且return后面还有代码,则

浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序

本文主要基于向HTML页面引入JavaScript的几种方式,分析HTML中JavaScript脚本的执行顺序问题 1. 关于JavaScript脚本执行的阻塞性 JavaScript在浏览器中被解析和执行时具有阻塞的特性,也就是说,当JavaScript代码执行时,页面的解析.渲染以及其他资源的下载都要停下来等待脚本执行完毕①.这一点是没有争议的,并且在所有浏览器中的行为都是一致的,原因也不难理解:浏览器需要一个稳定的DOM结构,而JavaScript可能会修改DOM(改变DOM结构或修改某个

【tool】利用测试概念进行代码设计时的七条基本原则

跟其它编码原则一样,这些原则也不是不容置疑或不可改变的教条.有时候打破这些规则也是必要的.因此,理解每条原则背后的动机和判断何时这些动机不适用(或应让位给更关心的问题)的能力是很重要的. 原则 1. 到 GUI 视图的外面去 尽可能把代码移到 GUI 视图的外面.然后各种 GUI 动作就能成了模型上的简单方法调用.为什么您需要这样做呢? 对 GUI 测试者来说,通过方法调用测试功能比间接地测试功能容易的多. 另一个好处是它使修改程序功能而不影响视图变的更容易. 当然,视图中也可能存在错误.在理想

windows环境变量PATH顺序的重要性

PATH是路径的意思,PATH环境变量中存放的值,就是一连串的路径.不同的路径之间,用英文的分号间隔开.系统在执行用户命令时,若用户未给出绝对路径,则首先在当前目录下寻找相应的可执行文件.批处理文件等.若找不到,再依次在PATH保存的这些路径中寻找相应的可执行程序文件(windows环境变量的查找顺序是按照文件的录入顺序从前往后寻找的,最前面一条的优先级最高,如果找到命令就不会再向后找了). 在我身上发生的事让我觉得PATH顺序的重要性:之前在做图像处理时,使用了opencv2.4.10,由于使

ecmall中static变量的使用-model模型代码设计

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 function &m($model_name, $params = array(), $is_new = false) {     <span style="backg

javaScript代码执行顺序

javaScript是一种描述型脚本语言,由浏览器进行动态的解析和执行. 页面加载过程中,浏览器会对页面上载入的每个js代码块进行扫描. JavaScript是一段一段的分析执行的,在分析执行同一段代码中,定义式函数会 被提取出来优先执行.函数定义执行完毕后,才会按顺序执行其他代码. 一.代码块 JavaScript代码块是由一对script开始标签和结束标签包裹的一段代码. JavaScript是按照代码块来进行编译和执行的,代码块之间相互独立,但是前面执行的变量和方法,后面的代码块可以使用.

WPF换肤之四:界面设计和代码设计分离

原文:WPF换肤之四:界面设计和代码设计分离 说起WPF来,除了总所周知的图形处理核心的变化外,和Winform比起来,还有一个巨大的变革,那就是真正意义上做到了界面设计和代码设计的分离.这样可以让美工和程序分开进行,而不是糅合在一块,这样做的好处当然也是显而易见的:提高了开发效率. 原先的设计方式 在我们之前设计的代码中,每当添加一个新的窗体的时候,我总是会在这个新的窗体的XAML文件中加入如下的代码,以便使样式能够应用上去: <Window x:Class="WpfApplicatio

final、static、代码块、静态代码块、内部类、代码执行顺序

final final域使得确保初始化安全性(initialization safety)成为可能,初始化安全性让不可变形对象不需要同步就能自由地被访问和共享 作用在类上               则为final类,final类不能被继承.一般用于工具类时,同时把工具类构造函数声明为私有,暴露静态共有方法 作用在成员变量上    则视为常量.此时赋值方式有三种:(1)声明时赋值(2)构造函数中赋值(3)代码块中赋值. 即不管哪种方式都要保证在使用该变量之前要确保已经有值.使用该特性,可以强制赋