Coding Anytime Anywhere

Coding 团队有 70 多人,分布在全国各地(深圳,北京,上海,成都),我们使用 Coding 作为云端办公室,以云端协作的方式管理事务,文件等,我们的日常工作(包括但不限于产品,研发,市场)都是在其上完成的。Coding 的 全平台支持 让大家可以随时随地进行同步与协作,我们一直在践行 “Coding Anytime Anywhere”。

我们使用 Coding 团队功能管理团队成员和私有项目,只需要在 Coding 创建一个团队,选择迁入私有项目并添加人员,即可完成对成员,团队与项目的管理。(项目内也可以 设置不同成员的权限

Push Everytime,Review Everything

Coding 的工作流(从需求到产品原型到开发)都是在项目内进行的:我们使用讨论和任务功能管理需求,使用文件功能管理产品原型,使用代码功能进行开发,这也便于每个人随时 Follow 或 Review 任务,文件或代码。

需求

我们使用 Coding 的 公开项目讨论功能 收集用户反馈,提炼核心需求并定期 Review 进行取舍。

为什么要 Review 产品需求?
软件缺陷并不只是在开发阶段才产生,需求和设计阶段同样可能会产生缺陷。

产品

当产品研究决定我们要实现某功能时,我们会以任务形式发布该需求,然后进行技术评审(如果是重大新功能还需要进行设计评审),评审完成且结果为肯定时我们会继续细化(修改)该任务,进行产品设计及排期。

在产品设计过程中,我们使用 Coding 的文件管理功能进行对产品原型的管理和版本管理。

开发

Coding 的开发方式,更像是一个大型的开源项目协作。当需求及产品原型以任务形式确定后,开发人员就开始基于自己的功能分支进行开发,其后的代码评审是也是通过项目内提交 MR (合并请求)进行的。

我们使用了 Feature Branch Workflow,即团队成员共用一个私有项目仓库进行管理协作,开发者在各自的 feature-branch 中进行开发,开发完成后通过提交 Merge Request 进行代码评审,通过代码评审后 merge 进入 master 分支( master 分支是可部署到 staging/生产环境的分支)。

工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。合理选择并使用一套工作流可以让技术团队开发更高效,更简单!

Workflow 没有银弹 ,如果你的:

  • 生产环境有多个版本,需要持续支持旧版本的软件服务如操作系统,自定义应用程序等,可使用 Gitflow
  • 生产环境只有一个版本,如网站,网络服务等,可使用 Feature Branch Workflow
  • 生产环境只有一个版本但软件很复杂,需要 CI/CD 后才能进入生产环境的如 Gmail,Twitter 等,可使用 Gitlab-flow

测试与上线

当开发人员 push 代码后会触发 Webhook,我们的 Jenkins 会自动编译并测试该 commit。

你的部署工具应该支持你部署分支是很重要的。一旦你确认你的性能没有波动,没有稳定性问题,功能可用性在预期内,你就可以 merge 它了。这么做的原因不是为了确保事情可行,而是防止事情不可行。当其出错时,你的解决方案应该是单调,直接且无压力的:重新部署 master 分支即可。就是这样,你回到了“没问题”的状态。——《如何部署软件》

当测试通过时,我们会更新代码到 Staging 环境,更新好后由测试人员进行相关测试。Staging 环境测试没问题后,我们会以 Feature Flags (内部测试新功能)的形式发布其到生产环境,通知相关的产品或设计人员开启 Feature Flags 进行内部 Review,如果存在问题或缺陷,我们会新建一个任务进行修复,确保功能及设计细节的正确性。

如果经测试新功能确认没问题后,我们会开放该 Feature Flags,将该功能开放给全体用户。

结语

Coding 始终认为开发工具应该足够简单,开发人员的生成力应该被解放出来,我们使用 Coding 这个开发工具进行开发,旨在不断优化提升 Coding 的体验,让开发更简单。当然,如果你有任何需求或建议,请不要忘了 提交给我们 ;)

Happy Coding!

感谢 @summer ,@rexskz Review 了本文并提出修改意见,感谢 @tankxu 设计的图片(How Coding uses Coding to build Coding)

Coding 如何使用 Coding 开发 Coding的更多相关文章

  1. 使用Emmet(前身Zen Coding)加速Web前端开发

    Emmet插件以前被称作为Zen Coding,是一个文本编辑器的插件,它可以帮助您快速编写HTML和CSS代码,从而加速Web前端开发.早在2009年,Sergey Chikuyonok写过一篇文章 ...

  2. 在Coding.net创建项目开发

    先在Coding上创建个项目 只要建个项目推送代码余额就会增加,积累码币可以在商城里兑换相应的商品.为了码币,我也应该建个项目搞搞啊-  记录下过程. 先在Coding上创建个项目   现在是这样,我 ...

  3. zen coding一个牛的不行的html和css开发工具

    zen coding 是一种仿css选择器的语法来快速开发html和css的开源项目.现已更名为Emmet.可以到github上下载拜读.在这个都想偷懒的世界里,此方法可以极大的缩短开发人员的开发时间 ...

  4. CODING 如何使用 CODING 研发管理系统来敏捷开发

    之前我们分享过<CODING 如何使用 CODING 开发 CODING>的文章,时过境迁,现在 CODING 研发管理系统已经上线了如持续集成.缺陷管理.测试管理等 DevOps 中的重 ...

  5. 我也来谈谈使用Zen Coding快速开发html和css原理

    zen coding 是一种仿css选择器的语法来快速开发html和css的开源项目.现已更名为Emmet.可以到github上下载拜读.在这个都想偷懒的世界里,此方法可以极大的缩短开发人员的开发时间 ...

  6. 让开发更简单 —— Coding Enterprise 发布

    今天,我们很高兴地宣布 Coding Enterprise 发布了 —— Coding Enterprise 是 CODING 专为企业打造的软件开发协作平台,提供了针对中小型企业的公有云版本和针对大 ...

  7. 在线的代码托管平台 coding.net ===中国扩展版github

    coding.net 是国内新兴的一个项目管理平台,功能主要包括:代码托管.在线运行环境.监控代码质量,兼有一定的社交功能. 在线运行环境支持Java.Ruby.Node.js.PHP.Python. ...

  8. 使用Coding.net+Hexo+node.js+git来搭建个人博客

    使用Coding.net来搭建基于Hexo的博客 一.准备工作 什么是Coding.net Coding可以说,就是国产的Github,但是,有一个功能使它似乎超越了GitHub-那就是 Web ID ...

  9. Git版本控制:Gitlab及Coding.net的使用

    http://blog.csdn.net/pipisorry/article/details/50709014 Gitlab介绍 GitLab是利用 Ruby on Rails 一个开源的版本管理系统 ...

随机推荐

  1. mysql innobackupex备份实施

    最近用innobackup进行备份测试,我们只备份一个innodb类型的库,数据大小大概50多G,用innobackupex大概用了5个多小时,但是mysqldump只用了大约2个小时,这让我很费解, ...

  2. Recovery模式【转】

    本文转载自:http://tieba.baidu.com/p/2299027486 Recovery模式是手机系统的一个工程模式,作用是恢复和清除.用户进入这个模式之后,可以对当前系统的一些数据进行清 ...

  3. (转)Windows下面安装和配置MySQL(5.6.20)

    原文地址:http://www.cnblogs.com/qiyebao/p/3887055.html 1.首先到http://dev.mysql.com/ 上下载windows版mysql5.6免安装 ...

  4. 什么是shell【TLCL】

    常用命令 date cal df——report file system disk space usage free——display amount of free and used memory i ...

  5. 中美贸易战再次开启,世界两极化进程正在加快形成!..... Copyright: 1688澳洲新闻网 Read more at: https://www.1688.com.au/world/international/2018/06/17/369368/

    中美贸易战再次开启,世界两极化进程正在加快形成! https://www.1688.com.au/world/international/2018/06/17/369368/

  6. Selenium-使用firepath获取元素的xpath

  7. Javascript-- jQuery事件篇(2)

    jQuery表单事件之blur与focus事件 单处理事件focusin事件与focusout事件,同样用于处理表单焦点的事件还有blur与focus事件 它们之间的本质区别: 是否支持冒泡处理 举个 ...

  8. BEC listen and translation exercise 33

    In fact, if it is a really hot day, like the sort of weather we had last summer, you are advised to ...

  9. codeforces 651B B. Beautiful Paintings

    B. Beautiful Paintings time limit per test 1 second memory limit per test 256 megabytes input standa ...

  10. (转)#ifndef的用法

    原文链接:http://wenku.baidu.com/link?url=c4doqVo3U429RkwTN5eaJIfD2rEu-1bLKKQXuqO8drmL359PhUjVmzC7P94wBY9 ...