`

公司里,不应该允许开发人员在项目代码中署上自己的名字

阅读更多
最近做了比较多项目管理方面的工作,因此这方面想的也比较多。
举个反面例子:
java 代码
  1. /**  
  2.  * @author rongjunXue  
  3.  */  
  4. public class SayHi{   
  5.     //......   
  6.    say("Hello, javayey!);   
  7.    //......   
  8. }   
然后,wangwen修改里面的拼写错误:
java 代码
  1. /**  
  2.  * @author rongjunXue  
  3.  */  
  4. public class SayHi{   
  5.     //......   
  6.    say("Hello, javaeye!);   
  7.    //......   
  8. }   

最后由suzhenhui完成,badqiu修正了其中的一个BUG:

java 代码
  1. /**  
  2.  * @author rongjunXue,badqiu  
  3.  */  
  4. public class SayHi{   
  5.     //......   
  6.     //非常复杂的业务实现      
  7.     //......   
  8. }  
最后从代码看,往往会以为这段代码是由rongjunXue完成,并由badqiu做了修改。但事实完全不是这样。
事实是,第一个开发者只是写了个锥形,最终代码业务逻辑由suzhenhui完成,badqiu修正了其中的一个BUG。
当上面的业务逻辑出现问题时,应该找suzhenhui或badqiu,而不是找rongjunXue.
 
再加一个反面例子:
java 代码
  1. //方法描述  Add By ZhangShan   
  2. public List getListMethod(){   
  3.     //.........................   
  4. }  
其实,我们完全可以通过CVS和Eclipse查看到每一行代码的归属和变更历史,请看附图。
在Eclipse CVS视图中,左边会高亮显示代码中光标所在行的最后修改者,右下角可以选不同版本进行代码比较。
  • 描述: 通过CVS和Eclipse查看到每一行代码的归属和变更历史
  • 大小: 548.3 KB
分享到:
评论
49 楼 jet.han 2007-10-04  
我认为代码必须要署名,虽然CVS/SVN等都可以查出具体的作者或修改人是谁,但是代码署名表明了一个人的劳动成果,同时也有了要维护这段代码的责任和义务。有利于增强大家对项目的成就感和责任感。
48 楼 icess 2007-09-29  
chengren 写道
//
//copyright的一堆,就不描述了
//

/**
 * CLASS :XXXXXX VERSION : 1.02.0003 DATE : 2003/11/5
 * 本类的用途描述。。。。
 * Create: 2003/11/5  某A 1.01.0000
 * HISTORY : 2004/11/5  某甲 增加业务,原因XXX   1.02.0001
 * HISTORY : 2005/11/5  某乙 修改业务,原因XXX   1.02.0002
 * HISTORY : 2006/11/5  某丙 修正业务,原因XXX   1.02.0003
 */


我们这么用着觉得挺好的,项目虽不大也有些年头了



我们也这么用, 挺好, 挺清晰.
47 楼 dingdangxiaoma 2007-09-27  
呵呵,都有这个问题呢,呵呵.
46 楼 zealic 2007-07-17  
先纠正下楼主的代码错误
say("Hello, javayey!);
应该为
say("Hello, javayey!");

那么,不署名时不可能的,古代还有工匠冒着杀头的危险在贡品上署名的,当然,很隐秘而已。

其他的的观点就如楼上了!

45 楼 chengren 2007-05-25  
阳光晒晒 写道
gigix 写道
ltian 写道
兄弟们,当代码正常工作的时候,书不署名都无所谓,当代码不能正常工作,需要维护的时候,知道代码是谁写的就非常重要了,尤其是复杂的大项目。

“复杂的大项目”要查“代码是谁写的”就靠看源文件顶上的署名?
果然好复杂的大项目,呵呵。
知道是谁写的有什么用?
扣工资么?
还不如早点去看看设计文档找个人改了。。。


我的经验是,如果这个人还在这个公司的情况下,他分析解决问题的效率远比随便找个人看文档去修改效率要高一些。其次,我认为在维护的过程中,如果直接从代码就可以看到谁写的远比从版本呢维护工具中找到修改人是谁效率高的多(请注意,我要了解的是代码是谁为什么写的,而不仅仅是文件上的署名)。

44 楼 chengren 2007-05-25  
gigix 写道
jiashengfan 写道
vss cvs是可以看到,那如果以后不用这些工具了呢。只有代码。

如果developer一个不小心,把代码全删掉了呢?
没有版本控制就不是软件项目,顶多是写程序玩。


如果软件代码的所有权是客户的,在代码中书写变更履历是非常必要的。
我们无法保证客户也同样有拥有版本工具,就像我们无法预料客户未来是不是一定找我们修改程序一样。
43 楼 chengren 2007-05-25  
//
//copyright的一堆,就不描述了
//

/**
 * CLASS :XXXXXX VERSION : 1.02.0003 DATE : 2003/11/5
 * 本类的用途描述。。。。
 * Create: 2003/11/5  某A 1.01.0000
 * HISTORY : 2004/11/5  某甲 增加业务,原因XXX   1.02.0001
 * HISTORY : 2005/11/5  某乙 修改业务,原因XXX   1.02.0002
 * HISTORY : 2006/11/5  某丙 修正业务,原因XXX   1.02.0003
 */


我们这么用着觉得挺好的,项目虽不大也有些年头了
42 楼 fnet 2007-05-25  
对于水平平均的小团队来说,不用署名可能好点.


对于一个大项目几百人水平参差不齐,svn/cvs可以,推荐用trac进行代码管理,更直观.
41 楼 gigix 2007-05-24  
jiashengfan 写道
vss cvs是可以看到,那如果以后不用这些工具了呢。只有代码。

如果developer一个不小心,把代码全删掉了呢?
没有版本控制就不是软件项目,顶多是写程序玩。
40 楼 jiashengfan 2007-05-24  
vss cvs是可以看到,那如果以后不用这些工具了呢。只有代码。
39 楼 yiding_he 2007-05-24  
关于在代码中写变更记录,我认为不要做多余的事情,哪怕是一点点。
38 楼 number017 2007-05-24  
温柔一刀 写道
代码共享,不署名

团队成员谁都有修改和改进的权力

某个地方出了问题,不应该找写代码的某个人

整个团队都有责任

避免互相推卸责任


这个说起来简单,如果不采用结对编程
要做到这样是很难的。
37 楼 sun113 2007-05-22  
根据公司要求!
个人倾向于加上主要负责人的署名!
36 楼 阳光晒晒 2007-05-22  
gigix 写道
ltian 写道
兄弟们,当代码正常工作的时候,书不署名都无所谓,当代码不能正常工作,需要维护的时候,知道代码是谁写的就非常重要了,尤其是复杂的大项目。

“复杂的大项目”要查“代码是谁写的”就靠看源文件顶上的署名?
果然好复杂的大项目,呵呵。
知道是谁写的有什么用?
扣工资么?

还不如早点去看看设计文档找个人改了。。。
35 楼 gigix 2007-05-22  
ltian 写道
兄弟们,当代码正常工作的时候,书不署名都无所谓,当代码不能正常工作,需要维护的时候,知道代码是谁写的就非常重要了,尤其是复杂的大项目。

“复杂的大项目”要查“代码是谁写的”就靠看源文件顶上的署名?
果然好复杂的大项目,呵呵。
34 楼 hexstar 2007-05-21  
很多的IDE 在创建类时都会自动署名的.
而且署名了以后出问题比较好找人. 
另外对程序进行了一些重要的更改 最好在更改处注释一下,并写着更改的原因.
33 楼 kris_xu 2007-05-21  
谬论。
32 楼 hiwzg 2007-05-20  
我认同这样的观点。极限编程的实践是代码集体所有,也并没有排斥说在代码上写上作者的名字。

写主要开发者的名字我觉得还是比较恰当的。

有事也好找 。


aardvark 写道
署名更多的是一个企业文化上的事情。如果你们团队认为不署名比较好,那就不署名;如果别的团队认为应该署名,那就署名。至于具体到修改代码到什么程度可以署名,也是各团队内部的事情。
说到底署名并没有什么不得了的弊端,“不应该允许”口气就太大太不尊重别人了。
31 楼 magic007 2007-05-17  
lzmhehe 写道
引用
很多编码规范都是要求在源代码头行添加修改历史记录的,这样一目了然,去查日志不免太费事了吧


这样子代码很不好看
我就有过这样的经历
到后来又都去掉了
修改记录加在源代码文件的前面,又不是加个每个修改地方的前面。也就是修改记录都是集中在一处,并没有分散到文件的各个地方。没有不好看的问题
30 楼 lzmhehe 2007-05-17  
引用
很多编码规范都是要求在源代码头行添加修改历史记录的,这样一目了然,去查日志不免太费事了吧


这样子代码很不好看
我就有过这样的经历
到后来又都去掉了

相关推荐

    版署网络游戏防沉迷系统服务端Java SDK.zip

    本篇文章将深入探讨版署网络游戏防沉迷系统的服务端Java SDK,以及如何在游戏项目中应用这一技术。 首先,我们需要理解Java SDK(Software Development Kit)的概念。SDK是一组工具、库和文档,帮助开发者创建特定...

    ITWD:Web开发项目简介

    AJAX(Asynchronous JavaScript and XML)允许异步数据交换,使网页能够在不刷新的情况下更新部分内容,提高了用户体验。 Web开发项目可能包括前端和后端开发。前端开发主要关注用户界面和交互,而后端开发则涉及...

    OBD_CAN读取代码,obd接口can定义,C,C++源码.zip

    在汽车诊断领域,OBD(On-Board Diagnostics)是一种标准接口,允许技术人员或车主通过专用设备连接到车辆,以获取车辆的系统信息、故障代码和实时数据。CAN(Controller Area Network)是汽车内部通信的一种常见...

    Python库 | swmm_api-0.1a10-py3-none-any.whl

    在Python项目中,使用swmm_api库可以简化与SWMM的交互,提高开发效率。开发人员可以通过编写Python代码来控制模型的各个方面,使得复杂的水文计算变得更加简单。同时,由于其基于Python,开发者可以利用Python丰富的...

    easyx4mingw_2023大暑版.zip

    " Mingw" 是Minimalist GNU for Windows的缩写,它是一个可自由使用的Windows下的C和C++编译器,它实现了GCC(GNU Compiler Collection)和GNU开发工具集在Windows上的运行。 描述中的信息虽然简洁,但我们可以推测...

    EPA PMF 5.0大气污染物解析工具.rar

    标题中的"EPA PMF 5.0大气污染物解析工具"是指美国环保署(Environmental Protection Agency,简称EPA)开发的一款名为Positive Matrix Factorization (PMF)的5.0版本软件。PMF是一种统计方法,广泛应用于环境科学...

    2021-2022计算机二级等级考试试题及答案No.1100.docx

    一个类可以实现多个接口,接口的成员方法不允许提供实现代码。 ### 18. JSP 内置对象 response JSP 内置对象 `response` 提供了多种方法来处理客户端请求和响应。调用 `getOutputStream()` 方法可以获取到一个指向...

    Python库 | pyswmm-0.6.2.tar.gz

    这个压缩包文件包含了库的源代码和其他相关文件,以便开发者在自己的项目中集成和使用。 在Python开发环境中,使用pyswmm库可以实现以下功能: 1. **模型创建与编辑**:用户可以通过Python代码创建、修改和管理...

    airnowpy-2.2.2-py3-none-any.whl.zip

    这种格式允许开发者无需编译源代码即可快速部署和安装Python包,提高了安装速度,特别是在没有编译环境或者编译困难的系统上。 "airnowpy" 库则专注于与美国环境保护署(EPA)的空气质量指数(AirNow)服务进行交互...

    streamlit_flood_app:带有环境署实时洪水数据的应用

    Streamlit Flood App是一款基于Python开发的应用程序,专用于展示英国环境署(Environment Agency)的实时洪水数据。这个应用利用了Streamlit库,一个强大的工具,让数据科学家和开发者能够轻松地创建交互式的数据...

    Python库 | stactools_corine-0.1.4.tar.gz

    Python库stactools_corine-0.1.4是一个用于处理和操作Corine Land Cover(CLC)数据的工具,该数据集是欧洲环境署(EEA)提供的一种地理信息资源,用于监测欧洲的土地覆盖变化。这个库是Python开发语言的一部分,它...

    aids-gdp-correlation:这是一个在我的硕士学位期间开发的数据分析主题的项目,旨在发现与艾滋病相关的死亡人数与不同国家的GDP之间的相关性

    Jupyter Notebook 允许研究人员结合代码、文本、图表和公式,便于数据探索、分析和结果展示。 3. 数据分析:在Python中,可能会使用Pandas库进行数据处理,NumPy进行数值计算,以及Matplotlib或Seaborn进行数据可视...

    swmm51014_engine_1.zip

    SWMM(Storm Water Management Model)是由美国环保署(EPA)开发的一款强大的开源软件,用于模拟城市雨水管理系统和合流制排水系统的运行。这个压缩包"swmm51014_engine_1.zip"包含了SWMM 5.1.014版本的计算引擎源...

    SWMM(英文版).zip

    1. **SWMM介绍**:SWMM是由美国环保署(EPA)开发的,用于模拟降雨-径流过程、水质、水量和城市排水系统的模型。它适用于城市和郊区的雨水管理,包括下水道、雨水花园、渗透设施等。 2. **模型功能**:SWMM能够模拟...

    Linux网络编程(Socket技术)

    AppleTalk是苹果公司在20世纪80年代开发的一种网络协议栈,主要用于Macintosh计算机。 **5.6 TCP/IP概述** - **TCP/IP结构模型**:TCP/IP协议栈由应用层、传输层、网络层和网络接口层组成。 - **Internet协议(IP...

    Jagathon-开源

    开源社区的成员可能会在GitHub或其他代码托管平台上分享和讨论该项目,提供更详细的文档和教程。 【参与和贡献开源项目】 想要参与Jagathon项目的开发或贡献,你需要: 1. **获取代码**:从代码仓库(如GitHub)...

    IsoBuster-v2.7 含有注册码

    显示(并允许提取)的Nero项目文件,如果光盘上可用 ?支持的CD - i文件系统以及从试图装入CD -Ⅰ硬盘不同的行为。 ?信息和文件系统属性(一开发商必须为财政司司长) ?的CD / DVD /高清DVD /蓝光表面扫描,看看是否...

    excavate:(理论上)显示各种纽约地铁服务的状态

    在"excavate-master"这个压缩包中,可能包含了项目的源代码、样式文件、资源文件以及可能的测试文件。通过阅读和分析这些文件,我们可以深入理解该项目的实现方式和设计思路,进一步学习和应用上述技术。不过,由于...

    pyMet:用于运行美国环保署 AERMET 的 python 函数

    **pyMet:运行AERMET的Python接口** `pyMet` 是一个专为运行美国环保署(EPA)开发的气象模型...在`pyMet-master`这个压缩包中,包含了`pyMet`库的源代码和其他相关资源,用户可以直接下载并进行二次开发或学习使用。

    mta_subway_map_d3:工作正在进行中

    【标题】"mta_subway_map_d3:工作正在进行中" 涉及的是一个使用D3.js库来创建纽约MTA(大都会运输署)地铁地图的项目。这个项目处于开发阶段,意在帮助用户理解和学习D3.js的数据绑定和可视化能力。 【描述】中的...

Global site tag (gtag.js) - Google Analytics