组建依赖带来的思考
入题:
使用 SSH 个人感觉 最大的隐患就是 升级维护。包括SSH之外的其他组建比方说Log4j,Dom4j等,到不是说这些组建不支持扩展和他们维护困难。
设想如果有这样的一个项目 WebMap,它是提供Web地址查询并且提供地图显示功能。在开发阶段开发团队可以充分发挥SSH的性能。但是随着时间推移。项目需要升级维护。一个新的复杂查询需求提出,如果此时SSH没有版本改动那么还是好事。如果SSH有部分组建已经升级。(比方说Struts从1.x升级到2.x)此时SSH组建升级你只能望尘莫及。因为你的项目使用的是老版本。新版本很可能对你当前项目不兼容,所以不可能花费大量的时间进行项目重新开发。
即使你拥有时间开发,在长时间的网站运行维护中很可能整个Web站点上已经提供了一大堆的外围功能。 如果仅仅因为一个新的需求就要重新开发整个项目这对网站运营者来说是一个致命的一刀,对设计者来说是一次否定。
谁都想让自己设计的项目完美,能够胜任长时间的技术、需求变更。这就需要我们选择的组建变更不要太频繁。这又是很难的,因为一个组建的版本变更意味着它变的更强大更完善。在选择技术时候我们都在考虑这个技术的发展前景,如果一点前景都没有我们在去选择它,这是多余的。毕竟新的总要淘汰旧的。
回到我们的议题中,新的需求到来时我们的SSH组建已经升级,新版本的组建中提供了大量实用的工具和技术策略让我们快速的解决新需求带来的开发时间。但是由于维护的项目使用的是老的技术设计,所以我们不能冒昧的替换原有的SSH框架。因为我们无法确定新组建在原有框架上运行的稳定性和兼容性。为此我们需要做大量的测试来确定。这是在最初系统设计时没有考虑的。
如果使用老技术完成新需求可能我们需要很长时间用来解决新需求需要的算法和逻辑实现。这是一个相对我们可以接受的一个办法,很多企业都在这样做。
但是这样做又存在另外一个隐患,那就是如此长期维护下去,整个项目可能到最后非常混乱。搞的维护人员对原有代码不报任何期望,他们开始自己开发新需求需要的工具,即使这些工具在原有系统中存在。如此往复,这个系统恐怕是一个最大的垃圾站,不过这个垃圾站还能比较完好的运行。至于它的运行效率和维护成本必定很高。如果放弃这个系统。那势必是一个非常大的损失,于是这个项目因为最初选配的组建升级搞的变成了一个"毒瘤"无人赶碰触,我在吉林省长白科技就碰到一个这样的项目。
好了问题我们知道了,系统基础组建一旦选配就意味着以后的升级维护我们需要受到它们的牵连,如果组建的升级兼容性没的说,这篇文章也就是一篇杂谈。但是我们是无法确定兼容性的。问题又回到原点上了。系统组建各版本的兼容性导致开发成本难以估计。
其实已经有很多的这类问题以及解决方法我举几个:
1)使用老技术维护更新。
2)对需求进行变更来适应老系统环境。
3)重新开发一个新项目,将新项目部署在一起。
4)重构项目,对项目进行一次大的改版。
5)开发并维护自己的核心技术。
6)使用组建兼容的系统架构。
上面列出的6种方法除了最后一种我没有遇到之外,其他的都遇到过,甚至采用过。最后一种方法可以使我们解决组建依赖带来的危机。但是它也有它的弊病,那就是它要维护大量的组建。不过还好维护组建总比上面4个解决方法要好。
第5种方案,在大一点的公司中普遍使用,因为他们的项目经常面临这些问题,一个软件的生命周期往往很久,这段时间内技术更新不知道已经几个来回了。所以他们只会选择一些变化不大的,技术很固定的组建,比方说邮件组建,XML组建。这些组建基本一成不变,然后在搭配一个强大的开发语言他们开发自己的核心技术。任凭技术更新,这些公司只需要维护自己的核心技术就好了。
回到我们的例子中,如果这个web项目在先前没有采用这么多框架技术,在新需求来临时他们仅仅维护一下自己的核心技术就适应了新需求,同时核心技术又得到了提升。
何乐而不为呢?
构建核心技术不是一件简单的事情。但是至少我们需要有这方面的努力,就像每个程序员都曾有收集代码的时候。
分享到:
相关推荐
物业管理面对的是多样化的业主需求,而计算机网络技术往往依赖于预设的程序和系统,这可能导致处理结果不能完全满足业主的个性化需求,甚至引发业主与物业之间的矛盾。为改善这一状况,物业公司应引入更加智能、灵活...
然而,新技术带来的不仅仅是便利,还有新的威胁和挑战。网络攻击手段不断升级,攻击者的技术水平越来越高,这对医院网络安全管理提出了严峻的考验。 医院网络安全管理的特点主要包括全局性、持续性、安全风险的隐蔽...
### 明日集聚区:互联网时代下文创集聚区发展新思考 #### 一、时代之变:文创集聚区发展环境的大变迁 ##### 1. 商业模式:从“价值链竞争”走向“生态圈竞争” 在互联网时代,商业模式发生了根本性的转变。传统上...
总结而言,新能源企业需要深刻理解精益化管理的内涵,结合行业新形势,通过优化内部管理、技术创新和市场策略调整,提升自身竞争力,以应对电力供需宽松、市场化竞争加剧、平价上网和补贴问题带来的挑战。...
在当前的商业环境中,单打独斗的创业方式已经逐渐被团队协作所取代,因为团队能够带来更广泛的视角、更强的解决问题能力,以及更高的执行效率。 创业团队的组建模式主要有两种:先人后“机”型和先“机”后人型。...
15. 导课方式:赵老师采用设疑导入,引发学生思考。 16. 教学改革实验:道尔顿制主张废除传统教学形式,实行合同式学习。 17. 工场手工业过渡时期的教学组织形式:贝尔兰卡斯特制,适应了工业化初期的教育需求。 ...
教师需设计具有挑战性的问题,引发学生的好奇心,使他们主动去探索和理解数学概念,而不是单纯依赖教师的讲解。例如,在教授长方体和正方体时,教师可以提问关于几何体的构成,引导学生自我发现答案,从而培养其自主...
2. **系统思考与战略定位**:企业需要从整体系统角度进行战略思考,明确旅游主业的合理定位,确定资本运营和资产运营的目的,以增强核心竞争力。错误的战略决策可能导致企业偏离发展方向,即使采取各种技巧也可能...
然而,教学实践中面临着一些挑战,如经验式教学方法的过度依赖,缺乏先进的教育理念引导,以及对学生思维能力的深入培养不足。这些问题主要是由于编程本身的逻辑性和规范性带来的畏难情绪,以及教师在信息素养培养...
班级的组建阶段,同学们彼此不熟悉,对班主任依赖性强,表明班级尚未形成稳定的集体结构。这一阶段是班主任建立班级秩序和培养班级核心的重要时期。 7. 品德的内涵及心理结构: 直觉的道德情感是通过直接感知道德...
强大的创业精神是引领创业成功的关键支柱,它包括勇于冒险、坚持不懈和创新思考等特质。 3. 创业的挫折与必然性:创业过程中遇到挫折是必然的,而不是偶然或应然的。创业者需要有应对困难的心理准备。 4. 创业的...
团队成员的多样性可以带来更广泛的思考和创新,但同时也需要有共同的目标和一致的文化价值观。团队文化的塑造对于提升团队凝聚力至关重要,管理者应当注重营造积极向上的工作氛围,鼓励团队成员积极参与,展示团队...
11. 宋老师的班级依赖他的组织,表明处于组建阶段,尚未形成稳定的集体结构。选项D是正确的。 12. 班主任教育工作的重点应放在班级日常性活动中,建立班级常规和秩序。选项C是正确的。 13. 林老师在教学《借生日》...
- 初高中数学教学衔接还需关注学生学法的转变,从初中依赖讲解到高中强调独立思考和归纳总结。 3. **研究目标** - 寻找教材知识的衔接点,通过结合旧知识教授新知识,培养学生的理解能力和创新能力。 - 改变学生...
新七种统计技术的应用带来诸多益处,如信息整理、激发思考、避免遗漏、增进团队协作,以及准确表达过程。它们与传统的七种质量管理工具相辅相成,尤其在问题预防和早期策划阶段更为适用。 关联图的实践包括确定问题...
这种不诚实的行为短期内可能会带来好处,但从长远来看,它会阻碍个人的成长和发展。诚信不仅体现在研究过程,也体现在论文的撰写上,要确保所有的研究成果真实可靠。 2. **团队合作**: 能否获奖很大程度上取决于...
优化工作程序的原则包括:尊重每一位员工,认识到公司和个人利益的紧密联系,策略性地关注工作,创新作为成功的基础,关注外部环境的变化,珍视个人专长,追求卓越,并倡导互相依赖和支持的文化。 课程的关键步骤...
引入项目式学习、翻转课堂等教学方法,让学生在课堂内外都有机会主动学习,培养独立思考和团队协作能力。同时,利用在线编程平台,学生可以尝试个性化的编程设计,促进创新思维的发展。 4. 更新教学观念。适应...
传统的设计方法往往依赖于设计人员的经验和现有标准,但对于复杂的工艺流程和严格的操作条件,这种方法可能不够全面。 ### 二、HAZOP分析的引导词及相关分析术语 引导词是HAZOP分析的关键工具,如“过多”、“不足...
4. 无线网络:包括Wi-Fi、蓝牙等,主要依赖无线电波传输数据。 5. 移动网络:如4G、5G,支持移动设备间的通信。 【网络作用】 1. 数据通信:实现不同地理位置的用户间信息交换,如电子邮件、即时通讯。 2. 资源...