Util 应用框架概述
概述
应用框架概述
框架是一种可复用的基础代码库,如果它只解决纯技术问题,可以认为是技术框架,如果它与你的业务相关,则可认为是业务框架,或称为应用框架。
.Net 提供的基础类库是最基础的技术框架,它提供了进行.Net 开发所需要的基础 API,这些 API 都比较原始。
完全使用原始 API 进行项目开发,会导致高昂的学习成本,更多的 Bug,难以维护的重复代码,低效的开发进度。
为了完成某项特定的技术需求,比如写日志,你可以使用原始 API 进行简单实现,并在多个地方复制粘贴进行调用。
这很快会让你厌烦,除了冗余代码以外,你发现还需要经常扩展日志操作的功能,于是你想把日志操作封装成库来调用。
一些前辈已经做了这些基础工作,并且他们的工作已经在全球大范围的使用,非常成熟,并且持续维护。
这些能够解决特定技术问题的类库可以统称为第三方技术框架,在项目上使用第三方技术框架是项目成功的必要保障。
从此,你不再为如何实现某项技术问题而烦恼,也不需要为持续扩展的技术需求而疲于奔命,更多的精力被用在业务上,这才是你应该干的事。
对于你的项目,每当碰到某种技术障碍时,你会四处打听有没有某个第三方技术框架解决了你的问题,找到以后,通过调试一些 Demo 代码,简单的用起来了。
每当需要这个功能的时候,你会从以前的代码复制粘贴,由于第三方技术框架已经高度封装,所以冗余代码不是特别显著,你没有理会它。
如果你的团队并不经常沟通,处理同一问题的过程将在团队中反复发生,这将导致对于某个问题的技术实现不一致,并且付出高昂的学习成本。
当调用代码被大量的复制粘贴后,如果发现调用代码有 Bug,或需要增加一些健壮性,你才意识到虽然第三方技术框架已经比较完善,但对它的调用依然有封装的必要。
另一方面,无论是.Net 基础框架,还是第三方技术框架,它们包含大量的代码和功能,但常用的可能不到百分之一,需要将最常用的那些功能找出来并进行封装,这样可以极大的降低学习成本。
你开始封装一些经常需要操作的代码,这些代码可能是用.Net 原始 Api 封装的,也可能是封装了第三方技术框架的调用,这些封装好的代码被称为公共操作类,也叫工具类。
对于最基础的 CRUD 和业务代码的结构,你发现也可以抽取出来,形成分层架构基类。
你的项目可能需要在网页上进行开发,采用原始的 Html,Css,Js 技术,将面临界面美观,浏览器兼容性,开发效率低下等问题。
一些第三方前端技术框架提供了相关的解决方案,比如 Angular,Ng Zorro 等。将第三方 UI 框架集成并封装起来,能够显著提升开发效率。
如果在项目中,你需要实现支付等业务功能,你可以对这些第三方业务接口进行封装。
对于常规的项目,总是需要一些通用模块,比如权限,将它作为后续项目的起点是一个好主意。
当这些基础代码被高度封装后,常规的 CRUD 代码变得非常简洁,但你还是需要复制这些基础结构,通过反复整理,可以得到一个代码模板,通过代码生成工具将基础的 CRUD 代码生成出来,可以大幅提升生产力。
这个持续封装过程演变为一套项目开发模式,支持这套模式的所有基础代码库,即为应用框架。
应用框架为你项目的所有方面提供支持,你需要不断的完善它。由于应用框架需要解决你项目上的所有问题,所以没有绝对通用和包罗万象的应用框架,你必须在这些应用框架之上进行扩展。
Util 应用框架的由来
Util 是我在.Net 开发生涯中不断积累而成的一套应用框架,最初的名字叫 CommonUtilities,这是一个基本由工具类构成的类库。
随着经验和水平的上升,根据自己的习惯,逐步实现了经典图书中某些概念,并吸收了一些流行应用框架的部分代码。
Util 应用框架的最新代码经过完全重写,提升了模块化程度,抛弃了一些历史包袱,代码也更加精练。
Util 应用框架的作者: 何镇汐
Util 应用框架的主要作者为何镇汐。
Util 应用框架的开源协议: MIT
这是最宽松的开源协议,意味着可以以任何方式使用该代码。
Util 应用框架的主要贡献者
这里只列出了主要贡献者,还有很多开发人员以不同形式对 Util 做出了宝贵贡献。
Util 应用框架的目标: 让开发更简单
Util 应用框架让你的团队迅速进入业务开发状态,并在开发过程中持续提供帮助。
Util 应用框架的特点: 简单易用
Util 应用框架的设计理念是追求 Api 简单化,尽量少的配置,不用精确记忆 Api,有个模糊印象即可使用。
Util 应用框架的学习成本相对较低,对于有.Net 基础的开发人员,进行常规业务开发,通常在 3 天内上手。
Util 应用框架开发流程
搜集 - 整理 - 集成 - 封装
每当发现无法满足项目需求时,扩展框架的时刻来临。
从头造轮子是下策,所以总是先四处搜集相关资料。对于简单的需求,可能只需要找到一些代码片断即可。对于更专业的问题,需要寻求第三方技术框架的帮助。
找到解决方案并调试通过后,需要对代码进行整理,以符合我们的编程风格。
通常以 Nuget 包或 Npm 包的方式进行集成,为了降低学习成本,需要仔细考虑如何封装才能让调用者最省力。
任何有技术含量的工作,均由第三方技术框架完成,Util 应用框架仅对技术框架选型并集成封装。
Util 应用框架只是很薄的一层外观,为复杂的技术框架提供一个简易视图。
这导致更健壮的实现和更易用的 API。
Util 应用框架的使用方式
使用 Util 应用框架有几种不同的方式。
最灵活的方式是将 Util 应用框架的代码复制到你自己的应用框架中,然后可以随意修改它们来满足项目需求。
不过这种方式的代价也很大,很难合并 Util 的任何更新,你需要自行维护相当大的代码库。
由于 Util 应用框架的体积在不断增长,维护这些代码库可能给你带来不小的负担。
另一种可行的方式是将 Util 应用框架作为你的基础库,使用 Nuget 引入它们,基础的工作让 Util 应用框架帮你完成,你只需要扩展自己业务领域相关的功能。
这种方式的限制也很明显,Util 提供的功能可能无法满足你的要求。
解决这个问题的关键是与 Util 开发团队保持沟通,将你的需求告诉我们。
对于通用功能,我们会尽量满足,这样会让更多的开发者受益,对于定制需求,我们也会为你提供扩展点,方便你能自行扩展。
参考应用框架
很明显,闭门造车不可取。
Util 应用框架大部分依赖以 Nuget 方式引入,极少部分需要修改源码,则以复制源码方式使用。
另外,.Net 应用框架还有很多优秀的开源项目,从中学习和吸取养分是 Util 成长的关键。
Util 应用框架主要参考了以下开源项目,从中吸收架构和代码,并以 Util 风格进行整理。
Util 应用框架交流群: 24791014
评论