`
getjack
  • 浏览: 13822 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

一个2600行代码的类,干掉1100行,程序照常运行

 
阅读更多
如题,这是什么概念,至于其他的类也是一个鸟样,我不想去多改了。
很无奈,如果要去优化,还不如重新开发。你们有碰到这样“优秀”的程序。唉
分享到:
评论
89 楼 cxshun 2011-05-27  
这个杯具啊,不过才2000多行,我们公司的一般都上4K行的,看着那个蛋疼啊,if else一大堆。
88 楼 tang_kun_cool 2011-05-27  
andy_ghg 写道
同楼主,我以前曾经吹过牛:“你们这个系统,我能砍掉五分之二的前端代码和五分之一的后台代码”。当然我是有根据的也不是乱吹牛。

我遇到的极品项目,让我整整蛋疼了一年,到现在都心有余悸,现在那个项目找我帮忙,我头可断,血可流,代码我坚决不动。



现在的程序就是没有设计好,乱写,完全脱离设计模式,耦合度太高,完全不能脱离出来,这样在删除或修改某段代码的时候,就会有问题!问题归根就是代码编写的水平。
87 楼 phoenixup 2011-05-27  
xzj127 写道
lgsun592 写道
半人马 写道
supertaxi 写道
我们公司一个类文件3W多行代码, 并且规定修改代码时,不能删除旧的代码,只能注释掉. 于是,一个注释直接注释一千多行...


“规定”这个的人,一定不知道这世上还有VCS这种东西存在。


做日本某大型保险公司的项目的时候,客户也是那么要求的,只加不删,你想的太简单了
PS:他们的确不用cvs那烂东西,用svn


  我非常的迷惑  我用过CVS 和SVN ....那个VCS 还真是第一次听说...LS LS  真没打错?


VCS=VSS+CVS+SVN的简写~~~不过现在还是觉得GIT更爽快。。。
86 楼 dajian 2011-05-27  
caoyangx 写道
常见到其他国内框架代码数量优化如下
for(..){
   abc;
}
变成for(..)abc;
if(..){
   abc;
}
变成if(..)abc;
还真别说,能减少一半以上行数的代码。有意义吗?


我经历过的二个公司,这种优化要被批死~~
85 楼 wj539h 2011-05-27  
真不多,我们这儿通常是类里的一个方法2600多行
84 楼 ariestiger 2011-05-27  
老实说, 除开各种开源类库的源码, 这咱上万行的代码还真没看到, 不过我之前一个同事做的事, 一个类有一千多行是有的, 而且也就那么几个方法, 也就是说一个方法大概在两三百行, 奶奶的, 看得我, 那叫一个郁闷。 基本上我觉得, 类文件有多大有多少行倒不是太大的问题, 主要是那个方法啊, 不能太长了, 超过两百行基本上就会造成其他的人阅读上的郁闷了。
83 楼 openFox 2011-05-27  
bugu1986 写道
gch_h 写道
不了解真相,不方便评论
不过我自己写的代码通常都是删掉50%依然还能运行正常业务。其实业务代码并不多,绝大部分(超过三分之二)的代码都是数据校验或者出于保证程序的稳定性、安全性、效率及其他原因写出来的。这些代码都可以删掉。不过这样一来你就得假设你的用户都是小心谨慎的业务,并且没有人蓄意或者无意破坏到你的系统。结果这样的系统也能验收通过的话,只能说明你们公关能力强而不是技术多好。

其实代码不是写的短就表示你牛B



短不是这个意思,是类和方法短。


LS LS说的对,所以都说对于开发人员来说,用户和测试人员是邪恶的。
82 楼 openFox 2011-05-27  
lerous 写道
doylecnn 写道
xzj127 写道
lgsun592 写道
半人马 写道
supertaxi 写道
我们公司一个类文件3W多行代码, 并且规定修改代码时,不能删除旧的代码,只能注释掉. 于是,一个注释直接注释一千多行...


“规定”这个的人,一定不知道这世上还有VCS这种东西存在。


做日本某大型保险公司的项目的时候,客户也是那么要求的,只加不删,你想的太简单了
PS:他们的确不用cvs那烂东西,用svn


  我非常的迷惑  我用过CVS 和SVN ....那个VCS 还真是第一次听说...LS LS  真没打错?


VCS就是CVS,SVN,GIT,HG等这类东西的名字呀


缩写的话,那VCS应该是VSS,CVS,SVN~


了解了,用过svn
81 楼 openFox 2011-05-27  
半人马 写道
supertaxi 写道
我们公司一个类文件3W多行代码, 并且规定修改代码时,不能删除旧的代码,只能注释掉. 于是,一个注释直接注释一千多行...


“规定”这个的人,一定不知道这世上还有VCS这种东西存在。


额,CVS吧
80 楼 sunney2010 2011-05-27  
任何傻瓜都能写出计算机可以理解的代码。好的程序员能写出人能读懂的代码!
79 楼 beyondsphinx 2011-05-27  
supertaxi 写道
我们公司一个类文件3W多行代码, 并且规定修改代码时,不能删除旧的代码,只能注释掉. 于是,一个注释直接注释一千多行...

哈哈,我们有个做报表的8千多行,我老觉得太大了,没想到你们来个3W的 折服了。
78 楼 alyouge 2011-05-27  
supertaxi 写道
我们公司一个类文件3W多行代码, 并且规定修改代码时,不能删除旧的代码,只能注释掉. 于是,一个注释直接注释一千多行...

+1
77 楼 qianhd 2011-05-26  
kulinglei 写道
以前接手一个同事的模块开发,我刚开始随便点了一个类,就被吓了一跳,后来这个模块还是那个人开发了。就因为我看到一个for循环1500行。


烂代码的多少 跟项目参与人数成正比
一些知名的外企同样如此
76 楼 kulinglei 2011-05-26  
以前接手一个同事的模块开发,我刚开始随便点了一个类,就被吓了一跳,后来这个模块还是那个人开发了。就因为我看到一个for循环1500行。
75 楼 heyongyin 2011-05-26  
哥去年负责以前的一个模块,前台一个类13000行左右的代码,大概10多个类文件。哥疯了。
今年哥重写了。发现代码之复杂,抽象出了30多个类文件,每一个就几百行了。

真的是:很多问题不是程序员的问题,是设计上,或者架构上有问题。
74 楼 blackbat 2011-05-26  
一个方法几千行 看的你想吐血 慢慢重构吧...
73 楼 bugu1986 2011-05-26  
fengzw1211 写道
szcs10138456 写道
项目就是在不断地改需求和不断地fix和Refactoring下成长的

  

表示很赞同。重要的是后面 
72 楼 bugu1986 2011-05-26  
gch_h 写道
不了解真相,不方便评论
不过我自己写的代码通常都是删掉50%依然还能运行正常业务。其实业务代码并不多,绝大部分(超过三分之二)的代码都是数据校验或者出于保证程序的稳定性、安全性、效率及其他原因写出来的。这些代码都可以删掉。不过这样一来你就得假设你的用户都是小心谨慎的业务,并且没有人蓄意或者无意破坏到你的系统。结果这样的系统也能验收通过的话,只能说明你们公关能力强而不是技术多好。

其实代码不是写的短就表示你牛B



短不是这个意思,是类和方法短。
71 楼 bugu1986 2011-05-26  
xzj127 写道
lgsun592 写道
半人马 写道
supertaxi 写道
我们公司一个类文件3W多行代码, 并且规定修改代码时,不能删除旧的代码,只能注释掉. 于是,一个注释直接注释一千多行...


“规定”这个的人,一定不知道这世上还有VCS这种东西存在。


做日本某大型保险公司的项目的时候,客户也是那么要求的,只加不删,你想的太简单了
PS:他们的确不用cvs那烂东西,用svn


  我非常的迷惑  我用过CVS 和SVN ....那个VCS 还真是第一次听说...LS LS  真没打错?



VersionsControlSystem .......
70 楼 Asdpboy 2011-05-26  
只追求怎么快吧项目做完,拿钱,不重视技术、代码质量全是浮云,review code怎么能少呢?
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    微信小程序-通过webpack编译构建微信小程序

    所以,通过这样一个简单的构建脚本,我们可以在一个屏幕上用喜爱的编辑器或IDE照常愉快的写js,在另一个屏幕上刷开发者工具看结果,提升开发体验 注意 1、小程序的生命周期函数不要使用箭头函数,使用function才能用...

    太阳照常升起(组诗)

    很抱歉,但根据您给出的信息,这首名为"太阳照常升起(组诗)"的内容实际上是一首诗歌,而非IT行业的专业知识。描述中的内容也延续了诗歌的风格,讲述了作者对于父亲的怀念以及对生活的感悟。标签虽为"课件",但没有...

    通用软件安装程序1.0

    但是如果用"通用软件安装程序",则可以克服这样的缺点,如果光盘中某一个文件的损坏,并不影响其他文件,软件可以照常安装使用,这也是我制作通用安装工具的根本出发点。 4、制作示例: 以制作"恒特画王"安装程序...

    最新软件狗时间复制工具

    在判定加密锁错误时,并不立即提示或退出,而是在以后提示或退出或程序照常运行但出现偏差或溢出等等错误。 → 可以将加密锁返回值作为数组的索引、常量、计算单元和校验码;可以将加密锁返回值作为指针来控制程序...

    练习7_21

    第九题的答案是B,实际上,一个`try`块后面可以没有`except`,但如果没有`except`,`try`块中的异常将不会被捕获,程序会照常抛出异常。第十题的答案是`finally`,无论是否发生异常,`finally`块中的代码总是会被...

    cuthon:一个用于选择第一个免费GPU并运行Python的简单工具

    该脚本将找到第一个未使用的GPU,然后照常运行该程序。 最简单的说: cuthon my_program.py 该工具旨在用于相当利基的用例:在具有多个GPU的交互式节点上运行python程序。 对于那些经常这样做的人,您可能不必再...

    win7下的netmeeting

    因为NetMeeting的安装程序要检测Windows版本,所以有可能会报告不兼容,不过没关系,照常运行安装就是了。安装过程中会报告MSASN1.dll的某个函数点无法定位。 现在安装过的NetMeeting还不能运行,需要进行破解(即将...

    一个用foxpro编写人事管理系统

    整个系统是我独自一个人编写的,由于一个人的思维定势问题及我的编程水平所限,系统难免存在许多的不足和错误,如果你能提出很好的意见及建议,我愿意提供相关部分的源代码。 系统是使用VFP8.0开发编译的,在Win2K...

    freescale遇到的各种DT问题--无法加入控制程序

    5. 注意最下面的选择:在工程设置的某个步骤中,会遇到一个选择浮点型运算的选项。开发者指出,此处的选择不能为None,而应该选择支持浮点型运算的选项,通常是第二个或第三个选项。这个设置会告诉编译器在编译时...

    Ntoskrnl.exe win7蓝屏修复程序

    因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。 如果此修补程序可以下载,则此知识库文章顶部会出现"提供修补程序下载"部分。如果未显示此节,请联系 Microsoft 客户...

    C语言程序设计(第2版)-2期 常见问题4-1 if(表达式)后多加了分号.pdf

    在`if`语句后多加一个分号`;`会导致程序行为与预期不符,可能会引发混淆和错误。这个问题在初学者中较为常见,主要体现在两个方面,我们分别通过【示例1】和【示例2】来分析。 【示例1】中,代码如下: ```c int a...

    小程序多业务线融合【完整分包业务接入】

    这些小程序,由一个主小程序和后来新建的多条业务线构成(每条业务线拥有独立的小程序) 各业务线的小程序需要挂载到主程序下面,因为需要主程序导流 同时各业务线自己的小程序也照常发布更新 ==一套代码,通过打包...

    jsnote:使用TypeScript,React和Lerna构建的类似Codepen的JS代码编辑器应用程序

    JSNote JSNote是具有Markdown注释功能的简单JavaScript代码编辑器。 作者:Seokhyun Wie(布兰登) 电子邮件: 课程:JSNote由管理如何安装$ npm install jsnote-bw 怎么跑$ npx jsnote-bw serve 导航到以启动。 您...

    NetMeeting Win7 32位 64位系统之解决

    因为NetMeeting的安装程序要检测Windows版本,所以有可能会报告不兼容,不过没关系,照常运行安装就是了。安装过程中会报告MSASN1.dll的某个函数点无法定位。 现在安装过的NetMeeting还不能运行,需要进行破解(即将...

    嵌入式:韩国LG LS系列PLC解密软件代码

    首先安装编程软件,你必须使用这个版本的编程软件, 3.62版。安装完成后用Kgl_Wc文件替换安装文件夹下的同名文件即可。联机下载后若提示密码输入,可以不予理睬,关闭即可,程序可以照常下载。 本站软件...

    Si7021温湿度传感器arduino库_C++_代码_相关文件_下载

    1. **初始化**:在C++代码中,首先需要实例化一个Si7021类的对象,并进行初始化。通常,这包括设置I²C地址、开启或关闭传感器的内部加热器、设置采样率等。 2. **通信协议**:Si7021通过I²C通信协议与Arduino板...

    FPGA程序设计课程报告(电梯).doc

    本文档是一份 FPGA 程序设计课程报告,主题是基于 FPGA 的电梯控制系统设计。报告详细介绍了电梯控制系统的设计思路、方案论证和 VHDL 程序设计。 知识点1:电梯控制系统的设计思路 电梯控制系统是控制电梯按照...

    PSAutomator:此PowerShell模块是用于在公司基础架构中运行的入职,离职和照常营业流程的新方法

    此PowerShell模块是用于在公司基础架构中运行的入职,离职和照常营业流程的新方法。通常,每个公司对流程的外观都有不同的规则,不同的方法,并且该模块采用的简便方法类似于在IFTTT或Microsoft Flow之类的服务中...

    OculusShaderToy:在 OculusVR 中运行的基于 Qt 的 ShaderToy 代码的实验性端口

    OculusShaderToy 在 OculusVR(DK2,SDK v0.4)中运行的基于 Qt 的代码的实验性端口。 目前这仅适用于 Mac OS X(仅在 Yosemite 上测试),尽管代码几乎是纯 Qt 并且移植到其他平台应该很简单。 随附以下移植着色器...

    matlab有些代码不运行-aMi:基于VisualStudioCode的Matlab替代方案

    matlab有些代码不运行aMi:替代Matlab ide 此扩展是关于什么的 “替代Matlab ide”旨在直接从VSCode提供完整的Matlab用户体验。 此扩展程序正在进行中,功能将按照下面的“功能”部分中的说明进行添加。 此扩展适用...

Global site tag (gtag.js) - Google Analytics