`

对项目开发中的一点感悟

阅读更多
项目进行一段时间了,总结一下。
一、不要想着重用别人的链接。
做web开发的页面中可点击的按钮,链接很大,当要跳转到别人的页面的时候第一个想到的就是直接调用别人的链接。当去调用别人的链接的时候,别人很有可能需要
参数,这个时候要费心为别人准备参数。再一个方式是从别人那里获得一些我们想要的东西,想为它传递特殊的值,别人不一定就能够处理这个值。

二、不要共享别人的页面。
当我们在服务层处理过请求之后,返回view层的时候,发现这个页面别人写过了正合适,直接拿来就用。当时挺爽,过段时间去测试发现开始正确的功能出了错误,费
了半天时间检查,发现别人的页面已经改动了。有这个时间自己再做一个页面都出来了。如果真的想共享别人的页面,copy一下也是可以的。

三、如果不是耦合性很高没有必要去抽取公共模块。
当抽取公共模块的时候,先考虑下他们的业务是不是真的相同,即便是真的相同是不是能用工具类来解决,当一个模块完全依赖另一个模块的时候,就是增加了模块的
耦合性了,更不要说好多个模块依赖一个模块,如果公共模块改变一点点,就要到处去灭火。

四、不要在一个方法中写太复杂的业务逻辑。
如果一个业务很复杂的话,可以写几个方法,每个方法处理不通的业务,或者把这个业务分为有层次的任务,每个层次只处理有限的业务。当一个方法处理太多的业务的时候我们的就很难把所有的问题都考虑全面。

五、不要妄想用一个接口把某个方面的业务全部处理。
也完全没有必要那样想,让多个链接走同一个方法,没有增加灵活性,也没有增加扩展性。相比较抽出一个公用的工具方法,公用同一个接口太烂了。

六、尽量写注释。
在我们写那个方法的时候,我们当时已经考虑的相当全面了,感觉业务挺简单的。但是也许10天之后我们就不知道这个描述的确切是那个业务了,更不要说那些处理这个业务方法的技巧了。

七、尽量用通用的方法来处理问题。
在我们遇见一个问题时,我们总是想着去用高级的,巧妙的,独特的方法去处理。可是在我们过几天来看代码,或者由别人来看的时候,我们也许就忘了当时的思路,再来看当时的技巧,感觉就是一个灾难。尽量用通用的技巧来处理问题,通用方式相对来说运用环境要求比较低,当我们处理的问题发生改变时,通用的方法有可能完全不用改变。除非在性能上有很大的要求,才会特殊处理。
分享到:
评论
33 楼 nishizhutoua 2010-01-01  
...汗死了,最近开始喜欢用一个

interface IBizHandle<T>{

    int operate(T o)

}


来抽象业务了...

在通过一个BizChain组合,小项目效果还不错
32 楼 gsearch 2009-12-31  
谢谢 LZ 学习了
31 楼 twobowl_eye 2009-12-31  
缺乏主题,对别人没意义
30 楼 prowl 2009-12-31  
楼主2年时间都浪费了
29 楼 realdah 2009-12-31  
Design by contract!
Develop by contract!


28 楼 强强爱妍妍 2009-12-31  
新程序员吧
27 楼 soci 2009-12-31  
1不同意,WEB开发 一个连接对应一个或N个功能怎么可能不共用,url+参数 其实和业务层的接口里的方法签名是一回事。组员是要遵守的。
26 楼 giginet 2009-12-31  
后面几条同意,前3条明显不敢苟同。可能lz没说清楚吧。

前几条原因明显是协作出现问题,并非程序开发和设计的问题。
25 楼 meiowei 2009-12-31  
sunhj000java 写道
黑色联想 写道
写的很不错
支持一个,前面的大牛们强烈不支持1,2条,是不是从代码的重用方面来讲的呀,呵呵!不懂!~


针对第二条,像struts能把自己模块的链接直接转发到其他模块的view层吗?我很困惑这么做不也是一种耦合吗

耦合就是一种联系,不可能做到无耦合。使用现有的框架会让我们误认为没有耦合(或者是底耦合),其实耦合都做到框架底层了
24 楼 meiowei 2009-12-31  
sunhj000java 写道
thinkinperson 写道
sunhj000java 写道

一、不要想着重用别人的链接。
做web开发的页面中可点击的按钮,链接很大,当要跳转到别人的页面的时候第一个想到的就是直接调用别人的链接。当去调用别人的链接的时候,别人很有可能需要
参数,这个时候要费心为别人准备参数。再一个方式是从别人那里获得一些我们想要的东西,想为它传递特殊的值,别人不一定就能够处理这个值。

如果每人都不学会重用别人的连接,那就会都变成了重复创轮


我觉得这不是创轮,你完全可以copy一份啊,不用创造啊,这样别人修改的时候就不会影响到自己的模块了。


如果项目是按代码量算钱,倒可以这么做。
23 楼 sunhj000java 2009-12-31  
jspine 写道
忍不住罗嗦两句:

3、业务逻辑如果能剥离,还是要封装的,项目越大,收获越大!


是封装业务呢,还是封装非业务呢
22 楼 jspine 2009-12-31  
忍不住罗嗦两句:
1、要注重团队力量。

2、注释应该都要写,不管业务简单与否,因为我们的方法是不会写成public 查询用户 (arg...)的。

3、业务逻辑如果能剥离,还是要封装的,项目越大,收获越大!
21 楼 sunhj000java 2009-12-31  
thinkinperson 写道
sunhj000java 写道

一、不要想着重用别人的链接。
做web开发的页面中可点击的按钮,链接很大,当要跳转到别人的页面的时候第一个想到的就是直接调用别人的链接。当去调用别人的链接的时候,别人很有可能需要
参数,这个时候要费心为别人准备参数。再一个方式是从别人那里获得一些我们想要的东西,想为它传递特殊的值,别人不一定就能够处理这个值。

如果每人都不学会重用别人的连接,那就会都变成了重复创轮


我觉得这不是创轮,你完全可以copy一份啊,不用创造啊,这样别人修改的时候就不会影响到自己的模块了。
20 楼 sunhj000java 2009-12-31  
黑色联想 写道
写的很不错
支持一个,前面的大牛们强烈不支持1,2条,是不是从代码的重用方面来讲的呀,呵呵!不懂!~


针对第二条,像struts能把自己模块的链接直接转发到其他模块的view层吗?我很困惑这么做不也是一种耦合吗
19 楼 黑色联想 2009-12-31  
写的很不错
支持一个,前面的大牛们强烈不支持1,2条,是不是从代码的重用方面来讲的呀,呵呵!不懂!~
18 楼 sunhj000java 2009-12-31  
jansel 写道
LZ所在的项目肯定是 每个组员都在单干 。


公共模块应该做什么应该是前期都要分析的,而不是在写代码的时候抽取才考虑的。


我的感觉是我们在边做项目边重构以前的。(重构我理解是再次去设计架构以前的程序段)
17 楼 sunhj000java 2009-12-31  
tianlang0101 写道
LZ开发经验1年以下。 。
   欢迎拍砖。



不好意思,做开发快两年了,第一次做7-8人,半年的大项目(别笑哦,对我来说这个确实是个大项目),水平比较菜。
16 楼 sunhj000java 2009-12-31  
webdb 写道

另外,对于楼主在第四点中提出“或者把这个业务分为有层次的任务,每个层次只处理有限的业务”,这个“有层次的任务”指的是什么?充血的领域模型吗?如果不是,那么业务逻辑实际上还是趋向于过程化的。

最后为楼主说一句:良好的设计,成员整体素质和成员间沟通的确很重要。但因为种种原因难以达到这些时,作为应对措施,楼主的建议还是比较中肯的。


层次这个词可能我说的不是很确切吧。

举个很俗的例子:
组装汽车,
汽车:发动机,车皮
发动机:燃烧机,活塞
车皮:车门,车窗

我说的意思,组装汽车的时候只是验证发动机是否有用啊,发动机是否合适,车皮是否和趣味啊等问题
组装发动机:复杂发动机的性能啊,推力啊等问题

每次只处理这个层面的问题,至于底层实现交给底层的方法来做

我不知道说清楚了没,就是在一个程序段只处理核心的部分
15 楼 sunhj000java 2009-12-31  
risemanjavaeye 写道
一、不要想着重用别人的链接。
     你想要什么?

二、不要共享别人的页面。
     你想要什么?

三、如果不是耦合性很高没有必要去抽取公共模块。

    完全不认同

四、不要在一个方法中写太复杂的业务逻辑。
    同意

五、不要妄想用一个接口把某个方面的业务全部处理。
    接口的定义不是想与不想的问题,是需要不需要的问题

六、尽量写注释。
    没办法才写注释,真正的好程序是不用写注释的,如果自己都觉的要写注释了,那你的程序是不是就有问题了。(反问自己)

七、尽量用通用的方法来处理问题。
   用简单,易懂的,如果说废话的话应该是用合适的

欢迎拍砖。


一、我没有说清楚,我说的是不要去共享别人需要参数的链接和内部跳转

二、当然共用引用的头文件,菜单页面,顶部页面是必须的,我打个比喻像进入一个系统的时候进行的初始化工作最好还是不要去用相关模块的页面,我觉得自己copy一份会更好些。

三、你只是说了不认同你为什么不认同呢,其实公共模块的抽取我也觉得应该是在前期把共用性比较明显的抽出来,还有就是在项目后期针对工程中确实有共性的东西做成公共的。在项目进行的工程中,我们项目中做了很多共用的东西,给人危险的感觉。也许现在是业务比较相同,但是随着项目的推进,也许就会有差异产生。

五、我这里说的接口是类中的可以公开的方法。

六、我强烈主张写注释的,即便是自己写的代码,半月之后也不能很快明白的。

七、通用不一定是简单的,而是最常见的,最容易被大家接受的。
14 楼 sunhj000java 2009-12-31  
iouhuan 写道
1、个人开发倾向。
2、没有前期准备。
3、没有和其他项目组的朋友很好的合作和沟通。


我们这个项目确实没有什么设计的,大家都是分了模块自己设计。

相关推荐

    项目管理资源感悟

    通过对实际案例的分析与思考,本文将从几个方面来探讨IT项目管理中的资源感悟。 #### 一、项目管理资源的重要性 项目管理的核心之一就是资源管理,这包括人力资源、财务资源以及物资资源等。资源管理得好坏直接...

    我的编程感悟(中文PDF)(共37M二分卷)分卷二

    我现在是中国并不成熟的游戏制作行业中的一员,游戏给了我太多,我告诉自己需要做一点事情。分享知识和经验是我的义务,别无它。 ——云风 内容简介 本书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟...

    感悟生活的句子.pdf

    这一点在“感悟生活的句子”中也有所体现,它强调要想走得远,需要与他人同行,共同解决问题,协作开发。团队中的理解和信任是基础,我们需要培养这种能力,以确保项目的顺利进行。 当然,在个人成长和职业生涯中,...

    我的编程感悟(中文PDF)(共37M二分卷)分卷一

    我现在是中国并不成熟的游戏制作行业中的一员,游戏给了我太多,我告诉自己需要做一点事情。分享知识和经验是我的义务,别无它。 ——云风 内容简介 本书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟...

    2021公司员工军训感悟心得篇公司员工军训心得体会.docx

    【公司员工军训的意义和技术关联】 军训,通常被认为是军事训练,但对于公司员工而言,它远超出了单纯的军事范畴,成为了一种...无论是技术开发、项目管理还是日常运营,军训所培养的品质都能转化为实际工作中的优势。

    感悟人生的心情语句 句句经典有哲理精选.doc

    恶念越多痛苦越深":在团队协作和项目开发中,IT人员应专注于自身的工作,而非过分关注他人的看法。负面情绪可能会影响团队氛围,降低团队效率,因此保持积极和专注是关键。 3. "遭遇误解,努力争辩大多徒劳。不如...

    SRA2021-G03-邓皓文个人总结1

    在课程学习过程中,邓皓文对软件开发流程的了解进一步深化。他首先意识到,在项目初期与客户进行有效沟通的重要性。这一环节不仅影响项目的后续发展,更是避免后期需求频繁变更、造成项目延期和成本超支的关键所在。...

    关于学习本专业的一点感触和一些学习建议

    最初,我对LabVIEW的认知非常有限,但通过两周的自学,我发现它是一款易于上手的软件,能够快速构建出用户界面,这一点给我留下了深刻印象。 #### 三、学习方法与技巧 - **自学与书籍:** 在自学过程中,我发现...

    安徽宏村西递美术实习日记.docx

    这一点在软件开发中同样重要,设计师和开发人员必须对用户需求有敏锐的洞察力,对市场变化保持敏感,才能创造出符合用户期待的产品。 在艺术创作方面,我尝试用速写本记录下宏村的水乡风情,同时学习如何在短时间内...

    大学生班长的个人述职报告.doc.doc

    在撰写这篇关于大学生班长的个人述职报告时,我将尝试将从该班长在大学期间所承担的职责、经历和感悟中提炼出的管理经验和人际交往技巧,与IT行业中的项目管理和团队协作进行类比,以展示这些经验在IT领域的相关性和...

    高院实习报告总结范文.doc

    这一点在IT行业中尤为重要,因为无论是项目管理还是软件开发,流程优化往往意味着可以更快、更高效地完成任务,满足客户需求。 其次,沟通与协作是职场中不可或缺的技能。在实习期间,我主动承担起为同事们盖章的...

    应该加油喔!⒈班作文.doc

    这篇文档没有直接涉及任何特定的IT知识点,而是表达了一群学生对过去时光的怀念,对未来的期待,以及他们对团队精神和共同奋斗的感悟。因此,如果要从中提炼与IT相关的知识点,我们可以从以下几个方面进行联想和扩展...

    为什么(2)作文.doc

    通过以上的关联,我们可以看到,尽管题目和描述没有直接涉及IT,但生活中的感悟和心理状态都与IT行业有着紧密的联系。在IT世界里,我们同样需要面对问题、坚持不懈、学习新知、适应变化,并用创新的思维去解决复杂的...

    越过风声到达(组诗)

    在IT行业中,这一点可类比为技术开发中的权衡艺术。比如,开发者需要在性能的提升与用户体验的优化之间找到一个平衡点。高性能往往意味着复杂的算法和更多的资源消耗,这可能会影响程序运行的流畅性和效率。反之,...

    三年级读书心得100字左右.doc

    在评价技术和项目时,不能以貌取人,这一点对IT从业者尤为重要。正如“阿凡提的故事”所警示的,我们应该深入研究技术的内在原理和实际应用场景,避免被表面的宣传所迷惑,从而做出更为明智的判断和选择。这种深入...

    写给刘翔哥哥的一封信作文.doc

    在此,我想借这封信,分享一些我的想法与感悟,并谈谈您对我的影响。 首先,我想到的是体育精神。在您职业生涯中,面对的挑战与困难,您从未放弃,以自己的汗水和努力,书写了属于中国田径的传奇。在IT行业中,我们...

    大学在校生代表发言稿.docx

    在解决复杂问题或参与项目开发时,团队成员之间的良好沟通和协作是我们能够高效工作并确保项目成功的基石。这一点在IT项目中尤为明显。团队中的每个人都是不可或缺的,我们的力量来自于团结与合作。 对于即将开始...

    读唐太宗李世民有感作文400字.docx

    比如,在开发软件时考虑到用户的隐私保护,在项目管理过程中注重公平公正等。 ### 结语 综上所述,《读唐太宗李世民有感》这篇文章虽然讲述的是历史人物的故事,但它传达的价值观和人生哲理对现代社会尤其是IT行业...

    zigbee实验经验总结

    描述:本人从零基础开始做 Zigbee 实验,总结出来的一点入门级经验,希望能给大家帮助! 标签:Zigbee 开发步骤 部分内容分析: 1. SimpleApp 模板:SimpleApp 是一个示例应用程序,用于介绍 Zigbee 实验的基本...

Global site tag (gtag.js) - Google Analytics