[翻译]MEAN.IO与MEAN.JS的前世此生

写在前面:

由于项目要求要学习mean,因此要从搭建环境开始,网上的教程不怎么多,可是感受方法却是很多,也没多想,就开始安装,运行起来发现怎么和安装教程中的目录结构不一样?
想了很久,也翻看目录半天,总感受怪怪的,是有些包没失败仍是哪里出了问题,无心中看到一我的说的mean有两个github,以下:html

mean.io: https://github.com/linnovate/mean

mean.js: https://github.com/meanjs/mean前端

而后有一篇文章说明了二者的关系,也就是下面要翻译的文章,其实也不是翻译了,全当是好奇心驱使,想要搞清楚怎么会有两个mean...翻译水平本身都信不过本身的,大神路太轻喷,Just for fungit

原文:Forking out of an open-source conflictangularjs


序言

两年多以来我一直是一位自由开发者,在这段时间里,我在工做中使用全栈的Javascript解决方案,涉及到MongoDB,Node.js和AngularJS
大约在一年前,我注意到当建立一个新的web应用时老是一个循环模式,并且我意识到我最近开发的三个web应用都是使用的相同的技术:使用MongoDB最为数据库,
Node.js和Express最为后端架构,AngularJS做为前端框架,我开始构建一个样板来帮我应付这类工程,并且我很高兴能看到别人也注意到这样的开发模式。
通过谷歌搜索,我发现了瓦列里·卡尔波夫的MongoDB博客文章建议使用MEAN名称,
到目前为止,这是我发现的最先说起mean名称的地方了github

大概在10个月之前,我接手了一个名为Linnovate公司的工程,这个工程是Linnovate公司从别处接手的一个糟糕的mean变种,
他们但愿我能组织它们,幸运的是,我已经拥有本身的样板,而且向他们进行展现,咱们一块儿决定把它开源,不久以后,社区开始受到样板,在hacker news上的第一个帖子获得咱们的指引,
而后一些人开始在推特上关注这个项目,不久以后,出现了不少关于全栈方面的文章,MEAN开始蓄势待发web

与此同时在Github上,我经历个人职业生涯中最好的一段经历。做为工程的维护人员,我发现了开源的真正力量,社区中好多好的开发者们帮助我学到了不少新的事物:从利基陷阱到大版本变动,
从管理工程到社区礼仪,全部的这些都使我更加充满编写代码的激情,我愈来愈多的参与到项目当中,比以往更加频繁的查看邮箱,常常调整问题页,测试提交上来的代码,这些事情成为我大部分的平常工做mongodb

冲突

直到去年年底以前一切进展的都很好,就是我将成为首席维护人员,Linnovate给我更多的时间,这至关的不错,由于公司在不牺牲核心利益的前提下可以更多的帮助社区,对我来讲,我能保持独立,
而后能很好的维护这个工程,惟一为问题就是公司和自由开发者持有不一样的议程,因此,在去年年末,咱们的合做走到了十字路口数据库

几乎在其它的专业领域这都将致使严重的法律纠纷,一般都将损坏双方的利益,幸运的是在咱们开源社区,这将获得优雅的解决,在当前项目中分离出去,因此在一个月以前,我离开MEAN.IO而且成立一个新的工程叫MEAN.JS。
我叫来个人小伙伴同事科恩(最初MEAN贡献之一)来和我一块儿工做express

结局

当咱们走进MEAN.JS开发时,咱们心中有一个主要的设计目标:让MEAN.JS从不断发展的黑客马拉松样板成为真正的生产框架,换句话说 - 咱们想要帮助你说服项目经理是时候离开PHP。自从每一个MEAN模块已经生产就绪,
问题就是要把他们正确的结合在一块儿,先把这些放在内心,咱们指出一些问题:后端

模块化

为了使MEAN.JS变得优秀,咱们须要把它分解成明确的模块,每个模块支持一个主要的特性。咱们还须要改编它使其支持建立合乎逻辑的模块。
因此,咱们改变了一点工程结构去支持新的方法,一些文件被分割,一些被合并,不过总的来讲咱们作了主要两件事:

  1. 咱们改变后台结构使其支持MVC模型
  2. 咱们重组了AngularJS部分来支持垂直模块

咱们也增长了一些自动加载模块特性来缓解开发过程,模块化是至关不错的,它也帮助咱们解决另外一个原MEAN的主要问题,传统支持

传统支持

一个原MEAN栈存在的问题是对之前的支持很弱,项目常常变动,没有版本方案产生不少的版本,不少特性添加或删除没有正确的通告,人们在升级他们工程时会遇到问题,
而且它一般会放下一些规则,因此咱们从一些咱们喜欢的框架中借鉴一些经验:

  1. 版本号 - 像一些其它的框架同样使用奇偶数,一些版本号表明稳定版本
  2. 分支 - 咱们使用标签和分支来正确标记不一样的变动和布丁来代替之前的直接合并
  3. 模块化 - 把工程分割成多块使咱们有能力去提交BUG补丁更快速

咱们的愿望是能支持更多的受众,固然也包括原MEAN社区,让咱们来处理下一个来自MEAN用户主要的抱怨,文档

文档

可能这是来自社区最广泛的需求,拥有正确的文档是任何一个可敬项目所必须的。咱们创建了一个网站
来提供这个栈的基本文档介绍创建样板,里面介绍了主要依赖和如何配置它们,MEAN.JS如何工做,
还有就是如何开始开发一个新的应用。你能够访问文档页面去发现更多的帮助,若是你还有其它问题,你能够直接向社区求助

社区

最后一块版块要说下如何为MEAN开发者提供更好的帮助,通过一些实验性的工具,最终咱们决定使用已经公认的通讯方式,
咱们有了新的推特和一个Facebook页来更新新闻和一些讨论,创建MEAN.JS的google group来技术支持,并在#meanjs的IRC频道实时支持。
因此,请联系咱们若是你还有进一步的问题

将来

关于将来的开发,咱们会集中精力在下面的四个部分:

  1. 核心 - 优化MEAN的核心,并修复Bugs
  2. 模块 - 创建更多的模块来扩展MEAN,使其支持不一样web应用特性
  3. 产生器 - 咱们已经开始创建期待已久的yeoman
  4. Admin - 创建一个admin面板来管理你的MEAN应用

结语

离开原MEAN项目是我人生的最艰难的转折点之一,不过有些时候你须要冒险去支持你所坚信的。说了这么多,它按照咱们所想象的那样自由地发展,
今天,咱们带来MEAN.JS的第一个版本,邀请你们加入咱们新的征程

Amos Haviv

MEAN的做者。

* 请随时问我问题,我将尽我最大努力来提供你扎实的事实和真实的想法~



呼呼,好累,总算知道了这两个MEAN的区别联系,也算长了点知识。 以前一直纠结的项目中没APP目录是什么状况算是清楚的解决了,关于两个MEAN的结构也有了认识。 小憩一下,新MEAN,走起~

相关文章
相关标签/搜索