1、http
http是web开发的前提基础
推荐书籍:HTTP Developer's Handbook(英文) 短小精湛,简洁实用
HTTP 权威指南 枯燥乏味,内容很长
2、REST
REST是Rails 框架里请求分发与资源管理的核心思想。读完了上面的那本关于 HTTP 的书,你就等于已经掌握了 REST 的基础知识。
3、前端及工作流
Rails 是一个 full-stack(全栈)框架,它对前端也有一整套解决方案,它拥抱最新的技术和实践原则。
对于初学者,你必须掌握基础的 HTML/CSS/Javascript。Rails 里有很多基础的机制,其实都是对前端技术的一种 Ruby 实现。不必掌握以上工具的细节,知道真正的前端开发的完整流程,每一种工具在里面扮演的角色是什么,这样才能理解为什么会有 Turbolinks、Assets Pipeline……等等,遇到问题才知道需要从何处入手去考虑,去查资料,去解决。
给你一个列表,不要求你学习它们的细节,但是你要知道它们是干什么的,它们解决了什么问题以及工作原理,它们在 Web 开发中的扮演的角色等等。换言之,别人问你这是什么,你应该用一两句话说清楚它们是什么:
HTML/Haml/Slim/ERB
CSS/Sass/Compass
Javascript/Ajax/Coffeescript/Turbolinks
JSON/Yaml/XML(这个是通用的,并非只有前端相关)
Rake/Grunt/Assets Pipeline
4、面向对象设计
归根结底,Rails 是一个基于面向对象的 MVC 框架,所以你得明白什么样的设计是基于面向对象的,MVC 式的分层设计。不过坦白的说,这是一个大坑,初学者很难很快的有所斩获。但是它也很关键,因为它经常回答下列类型的问题:
1 对于我想要开发的应用/功能,需要多少 models?对应的数据结构应该是什么样的?
2 对于这些应用/功能需要的行为,应该如何分发在 controllers 里?它们彼此之间如何通讯?如何传递数据?
3 对于 views 所需要的呈现,我该如何提取/构造/修饰数据或者数据集合?
4 什么样的情况下可以分拆/组合/……?
5 ......
5、关于 Ruby
学 Rails 要不要先学 Ruby?
如果你在此之前已经有了一门面向对象语言的扎实基础,比如 Python,Javascript,Java 等,那么学习 Rails 不一定要先学 Ruby,而且你肯定也知道该如何去针对性的学习 Ruby。
反之,如果你只有泛泛的学习过任何一门面向对象语言,甚至没有学习过别的语言,你一定需要先学 Ruby,否则 Rails 里一大堆的语法糖/元编程/DSL会把你搞的头晕眼花。
http是web开发的前提基础
推荐书籍:HTTP Developer's Handbook(英文) 短小精湛,简洁实用
HTTP 权威指南 枯燥乏味,内容很长
2、REST
REST是Rails 框架里请求分发与资源管理的核心思想。读完了上面的那本关于 HTTP 的书,你就等于已经掌握了 REST 的基础知识。
3、前端及工作流
Rails 是一个 full-stack(全栈)框架,它对前端也有一整套解决方案,它拥抱最新的技术和实践原则。
对于初学者,你必须掌握基础的 HTML/CSS/Javascript。Rails 里有很多基础的机制,其实都是对前端技术的一种 Ruby 实现。不必掌握以上工具的细节,知道真正的前端开发的完整流程,每一种工具在里面扮演的角色是什么,这样才能理解为什么会有 Turbolinks、Assets Pipeline……等等,遇到问题才知道需要从何处入手去考虑,去查资料,去解决。
给你一个列表,不要求你学习它们的细节,但是你要知道它们是干什么的,它们解决了什么问题以及工作原理,它们在 Web 开发中的扮演的角色等等。换言之,别人问你这是什么,你应该用一两句话说清楚它们是什么:
HTML/Haml/Slim/ERB
CSS/Sass/Compass
Javascript/Ajax/Coffeescript/Turbolinks
JSON/Yaml/XML(这个是通用的,并非只有前端相关)
Rake/Grunt/Assets Pipeline
4、面向对象设计
归根结底,Rails 是一个基于面向对象的 MVC 框架,所以你得明白什么样的设计是基于面向对象的,MVC 式的分层设计。不过坦白的说,这是一个大坑,初学者很难很快的有所斩获。但是它也很关键,因为它经常回答下列类型的问题:
1 对于我想要开发的应用/功能,需要多少 models?对应的数据结构应该是什么样的?
2 对于这些应用/功能需要的行为,应该如何分发在 controllers 里?它们彼此之间如何通讯?如何传递数据?
3 对于 views 所需要的呈现,我该如何提取/构造/修饰数据或者数据集合?
4 什么样的情况下可以分拆/组合/……?
5 ......
5、关于 Ruby
学 Rails 要不要先学 Ruby?
如果你在此之前已经有了一门面向对象语言的扎实基础,比如 Python,Javascript,Java 等,那么学习 Rails 不一定要先学 Ruby,而且你肯定也知道该如何去针对性的学习 Ruby。
反之,如果你只有泛泛的学习过任何一门面向对象语言,甚至没有学习过别的语言,你一定需要先学 Ruby,否则 Rails 里一大堆的语法糖/元编程/DSL会把你搞的头晕眼花。