项目管理的方式是多种形势的,依据管理的方式类进行项目建仓。

mono或者mult其实都是项目管理的方式,只是两种方式是刚好相反的,拿来一起说是,更方便记忆而已。

multrepo:将项目分化成为多个模块,并针对每一个模块单独的开辟一个reporsitory来进行管理。

     优点:1.团队自己的IDE,语言,以及工作步调。

        2.模块更小,更易维护。

        3.开发效率更高。

     缺点:1.合并困难,每个模块规范不同,同步和编译时这些问题将会集体爆发。

        2.难以保证稳定性。

        3.由于可能存在不同语言开发,或者不同IDE的情况,新建或者更新构建变得困难

monorepo:是将所有的模块统一的放在一个主干分支之中管理。不进行分库存储,当有特定的需要的时候进行分支,但是问题修改还是在主干上操作,并有专门人员合并到分支内容上,在特定需求完结的时候,分支也将会被废弃。点击这里,查看详细介绍

     优点:1.统一的规范,语言,和IDE带来的是结构的完整稳定。

        2.按照统一的标准进行开发,是哦程序稳定性更良好,更易解读。

        3.标准化的开发流程,规避很多不必要的冲突与错误。

     缺点:1.项目过大,难以管理。

        2.由于统一的标准,不同的团队可能需要对于新的规范和IDE进行了解学习,需要时间。

        3.修改和开发可能变得繁琐,减慢效率。

如果你们团队选择 monorepo,那主要的挑战自然是随着项目的发展,其会变得非常庞大(因为没有根据模块或功能拆分成不同 repo)。因此会需要很多的工具来应对这样的挑战。

  • 你会需要强大的构建工具,比如 Google 的 Bazel, Facebook 的 Buck 和 Twitter 的 Pants
  • 仓库变得太大,对你们的版本控制技术会有很大的挑战。因为 Git 社区建议的是使用更多更小的代码库,Git 本身并不适合单个巨大的代码库。
  • 因为所有的代码都放在一起,你需要时刻保持警惕,以保持良好的项目结构和提交测试。
  • 在这么大的 workspace 中工作或使用了非标准化的构建工具,你常用的 IDE 可能会遇到麻烦。Facebook 就选择了构建自己的 IDE。

monorepo和multrepo的简介的更多相关文章

  1. Sentry 官方 JavaScript SDK 简介与调试指南

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  2. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  3. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  4. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  5. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  6. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  7. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  8. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  9. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

随机推荐

  1. OVN实战---《The OVN Gateway Router》翻译

    Overview 在本文中我将在前文的基础上添加一个OVN gateway router.gateway router将使得lab network能访问我们的overlay network The l ...

  2. openwrt undefined reference to ‘getpwent_r’

    由于须要安装 su sudo useradd groupadd chown login 等用户管理命令,会訪问passwd文件. 用到了 getpwant_r 函数.详细是哪个命令引起的,临时不知. ...

  3. 【ORACLE】10步全然卸载CRS

    版权声明:本文为博主原创文章(原文:blog.csdn.net/clark_xu 徐长亮的专栏),未经博主同意不得转载. https://blog.csdn.net/u011538954/articl ...

  4. ansible应用

    前言: 假如让你在一组服务器安装某个软件,服务器少的话还可以接受,但如果有上百台服务器的话,这样会耗费大量时间,在这时候Ansible就由此而生:总之Ansible提供的很多模块十分强大. 一.关于a ...

  5. HDU1165: Eddy's research II(递推)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1165 果断不擅长找规律啊,做这种题静不下心来. Ackermann function can be def ...

  6. Java泛型四:Java泛型总结

    原文地址https://www.cnblogs.com/lwbqqyumidi/p/3837629.html 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 publ ...

  7. Oracle 在64位机器上使用plSQL连接Oracle的问题(SQL*Net not properly installed)

    问题: 在64位机器上了64位的oracle客户端. 然后装上PL/SQL Developer,但是连接oracle老报这个错: Initialization error      SQL*Net n ...

  8. Java并发之CountDownLatch的使用

    Java并发之CountDownLatch的使用 一. 简介 Java的并发包早在JDK5这个版本中就已经推出,而且Java的并发编程是几乎每个Java程序员都无法绕开的屏障.笔者今晚在家闲来无事,翻 ...

  9. 关于div可编辑的复制粘贴问题

    todoFilter(e) { e.preventDefault(); if (!e.target.getAttribute('contenteditable')) { return; } const ...

  10. iOS 那些年我们遇到的坑

    1坑: UITableView的第一个Cell下移