引言:这部分内容最早出自笔者写的文章《RePractise:Web开发的七天里》,原文简单描述了Web应用的生命周期。后来发现,这条路几乎是所有Web应用的必经之路。一个Web应用在其生命周期里,都要经历搭建开发环境、创建构建系统、编写代码、进行数据分析等,直至最后使用新的系统来替换这个遗留系统。如果你是一个有经验的开发者,相信你对这个生命周期一定也深有体会。
本篇文章是对《全栈应用开发:精益实践》这本书的一个简单概述。
Web应用的生命周期
在我所经历的项目以及我所看到的Web应用里,它们都有相同的很有意思的生命周期。我们经常在网上看到某个知名的网站使用某个新的技术、语言来替换旧的系统,某个App使用新的框架来替换现有的App。我们所看到的都只是这些公司正在重构现有的系统,这实际上是一个周期的结束,以及一个新周期开始。其过程如图0-1所示。
图片描述
图0-1 Web应用的生命周期
仔细一想就会发现:我们所经历的项目都在以不同的时间长度经历相同的生命周期。
遗留系统与新架构
在我开始工作的时候,接触的第一个项目就是一个遗留系统。在一次休息时,我们在比赛找最古老的源码文件,最后找到了10年前写下的一个文件。尽管在我们的代码里有单元测试、针对具体业务功能的测试,项目的代码已经超过20万行,项目中仍然有相当多的代码超出了我们所理解的业务范围。毕竟在这些年头里,有相当多的功能已经不存在了。后来,我们选用微服务重构了这个系统。对于中型的遗留系统来说,这算是一剂良药。
让我们先从某某网站使用新架构重新设计说起。当我们决定使用新架构重新设计系统时,原因可能是多种多样的,如果我们排除一些无法抗拒的因素(如政治),那么剩下的原因可能就只有两个。
系统已经变得难以维护。这里的原因仍然有很多:大量的代码已经没有人知道其业务逻辑,变得难以修改;代码间耦合度过高,重构系统的难度过于复杂;项目所使用的技术栈已经过时,已经被市场所淘汰;团队的技术栈在成员变动的过程中,团队中大部分成员的技术栈已经和当前的项目不匹配了。
系统的技术栈已经难以符合业务的需求。绝大多数情况下,我们在最初开始创建项目的时候,所选择的技术栈都是符合当时业务需求的技术栈、可以快速验证其业务价值的技术栈。而随着业务的扩张,现有的技术栈很快将难以满足当前业务的需求,或出现性能优化上的限制。
在多数情况下,我们都会将这种系统称为遗留系统。在这时团队里的气氛便是“能不动这些代码就尽量不去动它”。我们已经很难将项目的问题归为人的因素,多数时候都是受业务扩张的影响。作为一个专业的程序员,我们的本能就是将程序写好,而我们往往没有这样的机会。
阅读全文
http://click.aliyun.com/m/22669/
分享到:
相关推荐
《JSP+Web应用开发案例教程》教学课件是一份专为学习JSP(Java Server Pages)技术及其在Web应用开发中的实践所设计的教学资源。这份课件详细讲解了JSP的基础知识、核心概念以及实际应用,对于初学者和有一定经验的...
《Web应用开发技术:JSP(第二版)》是一本由崔尚森、张白一、张辰合著的专业教材,由西安电子科技大学出版社出版。该书深入浅出地介绍了JSP(JavaServer Pages)这一重要的Web开发技术,旨在帮助读者掌握动态网页的...
《物联网工程专业WEB应用开发》实训指导书是针对物联网工程专业的学生或从业者设计的一份实践教程,旨在帮助他们掌握Web应用开发的相关技能,特别是在物联网环境中的应用。在物联网(IoT)领域,Web应用开发扮演着至...
Java Web应用开发技术实用教程是针对大学学习者设计的一本应用教程,主要涵盖了使用Java语言进行Web应用程序开发的各种核心技术。本教程旨在帮助学生和初学者深入理解如何利用Java技术栈构建功能丰富的Web应用。 ...
Java Web应用开发是计算机科学领域中的一个重要组成部分,主要涉及使用Java技术来构建Web应用程序。这份文档,"Java Web应用开发 JavaWeb应用开发期末试卷B卷答案.doc",是一份复习和学习资料,涵盖了Java Web开发的...
《Java Web应用开发项目教程》是一本以实践为导向的教程,旨在帮助读者深入理解并掌握Java Web开发技术。教程通过完整的案例,采用模块化的教学方式,将复杂的Web应用开发过程分解为可操作的步骤,逐步引导学习者...
《Java Web应用开发技术实用教程》是一本专为学习Java Web开发的初学者和进阶者设计的教材。王红老师的这本教程旨在通过详细、易懂的方式教授读者如何构建和部署基于Java技术的Web应用程序。Java Web开发是现代...
ASP.NET Web应用系统项目开发是基于微软的.NET框架构建高效、安全且可伸缩的Web应用程序的方法。在本文中,我们将深入探讨ASP.NET Web应用系统的架构、开发流程、主要技术及其实现细节。 首先,ASP.NET是.NET ...
在开发Java Web应用时,理解这些基本概念至关重要,它们构成了Web应用开发的基础。例如,了解Web容器如何工作可以帮助优化性能和调试问题;理解Servlet、JSP和JSF的角色,可以使你在设计和实现Web应用时更加得心应手...
Java Web应用开发试卷主要涵盖了Java Web技术的基础知识、核心概念以及实际应用,这些知识点对于学习者来说至关重要。Java Web是基于Java技术构建Web应用程序的一种方式,它包括了Servlet、JSP(JavaServer Pages)...
笔记内容可能包括了Web应用开发的基础,特别是与移动环境相关的特定挑战和解决方案。 在Web开发方面,笔记可能会深入讲解如何利用HTML、CSS和JavaScript创建动态、响应式的网页,这是所有Web应用的基础。HTML负责...
Java Web应用开发是现代软件行业中不可或缺的一部分,它涵盖了从服务器端编程到客户端交互的各种技术。这份"java web 应用开发PPT"是为自学者设计的,旨在通过实例教学帮助学习者深入理解并掌握这一领域的核心概念和...
Java Web 应用与开发教程是针对初学者和有经验的开发者设计的一套全面学习资料,旨在帮助读者深入理解如何构建基于Java技术的Web应用程序。本教程由宋波老师编著,提供了丰富的教学内容和实践案例,以促进理论与实际...
- **使用对象**:本规范适用于Web应用开发者、系统架构师、安全工程师以及任何涉及Web应用开发和维护的人员。 - **适用范围**:涵盖从需求分析、设计、编码、测试到运维的整个生命周期,强调在每个阶段都应实施...
《Java典型应用彻查1000例第六卷:Web应用开发》是针对Java Web开发领域的一本实战性教程,包含源码、PPT演示文稿以及配套习题,旨在帮助学习者深入理解和掌握Java在Web开发中的各种应用场景。本教程以实际案例为...
在本资源包中,"C# Web应用开发项目源码及教程" 提供了学习和实践C#语言在Web应用程序开发中的应用。这个资源适用于初学者到中级开发者,特别是那些希望通过实际项目加深对C# Web编程理解的人。下面将详细阐述其中...
ASP.NET Web应用程序开发是微软公司推出的用于构建动态网站、Web应用程序和Web服务的框架。它基于.NET Framework,提供了丰富的功能和工具,使开发者能够高效地创建高性能、安全性和可伸缩性的Web解决方案。 在开发...
此外,教程还会涵盖ASP.NET MVC(Model-View-Controller)框架,这是一种流行的Web应用开发模式,强调代码的可测试性和分离关注点。MVC架构鼓励良好的软件设计实践,使得代码更易于维护和扩展。 数据库集成是Web...