如何开发中后台项目

原创: 于是乎 前端小苑 1月26日

工作中的你,是不是手上做着后台系统项目,应对着做不完的需求,觉得做后台系统是个没有技术含量的活,技术没法提升,这么想或许你就错了,如果能做以到以下几点,不仅可以提高你的开发效率,还能让你在组件抽象能力,项目架构能力等方面有很大提高,更能帮助你站在一个全局的高度思考问题,废话不多说,我们看看到底应该怎样做中后台项目。

一. 通用组件库

首先,如果团队的中后台项目不止一个,那么多个项目中一定有很多相同或相似的交互和功能,于是乎,搭建一个属于自己团队的组件库就显得很有必要了。

以一个VUE项目为例,我们开发一个项目,其实就是在开发一个个的组件。而这些组件可以如下这样分类。

首先,非通用的组件,在各自的项目中去完成。

而通用组件,可以根据是否包含业务,分为强业务的组件和无业务组件。

其中非业务组件,已经有很多优秀的开源库,像element,iView,我们可以拿来直接使用。有时候开源的组件无法满足我们的需要,就需要自己造轮子。

其中强业务组件又可以按照是否将与服务端的数据交互部分封装在组件内部,分为纯前端组件和通用服务组件。比如获取省市区,就可以封装成通用服务组件,不需要每个项目再去重复开发,前后端同学都能节省时间。

哪些是需要抽象出组件的呢?这需要在工作中去发现和挖掘,当评审完一个需求时,要思考是否有之前做过的相同的形态或交互,是否有可以通用的部分能够抽像,这样思考久了,就能合理快速的对一个复杂项目进行模块划分。在中后台系统中,能够抽离出来通用的组件有很多,下面以一个最常见的列表页来分析下。

        可以先思考几分钟再继续阅读下面内容,如果你来开发,会抽象出哪些组件。

下面把页面分为3部分(以下开源库以element ui为例)

第一部分:查询表单部分

开源库提供的组件:Input 输入框,Button 按钮 , Select 选择器, DateTimePicker日期时间选择器。

需要开发的组件

区间查询,我们可以抽象出一个无业务通用组件 Range

城市选择,可以将和服务端的数据交互封装到组件内,抽象出一个通用服务组件 CitySelect,供所有项目直接使用。

打印组件 Print

将整个查询表单部分抽象成组件 Search,组件支持更多查询交互,重置交互,具体查询条件可以通过slot传入。

第二部分: 表格

开源库提供的组件:Table 表格

需要开发的组件

脱敏操作,点击查看显示明文,可以抽象出通用服务组件 Encrypt。

查看更多的交互可以抽象出组件 MoreOption

第三部分:分页

分页组件 Pagnination, 开源组件库提供。

除了这些,还可以把上面三部分看成一个整体,来抽象出一个页面级别的组件,这个组件由3个组件组合而成: Search 查询,Table 表格,分页 Pagination组成,可以通过配置来控制是否需要查询和分页,来适应更多的业务场景。

列表页组件分析(绿色框为要抽象的组件)

有了这些组件,开发效率一定会大幅提升!

有了组件还不够,我们还需要添加通用的工具和方法到组件库中,比如埋点上报,获取url中参数等方法,这些都能够复用,不需要每个项目中重复实现。

要开发一个组件库,还有很多事要考虑,如何设计目录结构,怎么做好工程化,设计开发以及review代码的机制,版本更新机制,如何开发出优秀的组件,这些将在后续推送的文章中详细介绍。

二.通用ui规范

为了达到可以定制主题的目的,组件样式不能使用scoped,最好作为一个独立的项目维护,可以通过gulp或webpack进行独立编译,和组件代码的编译分离开。为了样式不互相污染,可以采用css的BEM规范。

可以使用 sass,less 创建一系列变量,作为样式的基础,在组件开发时,严格使用这些变量进行开发,由于组件库是依赖开源库为基础进行二次开发的,可以直接使用组件库的定义的变量,不满足时再进行补充。

element ui定义的部分变量

需要定制主题时,只需改变变量值,重新编译代码即可。

三.构建脚手架

来了新项目你是怎么做的呢? 自己搭建重新设计目录结构?复制老项目删除业务代码?如果是后者还好,至少能保证统一的技术方案。如果有一个自己的脚手架,只需一个命令,就能轻松创建项目初始化文件,这样变得优雅了很多。

使用脚手架有什么优点呢?首先项目通过命令直接生成,更优雅, 其次初始化的项目相同,保证了多项目的技术方案统一,便于维护。

搭建的脚手架可以基于现有的脚手架进行拓展,比如,使用vue可以基于vue-cli初始化的内容去进一步拓展。下面看看脚手架需要包含哪些内容。

1.引入自己搭建的组件库

最大程度的复用代码,通过现有组件实现快速开发

新的交互形态,直接抽象出来扩充到组件库,所有项目复用

2.使用自己的一套统一样式

样式问题集中管理,改一次,所有项目受益

可以定制不同的主题

3.使用统一的mock方案

前端项目运行不需要依赖后端服务

开发时,直接使用mock数据进行调试,减少后期和后端的联调时间

4.统一编码规范和风格

所有项目使用一套eslint规范,可以编写一套自己团队的规范,也可以基于社区里主流的规范去调整,使它更适合你的团队,现在主流的规范有Airbnb,Standard,Google几种。

建一个团队内部规范的npm项目,所有的项目安装这个npm包,保证团队代码规范统一。

5.脚手架集成登录,权限配置,路由配置,vuex,AJAX请求封装,不同环境配置

把这些内容直接集成到脚手架中,这样就可以最快速度进行开发。具体怎么搭建脚手架将在后面文章中推出......

                                            时刻前端新鲜技术推送,定期前端精品文章分享,

                                                        欢迎扫一扫关注公众号前端小苑。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,093评论 4 62
  • 通过计划把未来变成现在,这样你就可以未雨绸缪。 ...
    叶亦唯阅读 573评论 0 1
  • 《你,我的你》 我在秋天遇到你 记得那美妙的一瞬 在我昙花一现的幻想里 你散落的头发也会描摩蓝天 … 我在冬天品读...
    麦茫阅读 253评论 0 3
  • 现在,丙肝也是一种流行甚广的传染病,也已成为一个严重的社会和公共卫生问题。据世界卫生组织(WHO)统计,全球丙型的...
    zhuangtong7359阅读 268评论 0 0
  • 倾城心音/文 语言将世界连接成一个整体,每种动物都用他们独特的方式进行交流,传播信息,表达情绪。人之所...
    倾城心音阅读 1,721评论 0 3