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. 【leetcode刷题笔记】Distinct Subsequences

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  2. docker网络模型

    docker run -it --rm --net none --name test centos:newer /bin/bash --net none的作用是创建一个封闭的容器,容器只有lo接口,只 ...

  3. java:Eclipse:Could not create the view:解决办法

    Eclipse:Could not create the view: Plug-in org.eclipse.jdt.ui was unable to load class org.eclipse.j ...

  4. jQuery中的动画理论干货

    [jQuery中的动画] 通过jQuery动画能够轻松地为页面添加精彩的视觉效果 [show()方法和hide()方法]1.show()方法和hide()方法是jQUERY中最基本的动画方法,相当于在 ...

  5. ES查看segment大小

    摘自:http://www.aboutyun.com/thread-17078-1-1.html Segment Memory Segment不是file吗?segment memory又是什么?前面 ...

  6. vue2.0项目实战使用axios发送请求

    在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource. 关于为什么放弃推荐? -> 尤 ...

  7. Python入门经典练习题

    [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? num_list=[]cou=0for i in range(1,5): for j in range( ...

  8. D. String Game 二分加字符串匹配

    题目链接 题目大意:给出字符串str1,再第二行给出字符串str2,第三行给出删除str1中的字符的顺序,用数组a[]存,问最多按第三行的顺序删除str1中的字符剩下的字符串中str2 我们定义l为a ...

  9. COM组件的集合与包容

    集合与包容,实质就是组件之间的互相调用.即一个组件使用另一个组件的功能,达到代码复用的作用.只是这种复用是构建在二进制数据上的(因为被复用的组件常常以dll的格式存在),而不是像c++代码复用是以源文 ...

  10. Python set运算 集合差集,并集,交集,list去重复

    在没有发现方便的set运算之前,都是用遍历list查找两个集合的差别. 比如, 找list1和list2的差集 for i in list1: if not i in list2: print i 现 ...