您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

编程之为什么要写框架

时间:2021-08-12 10:13:50  来源:  作者:老程序员小心得

我发布了两篇文章都去写框架,为什么要写框架,有些人觉得小题大做,觉得只写些函数(功能小项),写多个编程文件(功能大项)把需求写完成不就完了,需要那么麻烦吗?

我却觉得通过功能小项和功能大项还不够,还缺少代码管理部分:

1是功能小项和大项不足以全部消除重复,要进一步消除重复,就需要进一步提炼重复的东西;

2是完整性,维护代码是维护一个一个大的整体还是维护一个一个碎块方便,经过了框架编写,框架内的东西均是一个一个确定的并唯一的整体,框架内的东西经过约束,不能被单独调用,比如菜单刷新和操作每个界面都有且相对独立,一旦调用是加载的整个菜单内容,从而做到最低耦合。


打个比方:

首先,打仗的冲锋在前的是小兵,然后是组长营长什么长的,那小兵就是基础,好比是执行的一行一行的代码,组长营长带领着着指挥着小兵,从而形成一个小组,就好比将一行一行代码封装到一个函数中,形成一个基础的功能(功能小项)。

然后,那么人再多的话,就需将多个小组的人放在一起,就好比将多个同类函数组合在一起形成函数组合(功能大项)。

最后,假如团体再大点就需要分一部分人去做组织管理,这部分就好比是框架,专门管理那些函数和函数组合,别说他没干实事,管理好了就是干实事就是功劳。

有组织有纪律去干事,分工协助达到更高效率,框架就是负责去管理代码规则(纪律),不要做违反纪律的事,也不是什么事都去做,而是约束去做特定的事。限制在一个框框内,这样容易管理,也避免代码混乱,实现整体层面管控,掌控全局,就好比董事长不会去管小员工,因为没必要再个也管不过来,只需管手下的主管,对比框架只去管那些组合好的函数(封装的大项),大项再去管理小项。


在知识不断深入后,会了解框架的重要性,从小学我们学了基础,好比是学会了编程语言,中学我们学得更多更广的东西,好比开始组合函数,再后来大学我们进一步去整合,去学习某方面的知识,进入一个行业去发展,好比是担任框架内的单一项,而企业相对于一个框架,人都组合在一起,实现某一行业的发展。

总之:框架对于代码的规范、消除重复和整体调用起到重要作用,聚合在一起形成高内聚,项与项之间则是低耦合。拥有了统一的思路和统一的风格后,维护方便很多,也为后面的自动化编程、平台化编程铺路。

题外话:基础的if、else、switch、case很重要,但是我不想去讲,很重要也是基础,讲的人太多,书也太多,我要讲的是我所掌握的精华的部分,我会多讲些我认为比较有价值的东西,希望展示一些不一样的东西。后面还有更多精彩内容,分层设计,开发应用工具,自动化编程,跨平台化等等,都是一些摘录自己经历的项目,希望大家喜欢。欢迎大家指正转发评论加关注。



Tags:框架   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
译者 | 陈峻Laravel 和 Yii 是当前两种针对 PHP 的优秀框架。它们在全球都有成熟的社区、以及大量的编程爱好者。本文为您全面比较 Laravel 和 Yii,并和您讨论如何根据具体项...【详细内容】
2022-07-15  Tags: 框架  点击:(2)  评论:(0)  加入收藏
关于过气网红编程语言 Ruby,我们此前曾发过一篇文章去回顾其大受追捧的过往,并讨论了它每况愈下的生存状态。不过人气并不能直接说明语言质量差,一方面 Ruby on Rails(用 Ruby...【详细内容】
2022-07-08  Tags: 框架  点击:(9)  评论:(0)  加入收藏
21世纪的编程讲求高效,低门槛,低成本。作为一名程序员,你多少可能了解甚至从事过跨平台开发、多端开发。所谓"跨平台",就是编写一套代码,编译到多个平台运行。比如,时下流行的小程...【详细内容】
2022-07-05  Tags: 框架  点击:(14)  评论:(0)  加入收藏
前言Hertz 是字节跳动服务框架团队研发的超大规模的企业级微服务 HTTP 框架,具有高易用性、易扩展、低时延等特点。在经过了字节跳动内部一年多的使用和迭代,如今已在 CloudWe...【详细内容】
2022-06-29  Tags: 框架  点击:(22)  评论:(0)  加入收藏
在这个博客中,我们编译了一个基于编程语言和技术堆栈的顶级后端框架列表每天‬分享‬最新‬软件‬开发‬,Devops,敏捷‬,测试‬以及‬项目‬管理‬最新‬,最热门‬的‬文章‬,每天...【详细内容】
2022-06-28  Tags: 框架  点击:(11)  评论:(0)  加入收藏
写在前面上个星期分享了《基于Sikuli GUI图像识别框架的PC客户端自动化测试实践》,但sikuli看起来怎么都像是上个世纪的界面风格,且功能过于简陋。而同样基于图像识别框架的Ai...【详细内容】
2022-06-28  Tags: 框架  点击:(30)  评论:(0)  加入收藏
Vant 轻量、可靠的移动端 Vue 组件库Vant 是一个轻量、可靠的移动端组件库,于 2017 年开源。目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护...【详细内容】
2022-06-23  Tags: 框架  点击:(43)  评论:(0)  加入收藏
fastadmin中请求数据是通过bootstrap-table来请求数据的,对于一些数据需要树状层级展示数据不能够很直观的显示,于是小编找到了一个解决方案就是利用bootstrap-treegrid,bootst...【详细内容】
2022-06-23  Tags: 框架  点击:(19)  评论:(0)  加入收藏
作者: 俊欣来源:关于数据分析与可视化今天小编来为大家安利另外一个用于绘制可视化图表的Python框架,名叫Dash,建立在Flask、Plotly.js以及React.js的基础之上,在创建之出的目的...【详细内容】
2022-06-22  Tags: 框架  点击:(37)  评论:(0)  加入收藏
Vue-Vben-Admin 是一个基于 Vue3.0、Vite、 Ant-Design-Vue、TypeScript 的后台解决方案,目标是为开发中大型项目提供开箱即用的解决方案。包括二次封装组件、utils、hooks...【详细内容】
2022-06-21  Tags: 框架  点击:(54)  评论:(0)  加入收藏
▌简易百科推荐
本篇文章主要介绍了使用MyBatis框架完成数据库的增、删、改、查操作。准备工作运行schema.sql和data.sql脚本文件中的 SQL 语句创建t_user表并添加部分测试数据。schema.sql...【详细内容】
2022-07-15  嗨皮汪小成    Tags:MyBatis   点击:(0)  评论:(0)  加入收藏
1 Hive基本概念Hive是一个构建在Hadoop上的数据仓库框架。最初,Hive是由Facebook开发,后来移交由Apache软件基金会开发,并作为一个Apache开源项目。Hive是基于Hadoop的一个数据...【详细内容】
2022-07-15  秃头Java人    Tags:Hive   点击:(2)  评论:(0)  加入收藏
今天给大家讲讲 SpringBoot 框架 整合 Elasticsearch 实现海量级数据搜索。一、简介在上篇ElasticSearch 文章中,我们详细的介绍了 ElasticSearch 的各种 api 使用。实际的项...【详细内容】
2022-07-15  java小悠    Tags: Elasticsearch   点击:(3)  评论:(0)  加入收藏
SpringBoot开发Restful接口,有什么API规范吗?如何快速生成API文档呢?Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。通俗的来讲,Swagger 就是将项目中所有(想要...【详细内容】
2022-07-14  Java全栈知识体系    Tags:Swagger   点击:(2)  评论:(0)  加入收藏
一、部署准备安装数据库、jdk、nginx、域名证书1、下载 nginx,官方网址如下:http://nginx.org/en/download.html2、解压安装包到任意目录 如:G:\nginx二、前端部署1、打开前端...【详细内容】
2022-07-14  智慧魔法豆浆    Tags:vue   点击:(2)  评论:(0)  加入收藏
SpringBoot 内置支持的 Web 容器有 Tomcat、Undertow、Jetty 和 Netty。默认情况下,这些 Web 服务的 AccessLog 日志是不开启的,而 AccessLog 日志对于做接口统计尤为重要。如...【详细内容】
2022-07-13  BUG弄潮儿    Tags:AccessLog 日志   点击:(10)  评论:(0)  加入收藏
什么是Starterstarter 是springboot 的核心,每个starter负责实现特定的功能,使用者只需引入starter即可自动配置,无需关心框架整合带来的问题。Starter 项目结构src |- main...【详细内容】
2022-07-12  IT食者    Tags:SpringBoot   点击:(9)  评论:(0)  加入收藏
mybaits非必填项处理数据库表字段khzjyxqx为日期型,非必填, 前台页面如下: 后台mybaits处理如下: 如果不处理,当为空时khzjyxqx=&#39;&#39;时会报错。<update id="updatesave" pa...【详细内容】
2022-07-11  在水一方357159258    Tags:mybaits   点击:(10)  评论:(0)  加入收藏
关于过气网红编程语言 Ruby,我们此前曾发过一篇文章去回顾其大受追捧的过往,并讨论了它每况愈下的生存状态。不过人气并不能直接说明语言质量差,一方面 Ruby on Rails(用 Ruby...【详细内容】
2022-07-08  InfoQ    Tags: Web 框架   点击:(9)  评论:(0)  加入收藏
1、JWT的构成- 头部(header):描述该JWT的最基本的信息,如类型以及签名所用的算法。- 负载(payload):存放有效信息的地方。- 签证(signature):base64加密后的header、base64加...【详细内容】
2022-07-08  dream19    Tags:SpringBoot   点击:(10)  评论:(0)  加入收藏
站内最新
站内热门
站内头条