Skip to content
On this page

总结


总结

至此,小册的核心内容部分就已经完结了,感谢每一位能够坚持读到这里的朋友,也推荐各位在读小册的同时再多花点时间将小册中提到的五个示例项目 clone 到本地跑一遍并阅读下相关的源码,相信会有更多的收获。

这本小册从如何搭建一个前端项目的脚手架讲起,一步步带领大家完成了一个基础的企业管理系统脚手架,其中包含了页面基础布局、页面级别的前端权限管理系统、自动匹配路由的无限级菜单、数据驱动的全局通知以及支持按需加载的系统多语言切换。这些当然不是企业管理系统的全部,但希望大家都能够在消化吸收了这些模块中的最佳实践后,举一反三地将这些知识与经验迁移到更多具体的业务需求中去。

更重要的是希望大家能够理解「组合式开发」的真正含义。软件应用作为一个复杂系统,归根结底其降低内部复杂度的方式就是分层。通过不断地分层将整体复杂度合理地分散在每一个模块中并将其封装起来,从而达到极大地降低拼接不同模块时复杂度的目的。

而对于任意一个模块来说,衡量其优秀程度的维度除了能否和当前系统配合起来完成具体任务外还有两个重要的维度。

一是这个模块是否和其上下游的模块强耦合,即其他模块是否需要为了适应它而做出特殊的调整。好的模块是为其他模块赋能的,即赋予其他模块更多的能力而不需要其他模块做出任何的妥协或牺牲。

二是这个模块是否能够无缝地迁移到其他的系统并完成同样的工作。这就涉及软件工程中经常讲的可复用性,即一个模块自身的封装是否足够优秀以至于并不会因为所处系统的不同而需要做特殊的调整。

在这三个维度上都能够达标的模块才称得上是优秀的模块。但有时因为具体的业务需求我们可能会在这三个维度上有所取舍,比如牺牲一些可复用性去追求和上下游模块的弱耦合,这就需要具体情况具体分析了。

在小册的开篇我们提到过「组件化」并不是解决软件开发的银弹,同样的「组合式开发」也不是。它们都是工程师们在开发项目中积累下来的经验,只有在领会了其中要领并将多种方法与经验融会贯通后,才能够真正地在日常工作中不断提升自己。

学习路线

这个小册由于是从一个具体的前端应用直接切入开发技巧与理念的讲解,所以对于刚入门 React 的朋友来说可能存在着一定的基础知识部分梳理的缺失,这里为大家提供一份较为详细的 React 开发者学习路线图,希望能够为刚入门 React 的朋友提供一条规范且便捷的学习之路。

react-developer-roadmap

读者反馈

在小册上线后笔者收到许多非常认真的读者反馈,在这里先统一向大家表示感谢。

其中被提及最多的一点是小册选题太大但内容却有些单薄,并没有涉及「企业管理系统」中所有重要的部分。关于这个问题笔者除了会继续优化更新小册内容外,还有一些个人的想法希望与大家分享。

企业管理系统的确是一个非常宏大的命题,也正如许多朋友所说,其中的任意一点拿出来都可以写一本小册。所以笔者在构思这本小册时,更多考虑的是如何从几个具体的侧面来描述企业管理系统这样一个宏大的命题,好让大家虽然是管中窥豹但仍能触达核心。

这也就引出了下一个问题,那就是如何定义什么是企业管理系统中的核心?关于这个问题,每个人根据自身经验和所处场景的不同,对于核心的定义与理解也不尽相同。笔者挑选出来的布局、权限、菜单、通知、多语言这五个部分是基于笔者在过去几年中的工作经验,抽取出的相对而言笔者认为应当有统一解法却还没有人将这个统一解法提炼出来的五个模块。其他的比如表单部分,也是企业管理系统中非常核心的一环,但因为已经有了如 redux-form 这样优秀的开源解决方案存在,笔者也并不能够在此基础上提出更新更好的方案,所以就没有将这一部分放入小册的内容中。目的是希望小册不要成为成熟解决方案的搬运工,而是可以为读者提供独家的解法。所以大家在小册中看到的所有示例项目都是笔者的原创项目,笔者也认为这样才是一种对读者更加负责任的做法。

学习是一个不断融会贯通的过程,正如小册中的最佳实践也并不是笔者凭空想象出来的,而是在阅读了大量的开源项目后结合自身工作经验所做出的一个总结。框架也许会过时,甚至语言有一天也会被淘汰,但在使用框架、语言去做项目时积累下来的知识与经验是永远都不会过时的,也希望大家在阅读任何技术文章时不要将注意力全部集中在可以直接拿来用的代码上,而是更多地尝试去理解作者在文章背后想要传达的思想与理念,这样才能够不断地将他人的经验内化为自己的能力持续进步。

交流互动

目前小册已经有了 3 个微信群,有超过 1000 位的读者在微信群中和其他志同道合的朋友一起交流阅读心得,讨论在阅读小册及日常开发中遇到的问题。我们鼓励「去中心化」的讨论,每一位微信群中的朋友都可以是问题的提问者或回答者,相信在这样良性的互动中大家一定可以教学相长,共同进步。

致谢

首先感谢每一位读者对小册的支持,你们是小册的全部价值所在,也希望在阅读的过程中每一个人都能够有所收获。

其次感谢流形、染陌两位老师为小册撰写推荐语,正是因为有了你们的背书小册才能够吸引到如此多的读者,非常感谢。

最后要着重感谢的是掘金小册的全体编辑团队,尤其是小册的责任编辑 cilluo。没有你们在背后默默地付出与支持就不会有这本小册,也期待以后更加深度的合作。

更新记录

  1. 2018.08.05: 增加小册「总结」,总结小册内容及想传达给读者的核心思想,提供 React 学习路线图,回复读者反馈及致谢。
  2. 2018.08.01: 更新「实践篇 03:页面布局方案」、「实战篇 05:菜单匹配逻辑」,增加对于该小节中涉及的知识点详解。
  3. 2018.07.31: 更新「实践篇 03:页面布局方案」、「实战篇 04:权限管理机制」、「实战篇 05:菜单匹配逻辑」、「实战篇 06:消息通知设计」、「实战篇 07:多语言支持」,增加该小节与「组合式开发」之间的关系,并结合案例详解「组合式开发」中的核心概念。
  4. 2018.07.27: 更新「实战篇 01:开发前准备」,增加简单框架选型介绍,小册建议学习方式及拓展学习资料。
  5. 2018.07.24: 更新「继往开来:可视化页面搭建工具」,增加「动态路由」部分。
  6. 2018.07.23: 更新「小册介绍」,增加对于「进阶」一词的详细解释及其他文字优化。