`
wcleye
  • 浏览: 10134 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

糟糕的代码设计真的让人很心烦..

阅读更多

刚进公司不到一个月, 现在正在进行一个项目开发,项目里使用 Hibernate2 + Struts1.2,正常情况下这是一个相当好的组

 

合,但是现在由于DAO层代码几乎全由MyExclipse 生成,不知是否由于MyExclipse 版本过低,生成的代码中大量使用了继

 

承,而且最主要的,项目管理人几乎没有进行重写的想法,他们的意思是:这些我们都用了很久,都很熟悉了;但是项目项目进度的

 

发展,这些问题也越来越突出,由于采用MyEclipse 自动生成的代码,在调用DAO对象前要先执行初始化,如:

try {
	_BaseRootDAO.initialize();
	dao = XXXDAO.getInstance();
} catch (HibernateException e) {
	e.printStackTrace();
}

 

然后才能调用,我想对它做个封装,可是对它这个初始化实在束手无测,现在我只能简单的把这些业务单独做个类来封闭,让它

 

不与WEB层混淆在一起,但是这样并不能彻底解决问题,我封闭的这些类中重复的代码实在太多,我也试过对这些代码进行重

 

构,可是由于现在项目也经进行到一半了,项目开发由多个人一同进行,我如果更改了原始代码结构,必然会引起别人代码不能

 

正常运行,可是每次自己读到这些代码,特别是自己还要参与到其中,真的很心烦.....

 

我应该如何做呢,难道企业里开发都这样吗? 大家能否给点建议..

分享到:
评论
35 楼 林杰杰 2008-08-13  
gigix 写道
林杰杰 写道
我估计这代码不是开发人员想写成这样的。
而是开始的时候需要很简单,而他写的代码对于那个需求来说很适合。
只是后来的需求一点点变化,每一次的变化都不足以引起大的代码变更,只是一点点积累起来,成了这模样了。

既然你知道代码质量不是一下子变坏的
为什么又认为它会一下子变好?


貌似我没有说过代码会一下子变好的话。。。
34 楼 gigix 2008-08-13  
wcleye 写道
gigix 写道

每天重构一点点不是也可以让它变好一点点吗?
既然是用了很长时间变坏的一个东西,自然也要很长时间才会变好。

嗯,谢谢 gigix了,前面有朋友提到 重新找份工作,我不认为再找份工作就能避免这种问题,问题肯定有,关键在于怎样去面对它,我的想法是首先要保证自己的代码的可读性,至于别人写的那是下一步要做的事..

键盘所及处,能清扫的就清扫,能加测试的就加测试
消除工作中遇到的一切重复代码,不引入新的重复代码
把持续集成搞起来,哪怕一开始只跑一个测试,只要每天都在增加自动测试的量,总是向着好的方向发展
发现defect的时候,第一件事就是用一个测试来描述它
坚持让代码变好的实践,不向让代码变坏的实践妥协
只要每天都在进步,就是好的
33 楼 wcleye 2008-08-13  
gigix 写道

每天重构一点点不是也可以让它变好一点点吗?
既然是用了很长时间变坏的一个东西,自然也要很长时间才会变好。


嗯,谢谢 gigix了,前面有朋友提到 重新找份工作,我不认为再找份工作就能避免这种问题,问题肯定有,关键在于怎样去面对它,我的想法是首先要保证自己的代码的可读性,至于别人写的那是下一步要做的事..
32 楼 gigix 2008-08-13  
WorldHello 写道
gigix 写道
林杰杰 写道
我估计这代码不是开发人员想写成这样的。
而是开始的时候需要很简单,而他写的代码对于那个需求来说很适合。
只是后来的需求一点点变化,每一次的变化都不足以引起大的代码变更,只是一点点积累起来,成了这模样了。

既然你知道代码质量不是一下子变坏的
为什么又认为它会一下子变好?


那如何才能使它变好呢?

大规模重构 or 推倒重来?

每天重构一点点不是也可以让它变好一点点吗?
既然是用了很长时间变坏的一个东西,自然也要很长时间才会变好。
31 楼 WorldHello 2008-08-13  
gigix 写道
林杰杰 写道
我估计这代码不是开发人员想写成这样的。
而是开始的时候需要很简单,而他写的代码对于那个需求来说很适合。
只是后来的需求一点点变化,每一次的变化都不足以引起大的代码变更,只是一点点积累起来,成了这模样了。

既然你知道代码质量不是一下子变坏的
为什么又认为它会一下子变好?


那如何才能使它变好呢?

大规模重构 or 推倒重来?
30 楼 gigix 2008-08-13  
林杰杰 写道
我估计这代码不是开发人员想写成这样的。
而是开始的时候需要很简单,而他写的代码对于那个需求来说很适合。
只是后来的需求一点点变化,每一次的变化都不足以引起大的代码变更,只是一点点积累起来,成了这模样了。

既然你知道代码质量不是一下子变坏的
为什么又认为它会一下子变好?
29 楼 林杰杰 2008-08-13  
我估计这代码不是开发人员想写成这样的。
而是开始的时候需要很简单,而他写的代码对于那个需求来说很适合。
只是后来的需求一点点变化,每一次的变化都不足以引起大的代码变更,只是一点点积累起来,成了这模样了。
28 楼 pipilu 2008-08-13  
理解楼主,确实很烦,但如果改的话,还吃力不讨好。
在这种代码上干活,实在提不起精神。
27 楼 laiseeme 2008-08-13  
最多只能下次新项目的时候弄弄
26 楼 laiseeme 2008-08-13  
Joo 写道
呵呵 主考官对比你的代码和他们本公司代码 发现不是一个档次 心想你小子来了岂不是又是一更新派 干脆不要了 于是你被告知你写的代码太烂跟他们公司人员的代码不是一个档次...

有可能
25 楼 geminiyellow 2008-08-13  
我已经想开了,项目维护和升级的成本很高地,开始我也想重新写某部分代码,后来算了一下,唉~听天由命吧,自己做新模块的时候好点就行了。过个两年你写的代码也会被后来的人说是糟糕的设计的。安啦楼主。
24 楼 abo 2008-08-13  
不喜欢就走人,高人岂能被尿憋死。
23 楼 Clayz 2008-08-13  
你够不错的了。我写了三年的java,刚进公司居然让我去做php!
一天到晚用着servlet+jsp的概念写着php+smarty。ioc,orm,真tm怀念阿...
22 楼 zhengshina5 2008-08-12  
没事,别提任何意见,叫做什么就做什么,等自己比他NB了之后,就跟他说这得这样写,如果他觉得不行,你觉得自己不爽,就走人.现在是给工资,免费学习,也一样,让做什么就做什么,不让做,自己心里有数记着就行,绝对不能多写一个字,假如你多写了,写对了还行,写错了你就被批逗了
21 楼 sheandwei 2008-08-12  
呵呵
遇到这种情况真的是很烦
20 楼 wjason 2008-08-12  
<div class='quote_title'>wcleye 写道</div>
<div class='quote_div'>
<p>刚进公司不到一个月, 现在正在进行一个项目开发,项目里使用 Hibernate2 + Struts1.2,正常情况下这是一个相当好的组</p>
<p> </p>
<p>合,但是现在由于DAO层代码几乎全由MyExclipse 生成,不知是否由于MyExclipse 版本过低,生成的代码中大量使用了继</p>
<p> </p>
.....
<p> </p>
</div>
<p> </p>
<p>这个问题确实比较难办,少了单元测试的支持,少了team的支持,想重构代码确实比较危险,比较难。</p>
<p>但是我们还是有很多选择,选择离开,选择迎难而上,选择撞钟(To liuqiang, 这个词很赞,可能很多时候我也在做这个工作,所以就比较共鸣:)),选择积蓄力量。。。。</p>
<p> </p>
<p>选择迎难而上改变环境的方式也有很多。</p>
<p>选择不管37二十一,现在就干。</p>
<p>选择先分析一下形式,现在是时机做这些事情吗?如果还不是那么为什么?</p>
<p> </p>
<p>我想你,我,或者换了很多人都会认为这种原因是我们身边的程序员,leader能力不够,</p>
<p>那么我们可以把我们的知识,我们的想法分享给别人(如果你愿意,认为是给大家洗脑,然后然他们好别妨碍你干活也可以)</p>
<p>也许等你把很多你技术上的观念,技术上的审美,传达给别人的时候,不用你多说,别人都已经开始重构了。</p>
<p> </p>
<p>我们渴望在项目中时候尽量好的,尽量合适的,尽量牛X的东西,我想很大一个原因是给自己增加砝码,增加价值。</p>
<p>其实这种分享又何尝不是一种增值,也许你练就了三寸不烂之舌,也许你展示了你的rp(没准哪天就大爆发了),也许你让别人觉得你很牛(这种感觉也不错),也许。。。。。</p>
<p> </p>
<p>没人会spring就自己搞一下,给领导一个具体的东西,而不是嘴上喊呀喊得。。。。</p>
<p> </p>
<p>总之心态真的是最重要的,我们不是外星人,犯不着跟自己较劲,跟leader跟兄弟较劲,</p>
<p>不管哪种选择,都是自己的选择,既然选择了就开开心心的做,跟大家一起开开心心的做,</p>
<p>最终要的是要有大家伙都开心的氛围,每个人都能影响team的氛围,或多或少。</p>
<p> </p>
<p>这是能做的事情,做完了,做通与否已无所谓,也许你会留下来继续前行,也许你最终会离开,但是都会有不一样的收获。</p>
19 楼 penghao122 2008-08-12  
当改变不了环境.改变一下自已的心态


心态很重要的..
18 楼 muyannian 2008-08-12  
<div class='quote_title'>wcleye 写道</div>
<div class='quote_div'>
<p>刚进公司不到一个月, 现在正在进行一个项目开发,项目里使用 Hibernate2 + Struts1.2,正常情况下这是一个相当好的组</p>
<p> </p>
<p>合,但是现在由于DAO层代码几乎全由MyExclipse 生成,不知是否由于MyExclipse 版本过低,生成的代码中大量使用了继</p>
<p> </p>
<p>承,而且最主要的,项目管理人几乎没有进行重写的想法,他们的意思是:这些我们都用了很久,都很熟悉了;但是项目项目进度的</p>
<p> </p>
<p>发展,这些问题也越来越突出,由于采用MyEclipse 自动生成的代码,在调用DAO对象前要先执行初始化,如:</p>
<pre name='code' class='java'>try {
_BaseRootDAO.initialize();
dao = XXXDAO.getInstance();
} catch (HibernateException e) {
e.printStackTrace();
}
</pre>
<p> </p>
<p>然后才能调用,我想对它做个封装,可是对它这个初始化实在束手无测,现在我只能简单的把这些业务单独做个类来封闭,让它</p>
<p> </p>
<p>不与WEB层混淆在一起,但是这样并不能彻底解决问题,我封闭的这些类中重复的代码实在太多,我也试过对这些代码进行重</p>
<p> </p>
<p>构,可是由于现在项目也经进行到一半了,项目开发由多个人一同进行,我如果更改了原始代码结构,必然会引起别人代码不能</p>
<p> </p>
<p>正常运行,可是每次自己读到这些代码,特别是自己还要参与到其中,真的很心烦.....</p>
<p> </p>
<p>我应该如何做呢,难道企业里开发都这样吗? 大家能否给点建议..</p>
</div>
<p> </p>
<p> </p>
<p>我是否能弱弱的问句,这句代码有什么问题么?  相反很多变化都可以通过getInstance来隐藏,而且如果觉得用着别扭可以重构封装下啊,来个中介。</p>
17 楼 sai619 2008-08-12  
<div class='quote_title'>liuqiang 写道</div>
<div class='quote_div'>
<div class='quote_title'>leonhe_cn 写道</div>
<div class='quote_div'>公司规模太小了吧,我上次到新公司报道,一看项目和楼主一样连spring都没用,马上走人了呵呵</div>
<p> </p>
<p> 憨,你也不看看用没用EJB,会EJB的现在可是个奥运金蛋</p>
<p> </p>
<p>我上次到接触一个新公司,一看项目用spring,马上走人了,呵呵</p>
</div>
<p>是EJB2.X 还是3.X啊?</p>
16 楼 newdev 2008-08-12  
要不就增加一层SPRING,要不就使用JAVA反射机制,直接BaseDAO.class.getMethod("init",null).invoke(childDAO,null)
不想写重复代码真的很简单,而且不要抱怨,不可能每次有新人进来就要求重新把已经有的代码框架重新修改一遍,有点团队精神好不好。

相关推荐

    心烦气躁怎么办.doc

    【心烦气躁怎么办】 心烦气躁是一种常见的心理状态,常常伴随着情绪波动、焦虑、易怒等症状。这种状态可能是由于多种原因导致的,包括生理因素如气血不足,以及心理因素如压力过大、情绪困扰等。中医理论认为,气郁...

    心烦气躁吃什么.doc

    【心烦气躁吃什么】 心烦气躁常常与身体状况,特别是贫血有关。女性由于生理特点,更容易出现这种症状。贫血的主要表现为疲乏、困倦、皮肤黏膜苍白,以及心悸、气短、头痛、头晕等症状。贫血分为轻度至极重度四个...

    2021关于工作心烦的QQ个性签名.docx

    虽然这些句子并不直接与IT知识相关,但我们可以从中提炼出一些普遍的生活智慧和心理调适策略,这些对于任何行业的人都有一定的启示: 1. **自我激励与独立**:“没什么好期待的, 都是要自己办到的。”这句话提醒...

    培训教材之沟通技巧.ppt

    6.如果其他人不同意我的看法,我能做到不心烦,特别是其他人没有我有经验时。 7.当我批评人时,我确信我提到人们的行为,而不是人本身。即工作中对事不对人。 8.我解决问题,能控制感情。 9.提供其他信息让对方明白...

    人教高中英语必修一unit词汇详解PPT学习教案.pptx

    ") 另外,句型 `It upsets sb that...` 描述让某人心烦的事情,例如 `It upset her that he had left without saying goodbye.` ("他不告而别让她心情沮丧。") 3. **ignore** - 动词"忽略,不理睬"。`ignore sb/sth...

    人教高中英语必修一unit 词汇详解PPT课件.pptx

    (那个男孩再次撒谎让老师很心烦。) - What he had done upset his parents. (他的所作所为使他的父母很不开心。) 3. **ignore**: "ignore sb/sth" 意味着忽视或假装没看见、没听见。"be ignorant of" 则表示对…...

    人教新课标高中英语必修一课本单词表.doc

    【人教新课标高中英语必修一课本单词表】是针对高中阶段英语学习者的一份重要资料,包含了必修一课程中的核心词汇。这些单词是学生需要掌握的基础知识,对于提升阅读理解、写作和口语表达能力至关重要。下面将详细...

    高中英语人教版词汇表全必修选修粗体音标.doc

    3. upset: 心烦意乱的,形容情绪不稳定的状态,也可用作动词表示使人心烦。 4. ignore: 不理睬,忽视,表示对某事或某人选择视而不见或不予回应。 5. calm: 平静的,形容词,表示状态平和;(使)平静,动词,用于安抚...

    人体器官讲解.pptx

    例如,心肾不交可能导致心烦失眠,肝郁化火可引起心神不宁,脾虚则可能影响血液生成和运行,肺肾失衡可导致水液代谢异常。中医理论通过调整脏腑间的平衡来治疗疾病,如“补脾益肺”、“健脾燥湿化痰”等方法。 总的...

    人教高中英语必修一unit词汇详解高中精选PPT学习教案.pptx

    `be upset about` 对某事感到心烦,`It upsets sb that` 表示让某人心烦的是。例如: - `I was upset about the bad news.` 我对这则坏消息感到心烦。 - `It upset her that he had left without saying goodbye.`...

    高一英语单词表(人教版).doc

    动词则表示使人心烦或不安。 4. **Ignore** - 不理睬或忽视某事物,表示不给予注意或回应。 5. **Calm down** - 使某人冷静下来,常用于安抚紧张或激动的情绪。 6. **Have got to** - 必须或不得不做某事,与“must...

    人教版高中英语单词表(含音标).doc

    2. `upset`:形容词,表示心烦意乱、不安或不适,动词形式则是使人心烦或不安。 3. `ignore`:不理睬、无视,常用于表示对某事物的忽视。 4. `calm`:使平静、镇定,可用于形容词或动词形式,搭配`down`表示使某人或...

    人教高中英语必修一单词复习PPT学习教案.pptx

    这份资料是针对人教版高中英语必修一的单词复习PPT学习教案,旨在帮助学生巩固和记忆单元一和单元二的重要词汇和短语。在英语学习中,词汇的掌握是基础,也是提升语言能力的关键。 在单元一中,提到了一些重要的...

    (新人教版)2020版高考大一轮复习Unit1Friendship课件必修1(英语).ppt

    例如:It upset him that nobody had bothered to tell him about it.(没有人告诉他这件事让他很烦恼。) - 动词用法:It upsets sb. that...(……让某人心烦),如:It upset me that my application for the ...

    人教高中英语必修一课本单词表.doc

    动词则表示使人心烦或不安。 4. **ignore**: 不理睬,无视,对某事或某人故意不给予关注或回应。 5. **calm**: 形容词,意味着平静或镇定;动词则表示使平静或镇定。 6. **concern**: 表示担忧、涉及或关系,与某事...

    高一英语词汇复习总结必修3 新课标 人教版 试题.doc

    【中学教案】高一英语词汇复习总结必修3主要涵盖了新课标人教版教材中的重要词汇和短语,旨在帮助学生巩固和扩展他们的词汇知识,以提高英语水平。以下是这些词汇和短语的详细解释: 1. **mean doing sth.** 意味着...

    人教版高一英语必修一笔记[1]收集.docx

    【人教版高一英语必修一笔记[1]】主要涵盖了词汇、短语和语法点,以下是这些知识点的详细解释: 1. **调查相关词汇**:`survey` 表示“调查”,`add up` 意为“合计”,如 `add up to` 是“总计达”,`add A to B` ...

    人教版英语必修一单词默写双语版本.pdf

    【人教版英语必修一单词默写双语版本】包含了一系列重要的英语词汇及其用法,以下是其中一些关键知识点的详细解释: 1. **survey** - "调查",在学术研究或数据分析中常用于收集信息。 2. **add up** - "合计",指...

    (人)版高中英语单词表(必修一到必修五音标版本).doc

    3. **upset**:形容词表示心烦意乱,动词形式指使人心烦或不安。 4. **ignore**:忽视,不理睬,对某事物或人不予理睬的行为。 5. **calm**:形容词指平静的,动词形式指使平静或镇定。 6. **have got to**:不得不...

    康复理疗师复习大纲设计.doc

    5. **体质辨识**:体质分为不同类型,如阴虚、阳虚等,不同体质的人有不同的症状表现,如阴虚易见口咽少津、心烦失眠等。 6. **四季养生**:春季养生应减酸增甘,夏季适合进行中药穴位贴敷法治疗慢性疾病,遵循春夏...

Global site tag (gtag.js) - Google Analytics