原文:http://www.douban.com/note/512945304/ ,欢迎建议
这是参加Rails Girls之后写的,最开始想发这边,不过感觉这里工程师大概占90%了(剩下10%是HR),倒没有太多初学者会来看,所以一直没发
实际上,也不是0基础的教程。原标题为Rails in Plain Language,即用浅显的语言,告诉准备学习Rails的同学们,Rails到底是什么。用这个标题,是为了让‘“需要”这篇文章的人,发现这个内容。毕竟,0基础的人,是不会知道自己应该先了解HTML,CSS和JS的

==================================================
目标读者:完全0基础的人,Rails Girls

大多数教学, 都太有条理了。先讲概念, HTML是什么,CSS是什么,HTTP请求是什么....但是一次性听到这么多陌生的概念,很容易晕的。过于抽象了,所以试着写一篇
based-on experience, not concept的介绍,来帮助大家入门Rails

Rails是做什么的?做网站的,你知道什么是网站(比如淘宝,知乎),Rails能做这些,就行了

1. 网站->网页->按钮
我们要做的是什么?是网站,那么以知乎为例好了

这样一个网站,是怎么和“代码”,Rails联系起来的呢?
这个太复杂了,我们不如只看他的首页(上图)
就拿这个页面来说,他是有3部分构成的,HTML,CSS,JS。不过这样说,依然没有什么用
我们只拿出其中的一个按钮,来解释这个概念

我应该怎么来写代码,来实现这个按钮?
这个时候,就要用到HTML了,代码如此:

      <button class="sign-button submit" type="submit">注册知乎</button>

写好以后,生成的就是按钮了(如图)

"靠,可是这也差得太远了吧?这两个怎么能是一个东西呢!!",你可能会想
但是他的功能,是不是都是一样的呢?(都是“点击”)
这个时候,就用到CSS了。(不要在意代码具体什么意思,知道这是CSS就行了)

(至于JS,可以以后再说)
上面想说的就是,我们看到的网页,都是用HTML,CSS,JS写的:HTML来说明这个内容是什么,CSS来让这个内容变好看(How it looks)。这里说的是按钮,其实,网页上的所有这些文字,标题等等都是这样,都是HTML+CSS+JS写的,如下图的头像,链接等等

再举个例子,上面的指向某个问题的链接
纯粹的HTML,以及加上CSS来改变他的样子之后

小结一下,上面介绍了什么是HTML,CSS,(JS)
[如果有任何问题,可以直接提问]

2. 难道要重复写很多遍吗?
再看知乎里面的“发现”页面,一条一条的“回答”
这些“回答“的结构,都是相似的。那是不是,我们的代码就要这样一条一条的写下去呢...?

显然,这太麻烦了,所以要用到循环,也就是用编程语言(e.g. Ruby)来做 (e.g for loop )
或者,想根据用户登录/未登录的状态,来调整页面的内容

这里,知乎对于未登录的用户,会有登录的按钮;登录的用户,则显示消息,头像等等。这就用到了编程的东西(if else判断)

[if else, for loop,这些应该还能理解吧?]

3. 怎么实现注册功能?
上面,我们讲到了看到的网站是如何由代码构成的
不过,写到这里,你可能还在想,这不拖拖拽拽就行了吗?e.g. Dreamwaver, front page等软件
确实如此。

不过,我们怎么实现“用户注册”的功能呢?
这个时候,就不仅仅是”循环“、”判断“了。显然,这时候,要涉及到更多更为复杂的逻辑
这个时候,就要用到Rail了,我们要用他来实现——注册、登录的功能,发帖的功能,提问的功能,点赞的功能等等等

所以,Rails就是用来实现这些“功能的”。这里不再举例子了,因为太复杂,只提几个问题,让大家思考一下,拿论坛发帖子来说:
我们怎么实现“创建”一个帖子的功能?又怎么“修改”,怎么“删除”?
这下,应该能感到这些功能的复杂了。不过,现在依然不用深究,只要知道Rails是用来处理这些复杂逻辑的东西,就行了
(此外,我们有这么多用户的数据,帖子的数据,点赞的数据,就又牵扯到数据库了)

4. 小结
到这里,我们主要介绍了:
什么是HTML + CSS +JS (显示网页)
什么是Ruby on Rails (复杂的逻辑功能)
前面的,就是我们所说的前端,后者,就是常称的后端

如果你下次还有疑问的话,不妨顺着这个思路理一理:
“网页是由什么构成的?”
“怎么实现注册的过程?”
“网站上有这么多数据,怎么保存?”

“可是我想要设计一个很漂亮的网站诶.....”,那个是设计师做的
对于一个网页来说,设计师决定这个按钮的颜色,阴影,怎样才好看
而前端工程师(HTML CSS JS),来负责用代码实现这些东西(写具体的代码)
比如设计师说,希望这个按钮是蓝色的,那么工程师就根据这个要求写具体的代码:

    button {color:blue}

对于小的startup来说,可能最开始就直接写代码做完了,不会有专职的设计师

5. 那么,我接下来该怎么学习Rails呢?
好了,写到这里,应该基本了解什么是Rails了(其实主要介绍的是前端),接下来的问题可能就是:那我应该怎么学会Rails,来自己做网站呢?
不过我先懒得写了,如果有足够的人需要的话,再继续写吧

0 基础怎样开始学习做网站 (Ruby on Rails)?相关推荐

  1. 【天赢金创】0 基础怎样开始学习做网站 (Ruby on Rails)?

    这是参加Rails Girls之后写的,最开始想发这边,不过感觉这里工程师大概占90%了(剩下10%是HR),倒没有太多初学者会来看,所以一直没发 实际上,也不是0基础的教程.原标题为Rails in ...

  2. 0基础学怎么学习python

    ​ Python相对于其他编程语言来说是比较简单的,非常适合零基础的小白学习,想要进入到互联网行业,可以优先选择学习Python,那么下面小编就来为大家详细的介绍一下0基础学怎么学习python? ​ ...

  3. 0基础小白想学习软件测试,应该如何选择培训机构呢

    其实关于培训机构如何选择这件事儿,我相信大家是真的用心在筛选,看了这篇文章争取让大家少踩些坑,让钱花的更值得. 0基础小白想学习软件测试,应该如何选择培训机构呢 01师资配置 看一家IT培训机构的团队 ...

  4. 最新的适合0基础的Java 学习路线,(附视频教程)不仅仅是Javaweb还有大数据哦

    老读者都知道,鸟哥是一个半路出家的程序员,资质平平,学历垃圾,当年靠淘宝15元一份的教程自学,入行至今.在自学编程方面多少还有自己的心得和经验.今天我就结合自己的自学经验为像我一样的菜鸟们量身制作一份 ...

  5. 0基础入行学习软件测试有哪些要求?往往只有这3点

    随着互联网企业的快速发展,对软件测试工程师的需求不断增加,同时也有很多人开始转行学习软件测试.虽然软件测试的学习难度相较于其他的编程语言要简单很多,但这并不意味着所有人都适合学习软件测试.那么,零基础 ...

  6. 刚入行的软件测试工程师如何自学软件测试?0 基础该怎么学习软件测试

     从题干上看,你是已经进入了软件测试行业,有了一份软件测试的工作,那表示你看好这个行业,有意愿在这个行业持续发展.   软件测试相对一些开发的专业来说,需要了解的东西特别多,拿一些招聘简章中的要求来看 ...

  7. 0基础如何开始学习计算机知识?

    一.计算机的基本操作 计算机中只有文件和文件夹 计算机中,只有两样东西,文件和文件夹. 文件夹:本身不存储数据内容.文件夹是用来组织和管理文件的. 文件: 所有的txt文本文档,音乐,视频,图片等都属 ...

  8. 0基础该怎么学习软件测试?

    今天就在这给大家推荐三种学习的方式: (1)自学:(2)技术大牛帮助:(3)参加培训. 一丶自学 自学在更大程度上取决于当今互联网产业的发展,衍生出更多的在线学习平台和各种网络资源. 例如,腾讯课堂. ...

  9. 日语0基础—N1的学习资料,百余套~ (提供链接直接下载)

    很多刚开始学日语的小伙伴,最头疼的莫过于就是找资料吧.在这里给大家准备了一份系统化.高效率的学习资料,无论是对于出于兴趣学习日语的小伙伴,还是准备申请日本大学或者高考加分的朋友们,我特意将所有资料进行 ...

最新文章

  1. 机器学习中的分类距离
  2. 怎么修改CSDN上传图片水印的字体大小?(去水印)
  3. AQO.NET实现数据操作封装
  4. 2020双十一实时大屏_2020拼多多双十一,拼多多双十一活动
  5. 【HDU - 5916】Harmonic Value Description (构造,思维,SJ题)
  6. jsp中String path = request.getContextPath()的作用
  7. 区块链软件公司:食品溯源+区块链
  8. Hive安装详细教程
  9. thinkPHP开发的彩票网站源码,含pc端和手机端
  10. python 拼音 英文识别_识别同音字词pypinyin, 分词 jieba
  11. Ticket验证异常org.jasig.cas.client.validation.TicketValidationException:
  12. Learned Image Compression with Discretized Gaussian Mixture Likelihoods and Attention Modules文献复现
  13. ggplot多图叠加_R作图 ggplot2图片的布局排版
  14. word分页符的删除
  15. 官宣!2023ACP世界大赛晋级赛名单公布!
  16. 寒假还在纠结考研还是就业,听听研究生毕业的上班狗怎么说?
  17. 今日头条阅读量怎么刷_怎么刷今日头条阅读量?
  18. 对学习软件“佳佳儿童乐园”的测评
  19. ERP系统解决工艺流程管理痛点,全维监控,智连未来!
  20. 基于改进的K-means算法在共享交通行业客户细分中的应用

热门文章

  1. 如何通过PHP语言设计出登录验证码(条型码)
  2. 成功解决:不允许有匹配 “[xX][mM][lL]“ 的处理指令目标。
  3. C语言-volatile关键字
  4. 使用JavaScript代码判断输入的字符串是否含有特殊字符和emoji表情代码实例
  5. 离散数学(1)---集合论
  6. 代码实战硬件断点hook
  7. TinyPNG客户端
  8. MATLAB关于偏相关系数,基于matlab的逐像元偏相关分析
  9. 常用元器件使用方法34:DCDC电源模块B1205XT-1WR3
  10. platform设备驱动全透析(转自宋宝华老师)