AdonisJs 中文文档翻译于 3 天内圆满完成,感谢各位,一路有你!
https://github.com/adonis-china/docs
中文社区 http://adonis-china.org 正积极筹备中,诚邀各位前辈参与中文文档的翻译。
域名备案中, 可先用 http://adonis.genyii.com/ 临时访问
首先,真诚感谢我们的翻译团队:
- @wxs77577
- [@copydog](https://learnku.com/users/15195)
- [@dxc1996](https://learnku.com/users/13493)
- @linganmin
- @river-lee
得益于他们的不懈努力,我们AdonisJs的中文文档翻译工程在短短3天内就已经全部完成,大家辛苦了!
我们时刻欢迎你的积极参与,发现问题,贡献更好的翻译内容。
Github Readme:
AdoninJs 中文文档 (已完成,待完善)
Founded by Adonis China (域名备案中,请移步临时访问地址)
首先,真诚感谢我们的翻译团队:
得益于他们的不懈努力,我们AdonisJs的中文文档翻译工程在短短3天内就已经全部完成,大家辛苦了!
我们时刻欢迎你的积极参与,发现问题,贡献更好的翻译内容。
贡献流程
- Fork本项目到你自己的账号下,并clone到本地
- 查看『章节认领』后提交一个Issue,申请你要翻译的章节。如:申请翻译『AdonisJs一览』
- 得到回复后即可在你本地翻译对应章节,为保证效率,强烈建议配合 Google Translate
- 请务必于3日内完成翻译,完成后发送Pull Request
章节认领 (已完成)
序言
- @wxs77577 AdonisJs一览
- @wxs77577 贡献导引
- @wxs77577 发行说明
核心理论
- @wxs77577 MVC模式
- @wxs77577 IoC容器 & Service Providers
- @wxs77577 生命周期
起步
- @linganmin 安装
- @linganmin 目录结构
- @linganmin 配置
- @linganmin 环境变量
- @copydog 路由
- @copydog 请求
- @copydog 响应
- @copydog 中间件
- @copydog 控制器
- @copydog 文件
视图
- @copydog 视图
- @river-lee Nunjucks模板
- @river-lee 表单生成器
数据库
LUCID
- @linganmin Lucid
- @linganmin 关联
- @linganmin 数据库Hooks
- @linganmin Getters & Setters
WEB开发工具
- @river-lee 交互式Shell Aka Ace
- @river-lee 认证
- @river-lee Cookies
- @river-lee Mail
- @river-lee 错误和异常处理
- @river-lee 事件
- @dxc1996 助手
- @dxc1996 Sessions
- @dxc1996 验证
- @dxc1996 Redis
- @linganmin 国际化
- @linganmin 基于Ally的社交登陆
- @linganmin WebSocket
教程
- @river-lee 起步
- @river-lee 路由和控制器
- @river-lee 数据库模型
- @river-lee 显示博客列表
- @river-lee 创建博客
- @river-lee 整理
安全
个人观点
- 我不认为Node.js是js就应该保持所谓的简单。这根10年前PHP刚出来那段时间的想法是一样的,有些人认为他之所以选择PHP而不是Java就是因为它简单,所以应该抛弃框架,甚至无视OO,拥抱function。但现在?试问谁还会在你面前炫耀自己的mysqli函数用的有多6?就像现在还有多少人在你面前炫耀自己的CSS能兼容IE6、7、8?
- 现在的Node.js跟以前的PHP几乎如出一辙,历史总是不断重演。以前PHP刚出来的时候Zend Framework几乎是所有PHPer心中的终极造诣。而今,Laravel就像Chrome统一PC端、Js统一全栈一样蚕食着其他的PHP框架。TP?呵呵。
- 至于抨击MVC的,我觉得可能是对MVC的理解过于狭隘了,就像某些人认为设计师就是美工、前端就是切图一样。我所理解的广义MVC是这样的:
- M是Model,但不代表它就是指Models文件夹中的User.php或User.js。模型是对一个实体的定义,包括它的属性、方法。所以很多拆分出来的Service层、Logic层甚至Repository也属于模型的范畴,只不过为了便于管理或遵循SOLID原则做的拆分。
- C是Controller,同样也并非仅仅是指UserController.js文件。控制器负责的是接收请求,发号施令,最后发回数据。所以,以前被忽略的Route层也属于控制器的范畴。路由接收请求,让Controller中的Action来执行或者直接一个匿名函数来处理这都是控制器做的事情,难道就因为它的名字不叫Controller就说这不是控制器?
- V是View,一样,不是指什么blade、njk、pug文件。View是面向请求者的,所以请求者需要什么格式,控制器就给他响应什么格式。很简单的例子,目前大家所了解的API接口内容类型协商,假设请求的API地址是 http://api.example.com/user,那服务端会根据请求时传递的header或地址伪造后缀,取到自己想要的数据。比如: user.json和user.xml分别返回json和xml格式的数据,难道最终呈献给网站用户看到的叫View,而呈献给前端接口的就不算View了?狭隘!
- 所以,抱怨MVC不好用,想想看是不是自己能把它用好,而不是直接mkdir三个文件夹然后对应放文件就叫MVC。而且现在基于MVC有很多变体,但万变不离其宗,理解透了,一切皆MVC就如一切皆对象那样顺理成章。
- 为什么不选xxx.js?就像我在说Laravel的时候问为什么不用Yii2一样。我需要考虑当下环境和未来趋势以及最关键的:架构。目前PHP的大环境就是Laravel一家独大,而且基本上代表了PHP的未来,而且它的逻辑严谨、架构合理、功能完善再加上国内外海量插件,俨然就是一个框架界的Wordpress。关键是他有一大批国内外的粉丝,这时候出来一个几乎无成本切换的Node版的laravel和一个Node版的xxx.js,我一个Laravel的脑残粉会怎么选?再者,这名字让我无法不联想到ThinkPHP,哎!
赞 :+1:
不过, 话又说回来, 小功能/细节方面adonisJs离laravel还是有很大距离.
@copydog 嗯,那肯定的。毕竟是学的Laravel,关键是还年轻,不过我看中了它的趋势:统一编程语言。以后WEB前后端、混合APP甚至桌面端都可以用JAVASCRIPT来解决了。我们还得继续完善它的周边配套,后面会用于实际项目开发。
@copydog PHP就是集百家之长的光荣典范,Laravel更是把Java和C#的设计模式发挥得淋漓尽致,相信站在巨人的肩膀上的AdonisJs定不会让我们失望。
个人不是很喜欢文档的样式,文字有点太大了,code的配色也不是很理想,当然这不是译者的问题,英文文档就是这样的,希望以后能更好。
@genyii 话说, 啥时候, 中文社区可以上线啊?
@风吹枫落 多谢建议,已采纳
@copydog 首个预览版于下周一上线
这网页 adonis-china.org 目前 最好别工作期间打开 哈哈哈哈 可怕!