软件开发热点词汇不断推陈出新,cmmi,agile,精益,持续交付,持续集成,灰度……但有一个词其实一直在那里,支持着各种各样的新热点,它是#软件配置管理#。 它也是影响团队软件开发效率的重大因素。

下面来把我微博提到的坏味道归纳下

#软件配置管理#之坏味道1:版本控制之下文件名里带版本号

#软件配置管理#之坏味道2:通过评审或者发布的文件移到另外一个目录下,而不使用基线/lable/tag版本等等控制功能

#软件配置管理#之坏味道3:合并代码时,采用覆盖复制。

#软件配置管理#之坏味道4:没有规律可循的目录结构,没有规律可循的文件命名

#软件配置管理#之坏味道5:版本不升级的文件(比如会议记录,评审记录,email)与版本需升级的文件(需求,设计,计划)混杂在一起。

#软件配置管理#之坏味道6:迟迟不将文件提交到配置管理库,等到检查时或者集中编译时才放。

#软件配置管理#之坏味道7:在ide里修改文件,在ide外提交

#软件配置管理#之坏味道8:由一个专人来进行提交或者合并操作,其他人的提供或者合并必须等待特定某个人的操作

#软件配置管理#之坏味道9:古老的配置管理三库做法,常说的三库是指开发库(动态库)、受控库和产品库(静态库);做法是开发库->受控库->产品库。 在当年没有强大版本控制工具的“古代”,三库做法是不得不的选择,而在现代版本控制工具(比如CVS,SVN,Git等)的支持下,三库做法变得落伍了。

#软件配置管理#之坏味道10:已经发布了多次,软件版本号仍然保持在0.0.1-SNAPSHOT。

#软件配置管理#之坏味道搜集相关推荐

  1. 不讲码德!坏味道偷袭我这个老码农

    作者 | 雷架 来源 | 爱笑的架构师(ID:DancingOnYourCode) 大家闭上眼睛想一下什么是好代码?也许你的脑海中漂浮着一堆词:干净.整洁.命名规范.注释合理.高内聚低耦合-- 人人都 ...

  2. 讲点码德!避免这些代码坏味道,努力做一名优秀的程序员

    Martin Fowler:任何一个傻瓜都能写出计算机可以理解的代码.唯有写出人类容易理解的代码,才是优秀的程序员. 大家闭着眼睛想一下什么是好代码?也许你的脑海中漂浮着一堆词:干净.整洁.命名规范. ...

  3. 【重构之法】代码的坏味道

    代码的坏味道 坏味道意指代码中出现的可以被改进的地方.当你嗅到坏味道的时候,也就意味着重构的时机到了. 重构就是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修 ...

  4. 25 种代码坏味道总结+优化示例

    作者 | 捡田螺的小男孩       责编 | 欧阳姝黎 前言 什么样的代码是好代码呢?好的代码应该命名规范.可读性强.扩展性强.健壮性......而不好的代码又有哪些典型特征呢? Duplicate ...

  5. 代码好味道、坏味道与重构

    0. 代码坏味道 Large Class,过大的类:Large method,过长的(成员)函数: 1. 基本内涵 在不改变代码外在行为的前提下对代码做出修改,以改进代码的内部结构的过程. -- &l ...

  6. 读书笔记之《重构》第三章—代码的坏味道

    第三章 代码的坏味道 这一章告诉我们,什么样的代码需要去重构,该用什么方法.寻找代码的坏味道,就是从代码中找出特定的结构,这些结构指出重构的可能性.寻找这些结构,需要学会判断,判断一个类里面有多少实例 ...

  7. 重构笔记——代码的坏味道(上)

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42041757 在重构入门篇中,简单地介绍了重构的定义.为何 ...

  8. 重构——代码的坏味道

    1. Duplicated Code(重复的代码)   臭味行列中首当其冲的就是Duplicated Code.如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更 ...

  9. .NET代码质量 | 一天一点代码坏味道(4)

    [代码精进]| 总结/Edison Zhou 作为一个后端工程师,想必在职业生涯中都写过一些不好维护的代码.本文是我学习<代码之丑>的学习笔记,今天最后一天,一起品品滥用控制语句的味道,再 ...

最新文章

  1. 搭建python selenium 自动化测试框架_Python3+Selenium2完整的自动化测试框架实现(二):IE和Chrome浏览器驱动配置...
  2. module r8169
  3. 如何绘制计算机软件程序流程图?
  4. 使用Template时 typename 关键字的用法
  5. Vue安装live-server
  6. <scope>test</scope>的作用
  7. 数据库设计-基础-1-教务科研申报系统设计UML用例图
  8. Hexo如何绑定个人域名
  9. linux redhat 下让redis以服务方式运行
  10. aarch64(ARMv8)交叉编译环境下载
  11. SQL基础---SQL DELETE 语句
  12. wpewebkit在ubuntu18.04上编译配置
  13. archlinux i3wm通知管理
  14. python机器人编程——VREP数字孪生四轴机械臂联合仿真
  15. 我是 SPI,我让框架更加优雅了!
  16. Stripe 自动分账
  17. GraphicsLab Project之基于物理的着色系统(Physical based shading) - 基于图像的光照(Image Based Lighting)(Diffuse篇)
  18. C语言提取字符对应的ASCAl,ascall码对照表(ASCII码表)
  19. 白盒测试与黑盒测试的定义与区别
  20. stop slave mysql_mysql执行stop slave一直卡在Killing slave的状态

热门文章

  1. php中ip授权系统,PHP授权验证系统(域名+IP双重验证一键更新授权系统)
  2. linux 线程_浅谈Linux线程模型
  3. matlab怎么在c 中调用,在C中调用Matlab (转)
  4. nacos oaut服务地址_spring-boot+nacos+spring-oauth2整合方案
  5. python中单引号和双引号的区别_python中单引号,双引号,多引号区别
  6. python入门之函数调用第一关_零基础学习 Python 之与函数的初次相见
  7. mysql relay bin 主库_MySQL主库binlog(master-log)与从库relay-log关系代码详解
  8. ESP32cam蓝牙模块与arduino uno通信实验
  9. python元素定位id和name_Python Selenium定位html元素|find_element_by_class-name-id-tag-css-xpath-text...
  10. python一维平滑滤波_高斯滤波器的原理及其实现过程(附模板代码)