V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nikymaco
V2EX  ›  程序员

大家来吹吹水,如今你的团队是如何协同开发提高效率的,工具链有哪些

  •  
  •   nikymaco ·
    Nickymaco · 2017-06-13 16:21:42 +08:00 · 4484 次点击
    这是一个创建于 2720 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在前后端分离已经不是什么新鲜事了,我遇到很多团队虽然用了不少工具链,比如 git、ci+docker,swagger 等等,但还是觉得要做的事变多了效率并没有提高多少,一个发布或者一个测试版本,n 多道工序,费时费力。每次发布前端和后端各种等各种吐槽,又或者后端和服务端各种依赖吐槽。哎,可能是我们的团队哪些地方做得不恰当导致的,大家过来吹吹水分享一下,让我们互相学习感悟感悟啦。语言先暂定探讨范围:java,python,ruby,go,js 这些吧。团队规模不限。

    17 条回复    2017-06-15 09:42:08 +08:00
    loddit
        1
    loddit  
       2017-06-13 17:28:48 +08:00
    虽然说很多工具「用上」和「用好」中间确实有很大的差距的,但感觉 ls 说的 「要做的事变多了效率并没有提高多少」还是有点主观,建议是具体问题具体说。
    我尝试猜到的问题,可能有:
    Git 的流程和使用规范团队没有都掌握或者达成共识。
    有没有地方自动化的不够彻底,比如步骤 (1) (2) (3) 自动了化了 (1) 和 (3) ,(2) 还需要人工介入,成了水桶效应。
    缺少有效及时的通知机制,不能第一时间做响应。
    nikymaco
        2
    nikymaco  
    OP
       2017-06-13 17:43:05 +08:00
    @loddit 其实比较想了解各位团队具体用到了哪些工具链,如何团队协作,怎样把工具链有效地串联在一起提高开发效率,有具体事例更好了。
    xieguanglei
        3
    xieguanglei  
       2017-06-13 19:21:55 +08:00
    我就说一个最近用的:PostMan,简直是 Web 开发前后端分离的神器。

    尤其是测试不完备的情况下,能把沟通成本降低到最小。前后端同步一份 PostMan 清单,接口怎么调,参数是什么,结果是什么,调没调通一目了然。谁用谁知道。
    sennes
        4
    sennes  
       2017-06-13 19:27:32 +08:00
    团队协作协作这一块,个人觉得任务管理、团队沟通、各类信息流向都挺重要的。

    就以团队沟通以及管理信息流向而言 @loddit #1 他们家的 Bearychat 挺不错的 你可以先去了解一下
    (Bearychat 的本体是机器人)

    而任务管理,我们用的是 Tower
    wohenyingyu02
        5
    wohenyingyu02  
       2017-06-13 19:32:00 +08:00   ❤️ 1
    我们团队不协同开发,每个项目都只有一个人
    kevinzhwl
        6
    kevinzhwl  
       2017-06-13 20:36:34 +08:00   ❤️ 1
    email,信息传递神器
    tedzhou1221
        7
    tedzhou1221  
       2017-06-13 21:15:28 +08:00 via iPhone   ❤️ 11
    小团队协作全靠吼!
    nikymaco
        8
    nikymaco  
    OP
       2017-06-13 22:50:01 +08:00
    @sennes
    @kevinzhwl
    恩,除了 PM 方面,更想了解编码开发方面的。
    loddit
        9
    loddit  
       2017-06-14 00:12:55 +08:00   ❤️ 1
    我个人的经验就是大概就是能自动化的自动化,具体要具体看,写几个比较通用的情况吧:
    1. 把 lint 之类的工具加到本地 git hook 上,commit 前检查,保持代码风格统一。
    2.提 pull request 已经每次 push commit 会自动跑 unit test。
    3. 测试和 code review 全过了,代码才能合并。
    4. 合并代码会自动 build (到 stage 环境或者打包等等),可以选择跑集成测试。
    5. 正式上线需要发新的 release,有脚本可以生成每次 tag 之间的差异,可参考 https://github.com/bearyinnovative/legilimens
    6. 使用一个合适的消息留整合工具(比如我们做的产品 bearychat.com ),让需要人及时知道的事件都有通知。
    7. 进一步的让做重复的常规操作非常容易启动,比如跟一个机器人说一句话,就可以完成打 Tag,部署服务到某台机器等等......
    dangyuluo
        10
    dangyuluo  
       2017-06-14 00:24:02 +08:00
    我现在部署的办法是:用 pm2 在生产机器上定期 git pull,将最新的 git 版本部署到一个目录里,用 fis3 对这个目录监视,并发布到最终生产目录下。然后调用 docker 接口,重启相关服务。
    whileFalse
        11
    whileFalse  
       2017-06-14 07:39:15 +08:00
    微服务架构下:
    可以在服务器集群上部署多套环境。每套环境可以指定不同的代码分支,自动或手动构建。允许程序员自助创建独立环境,环境数量只受服务器集群资源限制。
    本地开发时可以指定连接到任意环境,生产环境除外。
    程序员可以在本地运行任意个后端微服务,微服务之间可以互相连接起来。
    不同程序员在同一局域网内运行的前后端微服务可以互联,只要是他们链接到相同的线上环境。

    用 ChatOps 部署。不太清楚如何贴图。
    https://just4test.s3.cn-north-1.amazonaws.com.cn/marvin/marvin.png
    jeffersonpig
        12
    jeffersonpig  
       2017-06-14 08:54:22 +08:00
    团队协同大幅降低开发效率的苦逼来跪着羡慕
    nikymaco
        13
    nikymaco  
    OP
       2017-06-14 10:47:52 +08:00
    @loddit
    @dangyuluo
    @whileFalse
    谢谢,有感悟。我们团队,其中有个环节是通过 jekins 集成,后由运维在同一推上线,这步骤即不自动化也也麻烦,一个沟通不畅各种吐槽。
    lunes7
        14
    lunes7  
       2017-06-14 11:51:31 +08:00
    @jeffersonpig 说出你的故事 2333
    gemini767
        15
    gemini767  
       2017-06-14 13:08:43 +08:00
    康威定律:任何组织在设计一套系统时,所交付的升级方案在结构上都与该组织的沟通结构保持一致
    jeffersonpig
        16
    jeffersonpig  
       2017-06-14 23:07:50 +08:00
    @lunes7 我说我司用的 excel 作为 IDE 来写 C/C++代码你信吗?
    nikymaco
        17
    nikymaco  
    OP
       2017-06-15 09:42:08 +08:00
    @jeffersonpig 呵呵,是拿 office 的宏来开发吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2678 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:37 · PVG 20:37 · LAX 04:37 · JFK 07:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.