什么是软件开发脚手架,为什么需要脚手架,常用的脚手架有哪些

本文阐述了软件开发中脚手架的重要性,通过复用原则、DRY原则和开闭原则解释了为何需要脚手架。脚手架能提高开发效率,避免重复造轮子,例如SpringData在数据持久层的封装。同时,举例说明了未使用脚手架导致的项目延误和问题,以及转向使用SpringData后的显著优势。最后介绍了Vue、Maven等常见脚手架工具。
摘要由CSDN通过智能技术生成

为什么需要脚手架

为什么软件开发需要脚手架呢?我们通过软件开发的一些基本原则看一下脚手架对软件工程的重要作用。

● 复用原则(Reuse Principle):现在我们推崇的是极致化的编程体验,缩短的开发时间、大量的开发任务、支持需求的变更、高频率的应用服务交付,这些都给软件开发人员带来了前所未有的压力。其中,软件复用技术被公认为解决这些问题的行之有效的方法。从计算机软件编程的发展历史来看,从面向过程的编程语言到面向对象的高级编程语言的广泛使用,是软件复用技术进步的体现。从对象的复用到更大的组件复用,再到如今的框架的复用、服务的复用,都是在利用他人的优秀成果来放大你的工作价值。当一个新手使用脚手架时,对于一个具体问题,可以套用现成的解决方案加以扩展。使用脚手架的应用,仅需通过简单的注解和配置就可以具备健康状态检查、生产环境就绪、可观测等基本服务能力。对于一个业务逻辑问题,可以复用已有的逻辑,一步步迭代,敏捷开发。

● DRY原则(Don’t Repeat Yourself):DRY原则直译过来就是“不要重复你自己”。这一原则和复用原则类似,强调尽量在项目中减少重复的代码行、重复的方法、重复的模块。其实,软件设计原则和模式最本质的思想都是“消除重复”。

我们经常提到的重用性和可维护性其实是基于减少重复这一简单而重要的思想的。DRY原则意味着系统内的每一个部件都应该是唯一的,并且是具有明确含义的(不模糊的)。我们可以通过应用职责单一、接口隔离等原则尽量拆分系统、模块、类和方法,使每一个部件都是职责明确并且可重复使用的。

● 开闭原则(Open Close Principle):开闭原则中的“开”就是指对功能的扩展是开放的,“闭”是指对于原有代码的修改是封闭的。通俗一点讲,软件系统通常是由各种模块组成的,软件系统在增加一项新的功能时,应该在不修改现有代码的基础上操作。实现开闭原则的关键就是“抽象”,从微观的角度讲,开闭原则适用于一个业务模型的类的设计,把系统内的所有可能行为抽象为一个抽象底层,在这个抽象底层中规定需要提供的方法接口,具体实现类通过集成、代理、委托的方式,扩展实现新的行为或者新的功能。从宏观的角度讲,我们说开闭原则就是将公共模块、开发约定、最佳技术实践经过共享、提炼沉淀到封闭的底层技术基座;而将变化频繁的业务模块、独特的功能逻辑通过继承、组合和集成的方式实现对扩展的开放。

不要重新 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 造轮子

不要重新造轮子(Stop Reinventing The Wheel),这个原则可以说是软件开发里的“金科玉律”。在实际的软件工程场景中,脚手架的使用正是为了我们避免重新造轮子。如果你不借助已有框架或者工具,不仅不会提升开发效率,还会将自己陷入重新造轮子的风险中。这里举一个发生在本人参与的实际项目中的血淋淋的案例。

我们在一个服务治理项目中需要在数据持久层实现一个通用的数据存储接入组件,初衷是降低应用接入不同数据存储引擎的复杂性,屏蔽使用者对不同持久层的感知差异,使开发者通过简单的配置就能适配不同的数据类型。另外,因为期望完全掌握对持久层的控制,以及实现深度定制化的数据转换功能,所以我们并没有使用Spring框架,而是走上了自研持久层的道路。如下图所示是自研持久层的UML框架图。

什么是软件开发脚手架?为什么需要脚手架?常用的脚手架有哪些?

我们分别对接了MySQL、MongoDB、OpenTSDB、HBase等数据源。系统从架构设计到落地花费了大概两个月的时间,还不包括后期的测试、对接、调试、修复Bug至少一个月的磨合期。然而,由于人员、经验、项目周期等各种因素,最终自研持久层框架的效果并没有达到预期,后期在与业务对接的过程中还出现了各种技术和业务适配问题。

在经过一番技术调研后,我们决定逐渐使用Spring Data替代原有的自研持久层框架。经过项目的实践后,我们发现在业务的需求满足性、易用性、开发效率、业务稳定性等各个方面,Spring Data都具备压倒性的优势,它不仅可以完全满足业务和技术上的需求,而且可以简化我们的开发工作、显著提升工作效率。二者的复盘对比如下表所示。

什么是软件开发脚手架?为什么需要脚手架?常用的脚手架有哪些?

什么是软件开发脚手架?为什么需要脚手架?常用的脚手架有哪些?

Spring Data项目通过使用对象的语义可以让我们更方便地操作不同类型的数据。它将应用的骨架部分通过“抽象”提取出来,形成了一套系统的开发范式和行为模式。Spring Boot脚手架也为自定义的复杂查询、修改操作提供了扩展的Repository类和自动化配置,使添加定制化的扩展方法更加轻松方便。我们只需要理解Spring为我们提供的操作API接口,就可以实现复杂的查询等业务逻辑。

Spring Data将我们的数据持久层框架进行了进一步的封装,开发者通过简单的注解,就可以实现将不同类型数据放到不同持久层集合的存储映射操作。可以说,脚手架工程可以为开发人员屏蔽繁杂的数据存储引擎底层差异和具体工作细节,提升了开发效率,降低了开发难度。除非你是这个领域的专家,或者没有现成的软件脚手架能够满足你的需求,否则请停止“愚蠢地重复造轮子”的行为。

常用脚手架

=====

下面列举一些软件开发中经常使用的脚手架,看一下如何通过脚手架提高我们的开发效率。

Vue框架

对于前端开发人员来说,Vue无疑是一套简单的、易于使用的构建用户界面的前端脚手架。根据Vue的官网说法,Vue是一套构建用户界面的渐进式的JavaScript框架。与其他重量级框架不同的是,Vue采用自底向上的增量开发的设计,Vue的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。

vue-cli脚手架构建工具,可用于快速搭建大型单页应用。该工具提供“开箱即用”的构建工具配置,带来了现代化的前端开发流程。

只需几分钟即可创建并启动一个带热重载、保存时静态检查及可用于生产环境的构建配置的项目:

要创建基于Webpack模板的项目,首先我们选定目录,然后在命令行中把目录转到选定的目录即可,可以使用下面的命令:

Maven

Maven是一个跨平台的项目管理工具,是服务于Java平台的项目构建、依赖管理、项目信息管理工具。同时使用Maven可以规范项目骨架及包层次结构、命名配置文件、生成代码原型等。

Maven提供了archetype插件来帮助开发人员快速勾勒出项目的骨架,要使用本地Maven仓库中的脚手架创建新项目,直接执行如下Maven命令,根据提示依次输入groupId、version、package信息即可:

Maven自动化构建简化了开发人员手动构建工程的过程,规范了项目的构建过程。Maven自动化构建流程如下图所示。

什么是软件开发脚手架?为什么需要脚手架?常用的脚手架有哪些?

Netty

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值