`
neora
  • 浏览: 183785 次
  • 性别: Icon_minigender_1
  • 来自: 墨尔本
文章分类
社区版块
存档分类
最新评论
阅读更多

0.9版:我开发。先是用了多种设计模式,尽量实现解耦。结果发现性能不满意。

...

1.0版:我开发。后来,重构。去掉了很多设计模式,让部分代码直接耦合,性能大幅提高了。

...

1.1版:成立1.0小组接手。需要增加新的功能,和修正一些BUG。工程进度很顺利。

....

1.2版:我开发。再后来,再重构。开始一步步拆解耦合,同时尽量保持性能。解耦再次实现,性能不降反升。感觉自己的思维又向前飞跃一步。

...

1.3版。1.0小组完全接手。又需要增加新的功能,和修正一些BUG。小组觉得1.2版的代码比较难懂,但都普遍反映能看得懂1.1版的代码。工程进展很不顺利,延期n倍后,基本完成任务。

...

1.4版。发现1.3版本在生产环境效率下降明显。报告多处莫名BUG。我自己重新检视代码,发现代码结构破坏严重,1.3的修正处出现相当数量的高耦合代码。心疼不已,气得要命。于是加班,重写了大部分修正代码。

...

1.5版。决定继续锻炼队伍,完全交给1.0组。引入严格单元测试。招了专职黑盒测试人员。工程进展。在生产环境部署运行基本稳定,很少BUG报告。但性能下降明显。升级了服务器后基本解决。

...

1.6/1.7/1.8版。继续锻炼队伍,小组开发。都是增加功能和修改少量BUG。开发过程引入大量单元和整合测试。BUG报告很少,但性能进一步下降。又升级了服务器硬件,但性能改善开始不明显。
....

我,忙其他的N个项目了去了...,小组继续他们的工作。

....

客户开始普遍抱怨速度慢...,开发小组焦急,但显然一筹莫展。

...

...

我不得不重新仔细检视代码,结果大吃一惊,代码结构面目全非!单元测试结果都正确,但性能陷阱不处不在。尝试重构,几乎无法继续,忍无可忍,放弃。结论:1.x版本代码已死,软件生命到头了。

...

划拨新预算,成立新2.0小组,自己领队,开始全部重写,2.0版。

原小组必须继续维护1.x版。但无法从根本解决客户遇到的性能问题,客户抱怨激增,小组成员挫败感明显。

...

前期,2.0版进展顺利,比预想速度快一倍进入一个个“里程碑”。

...

1.x小组长期维护1.x无成就感,挫败感和厌烦情绪上升,人员流失严重。1.x维护工作开始出现人力不足。只能从2.0组抽工时帮助维护。

2.0进程拖慢。

...

1.x小组成员剩余成员继续抱怨二次开发很厌倦,1.x组人员几乎流失殆尽。因为客户的生产环境不能受影响,2.0组人员80%精力用来维护1.x了。

2.0版进度近乎停滞。

...

2.0x组员开始抱怨。

...

2.0组员开始出现不稳定情绪。

...

下决心更改策略,直接派新人进入1.x组,将就着维护,留2.0组两位大将坚守1.x阵地,将其余2.0组成员全部撤回2.0版项目。同时派公关、销售、客服人员与客户加紧沟通,稳住客户情绪。给2.0版争取时间。

....

2.0版项目重回正轨,项目再次高速前行,2.0组员开始稳定。

....

留在1.x的两位大将开始出现情绪低落。加薪。增发奖金。暂时稳定。

...

2.0版即将发布。留在1.x的两位大将同时辞职,无法挽留。

...

2.0比预定延期1倍时间后发布。

...

这次改变策略了,留1位2.0组大将带新人维护2.0。其余全体2.0组转新项目。

...

目前一切看起来很好。

 

 

 

 

 

 

 

------------------------------------------------------------------------------------------------------------

KO对战游戏平台 www.ko10000.com 打游戏,交朋友。

分享到:
评论
9 楼 LucasLee 2008-08-20  
挺有意思的经历。
看起来没有很多人有机会经历这么长的起承转合。
一般来说,设计模式对性能的影响不大的,原理上说,就是多了创建对象、多层继承等等的开销,但对于以数据库为中心的应用来说基本可以忽略。
不过,我的经验是,有的时候设计必须考虑性能,否则的确容易出现性能问题,比如有接口methodA(Object x), 接收一个参数x,但对于一批x也循环调用这个方法很可能产生性能问题,此时增加接口methodA(Object[] xArray),以一次批量处理参数。
8 楼 fly_ever 2008-08-20  
整个项目历时几年啊?

1.x版本经历了使用设计模式,去掉设计模式,重构使用设计模式,性能也随之降低,提高,感觉这里的性能其实与设计模式是无关的,主要还是因为具体代码中的性能处理情况。楼主不妨讲讲具体的思维飞跃啊,
引用
解耦再次实现,性能不降反升。感觉自己的思维又向前飞跃一步。

2.0版本的开发看来走对了路子,不知道具体是采用的什么方式开发的呢?
7 楼 kimmking 2008-08-20  
ms是个意念中的实验

真实情况如此的话 太可怕了。。。
6 楼 Joo 2008-08-19  
自动日志生成? 感觉楼主手上权利不小.想问问怎么规定软件版本的1.x 2.x的狂跳进
5 楼 nanyjm 2008-05-23  
写道
这次改变策略了,留1位2.0组大将带新人维护2.0。其余全体2.0组转新项目。


很是高明。
4 楼 weijiang8410 2008-05-22  
看来楼主也是个牛人啊
3 楼 TopspeeD 2008-05-22  
恶性循环害死人啊!
2 楼 lintomny 2008-05-21  
<div class='quote_title'>neora 写道</div>
<div class='quote_div'>
<p>2.0版即将发布。留在1.x的两位大将同时辞职,无法挽留。</p>
</div>
<p>压力还是太大,绝望心死了……</p>
1 楼 seen 2008-05-21  
楼主很有点本事 不光技术上能带头 还能给手下加工资发奖金 权力不小

相关推荐

    Android应用源码不错的带密码日记本项目

    本项目是一个基于安卓的日记本项目源码,本站之前介绍过很多关于日记本/备忘录/便签这一类型的项目源码。进入应用首先进入欢迎界面会有一个开门效果,点击”进入日记”即可进入主界面,在主界面可以点击进入”写日记...

    Java入门级项目云日记(3.29G)

    Java入门级项目云日记(3.29G) 〖课程介绍〗: Java入门级项目云日记(3.29G) 〖课程目录〗: 01_001_云R记_项目介绍.mp4 02_002_云R记_项目开发流程.mp4 03_003_云R记_项目演示.mp4 04_004_云R记_需求分析.mp4 05_005_...

    乐字节Java入门级项目云日记适合新手哦

    【标题】:“乐字节Java入门级项目云日记适合新手哦” 这个标题表明这是一个针对Java初学者设计的项目,名为“云日记”。它可能是一个基于Java编程语言的简单应用程序,旨在帮助用户在线存储和管理他们的日记条目。...

    java oa项目开发日记

    ### Java OA项目开发中的关键技术与心得 在进行Java OA项目的开发过程中,我们深入探索了一系列关键技术和框架,这对于构建稳定、高效的企业级应用至关重要。本文旨在分享在开发J2EE OA项目——代号J2EEOA——过程...

    DisHop:学科跳跃项目日记和进行中的工作

    学科跳跃项目日记和进行中的工作这个存储库试图跟踪我作为编码的新手和整个计算机世界的进展和错误情况,而整个世界都在窥视镜的另一端(是吗?)。 说,《 Coderland的马里奇历险记》仅在法语中是“马里斯”的意思...

    电子项目管理文档集

    这样的应用可能被项目团队用来记录和管理他们的日常活动,例如编写项目日记,记录每日的工作进展和遇到的问题,或者是作为个人工作效率提升的工具,帮助团队成员更好地跟踪任务和时间。 在项目管理中,利用电子工具...

    安卓项目-日记

    【安卓项目-日记】是一个专为安卓平台设计的简易日记应用,它提供了用户记录日常生活、思绪和感受的便捷工具,适合用作课程设计项目。这个应用程序的开发涉及到多个IT领域的知识,包括移动应用开发、用户界面设计、...

    不错的带密码日记本项目Android应用源码

    这个开源项目是一个专门为Android平台设计的密码保护型日记应用,名为"Android4Diary"。开发者提供了完整的源代码,使得其他开发人员可以学习、研究或者在此基础上进行二次开发。这样的项目对于想要深入理解Android...

    深入体验Java+Web项目开发(开发日记)2

    本开发日记将分为几个部分,逐一解析这些技术要点。 首先,Java作为后端开发的主要语言,其面向对象的特性使得它在处理复杂业务逻辑时具有优势。理解Java的基础语法、类与对象、接口、继承和多态性是必不可少的。...

    日记本项目

    "日记本项目"是一个很好的实践案例,让我们深入理解如何使用ContentProvider在不同的Android应用间共享数据,尤其是通过编写日记这一具体功能来巩固对ContentProvider的掌握。 首先,ContentProvider是Android四大...

    连接数据库的日记本项目

    【数据库日记本项目】是一个以日记管理为主题的软件开发实践,主要涵盖了数据库连接技术的应用。该项目旨在帮助用户存储、查看和管理他们的个人日记条目,通过建立一个与数据库交互的前端应用来实现。在这个项目中,...

    Android代码-移动日记本功能包含传统的日记本和音频日记视频日记实现私密日记和普通日记。.zip

    总的来说,"Android代码-移动日记本功能包含传统的日记本和音频日记视频日记实现私密日记和普通日记"这个项目涵盖了Android应用开发的多个方面,包括UI设计、数据管理、多媒体处理、安全性和测试等核心知识点。...

    日记项目.zip

    【标题】:“日记项目.zip”通常是一个包含一系列与日记相关的文件或项目的压缩包。这个标题暗示我们可能在压缩包内找到一系列文本文件、图片、音频记录或其他与个人日志、笔记或记忆保存有关的素材。 【描述】:...

    一个 C# 做的日记本

    【标题】"一个 C# 做的日记本"揭示了这个项目是使用C#编程语言开发的一个应用程序,主要用于创建和管理个人日记。C#是一种面向对象的、现代的编程语言,由微软公司开发,广泛应用于Windows平台上的软件开发,包括...

    九宫格日记(J2EE开发)

    总的来说,开发“九宫格日记”项目涵盖了J2EE平台的多个方面,包括后端开发、数据库设计、前端界面构建、服务器接口实现、用户认证与安全,以及可能的扩展功能开发。这个项目不仅锻炼了开发者的技术能力,也提高了对...

    深入体验Java+Web项目开发(开发日记)1

    深入体验Java+Web项目开发(开发日记)的源码和第一,二章内容和课件!

    基于Qt的日记本

    【基于Qt的日记本】是一种使用Qt框架开发的个人记事本应用,它结合了Qt的强大功能和易用性,为用户提供了一个方便、高效的记录日常生活和工作点滴的平台。Qt是一个跨平台的应用程序开发框架,支持Windows、Linux、...

    唐骏日记,唐骏日记,唐骏日记

    在IT项目的管理和执行上,唐骏的日记中包含了关于项目规划、风险控制、团队协作等方面的知识。他提倡以数据驱动决策,重视市场调研和用户需求分析,这些对于现代产品经理和项目经理尤其重要。 在领导力方面,唐骏...

    [计算机项目]基于asp的网上日记本网站(源代码+项目报告).zip

    【标题】: "基于ASP的网上日记本网站" 是一个典型的Web开发项目,它利用ASP(Active Server Pages)技术构建了一个在线平台,用户可以在这里撰写、查看和管理个人的日记。这个项目不仅包含了网站的源代码,还附带了...

Global site tag (gtag.js) - Google Analytics