我是一名杭州的准高三学生 Weny ,今年我和网易杭研视频云运营(前 SF 运营)烧碱,一起搞起来了一个 Tanso Space KOL 分享社区(网易云是世界上最好的大腿, 5 毛一条,括号内容删除) ,邀请圈内 KOL 来做一些关键意见分享(大概都是我们圈子里年轻、并非常优秀的小伙伴,来和他们谈谈人生,分享一些优秀视野)…
暑假里大概一个月零一点,写完了这个项目,过来分享这个中小(大概业务代码在 30k Lines 左右)的前后端分离的 教育基础接入平台&社区项目 下来后的一些心得。
概述
前端 React Redux
后端 Laravel MySQL Redis
项目初衷
一直在观察 K12 市场,相对来说,一二线城市教育问题集中在学生、家长价值观或者说缺乏内在的动力,三四五六线城市教育问题主要集中在教育资源和贫富差距。那么今天我们做 Tanso Space 主要希望在中国一二线城市乃至三四线城市传递一种积极向上的价值观。促使更积极的阶层流动。当然做这件事从根本利益上的,从某种程度上来说与中高产根本利益相互冲突。当时我们希望在阶层固化更严重的今天,让更多人能接触到积极向上的价值观影响,从而成就一个更好的自己。 To Be Better
分享
前端
Redux & Normaliser 数据流设计
*第一代 Module 分离 Store 设计
*根据需求 分离各个 Store
*第二代 Module Unity Store 设计
*Router Engine 自动匹配 Master RESTful API
*多个 Modules 复用 Unity Actions , Unity Store
(晚些时候有空打算开源这个项目的核心部分-RESTful API Redux React View Builder )
高复用组件设计
整个项目下来,封装了几个高复用组件
Auth 组件( Actions 中间件 , HOC )
ListView 封装 ListScoll 高复用设计
我在 SF 写过文章有关这些组件的设计
https://segmentfault.com/a/1190000005980360
https://segmentfault.com/a/1190000005986111
性能优化
这是一个老生常谈的问题
这个项目在未使用 Immutable 的情况下优化重复渲染
主要面对问题:
*数据层次过深
解决方案:
*指定数据深度比较
*关键数据深层次比较
( 建议 Store 取数据上自己在底层封装一层,后期项目大了之后 ,再引入 Immutable 化,可以减少工程量)
后端
后端框架比较传统, Laravel PHP Framework ,用的是 dingo API RESTful API ,配合 JWT 。同时封装了 Repositories ,根据业务需求使用 Redis 。
写在最后
晚些时候有空打算开源这个项目的核心部分-RESTful API Redux React View Builder
马上就要上线啦!一起来期待我们更多优秀小伙伴的访谈分享。
(最后请不要打我,图床偷偷用的是 react-china,本来首发在 react-china ,作为一个可爱的游客最多贴两图。)
图挂了,补图