hi , all
我们团队是用 python 做开发的,在团队协作方面,遇到了一些问题。
目前团队的协作开发是这样的,比如做某一个业务产品,开发者把代码拷到本地,所有的依赖服务,比如 mysql 、 redis 、 rabbitmq 等等,都在自己本地部署一套,数据也拷贝一份,然后进行开发调试。测试完毕后,推送到测试环境,跟客户端进行调试。
其实有过另外一个思路,就是每个开发者都在同一台开发服务器上面进行开发。代码方面,给每个人分配一个账号,共用数据服务、第三方服务;路由方面,主要是通过 nginx 转发。每个开发者自己都有一个 nginx ,负责路由到自己的实例上,然后还有一个主的 nginx ,负责转发。
有点抽象,举个例子:
我是 A 开发者,就分配一个 a.dev.xx.com , B 开发者就是 b.dev.xx.com 。
我登录到 dev 服务器,在自己的 /home/a ,下面有个业务代码,比如叫 produt_v2 ,打开 vim 进行开发(或者我本地通过`SSHFS`之类的功能,映射到本地进行编码)。
开发完后,我跑下 unittest 写的测试用例,这里的域名,我用的是 a.dev.xx.com ,然后请求经过主的 nginx 转发,转到我自己的 nginx (二级 nginx ),最后转发到我的 product_v2 代码实例上面来(比如 tornado 实例,端口 9990 )。
调试完成,通过`fabric dev`类似的命令,把代码发布到测试环境(目前来说,开发和测试是同一套环境)。这里其实是把代码发布到一个叫做`deploy`用户的`/home/deploy`目录下,我主要是用它来负责运行测试代码的。本质上,它跟普通的开发者是一致的。
最后,客户端或者其他测试人员,通过 dev.xx.com 来进行调试访问。
之前做 php 的时候,用的是这种多个 nginx 分发的模式,但是当时手头那套工具比较复杂,就没继续沿用在现在的基于 python 栈的团队开发中了。
提出来其实想问问大家在团队开发过程中,怎么比较合适、舒服的方式进行开发的呢?比如,用 docker ?自己搞了一套工具?
欢迎吐槽=。=
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.