Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

前端工程化-对于如何有效地拆解项目的思考 #9

Open
fengyua5 opened this issue Jun 27, 2019 · 0 comments
Open

前端工程化-对于如何有效地拆解项目的思考 #9

fengyua5 opened this issue Jun 27, 2019 · 0 comments

Comments

@fengyua5
Copy link
Owner

fengyua5 commented Jun 27, 2019

如何有效地拆解项目 ?

1、最重要的工作是对代码层次有效地拆解

结构图
我们可以简单地将其划分为项目的框架、组件、业务页面四个部分。
首先框架可以分为基础框架和业务框架。
基础框架就是现在的前端微服务,

  • 优点是把利用分治思想,根据功能模块化,隔离了各个模块,各个模块独立开发、独立上线;
  • 缺点是增加了项目的复杂度,
  • 个人觉得大型项目可以选择微前端,小型项目还是单体项目最合适;
    搭建业务架构目的在于提供整体的解决方案让其它区块(层)更加纯粹。

其次是组件组件库化,减少重复的组件,可以快速响应设计对整栈ui的改版,需要的注意的是通用的组件尽量的减低和业务模块的耦合,共有的需求组件库做,差异化的需求业务端自己做(可以基于组件库组件进行再封装),当然组件库中的组件在业务有变化的地方暴露出规则,让业务端自己定规则,由组件按业务规则运行或者渲染。

最后是业务页面,可以让开发者关注业务本身。
建议:把router的url地址集中化配置(因为各个模块会相互跳转而且模块的分类也会发生变化)

2、分层

流程图
我们从另外的一个角度将层区分为:数据层(状态管理)、服务层(包括封装了对数据的请求和一些基础处理)、逻辑层和视图层。
优点:
1、各层都比较纯粹,各层的关注点不同,不会出现某一个页面的代码都在一个文件中的场景
2、提高复用,比如说service层的服务会被不同的模块复用,比如说UI是一样的,但是逻辑在不同的页面有变化,再比如说UI展示不一样,但是业务逻辑一样,这些情况下都可以复用
3、数据处理,有一些公用的数据要进行数据转换,在各个业务处理显然不合适
4.、降低大型项目重构代价,比如说后端发生重构,我们可以只改动service层(也可以在service层加Adapter,以减少其他层的修改),比如说逻辑发生重构我们可以只改Controller层,不用改其他层
缺点:写法太繁琐,文件夹太多
个人觉得大型项目分层还是有必要的,小项目分层则太繁琐

3、文件夹目录

文件夹

@fengyua5 fengyua5 changed the title 前端工程化 前端工程化-如何有效地拆解项目 Jun 27, 2019
@fengyua5 fengyua5 changed the title 前端工程化-如何有效地拆解项目 前端工程化-对于如何有效地拆解项目的思考 Jun 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant