AoneFlow代码管理实践 + React + Redux + StyledComp + Intl 实现应用多语言多样式开发

在工作中有这么个需求:

要求开发一个应用,满足

1.支持多语言

2.不同语言有可能对应不同的样式

仔细想想好像还挺有价值

同时,还看了一篇介绍Aoneflow,代码分支管理流程的文章

感觉对于团队开发相当受用,这就来根据这个需求实践下

成果如下,点击Logo和Title查看效果,Live Demo


Live Demo

工具:vscode开发,Aliyun + docker + jenkins做自动服务器部署

技术栈:React、Redux、Router全家桶(Saga后续补),styledComp实现多样式,react-intl实现多语言


初始化Project


local running


将release/1.0.0分支合并到master(合并前是空的),触发已经设置好了的Jenkins自动部署机制,查看Aliyun服务器部署情况


Jenkins自动部署
查看服务器部署情况

至此,基本的code base+部署架子已经完成,删除release/1.0.0分支,可以开始实践Aoneflow


模拟:多人开发多个feature

现在赋予这个react app,支持“多语言,多样式支持”的feature

基于目前的master,新建分支

分别在不同的分支完成不同的feature,模拟多人开发过程

感受一下

feature/Support_redux


feature/Support_Intl


feature/Support_styledComp


从master新建release/1.1.0,与feature分支合并

从master分支新建release/1.1.0

这里遵循几个原则

- 小版本更新第二位,如1.2.0,1.3.0....

- 大版本更新第一位,如2.0.0

- hotfix更新小版本,来新建release分支,同时update第三位

如merge了release/1.1.0的master branch,发现bug,从master新建hotfix/bug1分支,同时新建release/1.1.1分支,修复后hotfix/bug1分支merge到release/1.1.1,再merge到master

合并后删除被合并的feature分支

Ex.合并Redux到release/1.1.0分支

Merge Redux分支到release/1.1.0分支


Details Page


Merge success


After Merge

重复merge操作,把Intl,StyledComponent也merge进去

最终的样子

接下来,从代码层面完美地把三个feature融合在一起

已实现点击Logo触发语言切换事件,点击Subtitle触发theme切换事件

其实主要方便在语言切换和theme切换可以用json格式保存内容,使用内容

messages


styles

仔细想想,还可以写一套公用的theme-style.json,然后以java继承的思想继承下来,再基于继承,重写所要改变的样式,不过对前端UI功力要求挺高的把

后语:

原来 Styled-component竟然是这么gay的....

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Git Flow介绍 我们都知道, 在 git 的分支功能相对 svn 确实方便许多,而且也非常推荐使用分支来...
    七寸知架构阅读 12,386评论 20 68
  • 原文推荐: A successful Git branching model 这个文章讲的是Git分支模型的原理及...
    SonyaBaby阅读 5,378评论 0 0
  • Git 仓库申请流程 1. 开发主管向Git 管理员提交Git 仓库申请【邮件:发送给Git 管理员,抄送给项目经...
    骚包霸天虎阅读 6,367评论 0 0
  • Git分支管理 master:主分支,当前分支上的代码随时可以直接发布,并且只能通过Pull Request从其他...
    UEUEO阅读 13,273评论 5 33
  • 这是一种以发布为中心的开发模式。该模式以荷兰程序员 Vincent Driessen 发表的 A successf...
    拙言_Coder阅读 8,549评论 1 1