Soft_Job 板


LINE

很同意原 PO 的看法,想就自己的经验分享一下想法 首先,有人提出的疑问是:「你拿框架跟程式语言比?」 框架跟程式语言为什麽不能比?只是要看比的是什麽而已 Ruby on Rails(以下简称 Rails) 的目的是开发网站,php 的目的也是开发网站 「Ruby on Rails 跟 PHP 在开发网站上,PHP 是比较适合新手的」 我想这应该就是原 PO 那篇想要表达的想法 前提是两者的目的同样是开发网站,我不认为这样有何不妥 回归到正题,我自己也认为 Ruby on Rails 对於新手「极度不友善」 先来说说我自己初学的时候(没有任何写网页基础)碰到 Ruby on Rails 的经验 当时自己看着几篇线上的教学加上买书来看,就跟着范例做 很快的,一个网站就出现了!而且有基本的 CURD 功能 可是问题是,我不知道怎麽会这样 为什麽我这个函式明明什麽都没写,就可以产生内容? 我又没有明确表示说这个路径要连结到哪个地方,怎麽会这样? 这就是 Ruby on Rails 最强大的武器之一:Convention 惯例优於配置(convention over configuration)一直是主打的点 因为什麽都帮你弄好了,所以你几乎一行 code 都不用写 接着就是你要去记一堆惯例 例如说 RESTful 架构,哪个 action 对应到哪一个 controller 哪一个 contoller 又对应到 models 里面的哪个动作 Ruby on Rails 可以快速做出一个网站,这是无庸置疑的 但是如果你要修改、增加新功能的话,对新手来说绝对不是很好上手 在学会这些之前,他必须要先了解所有跟 Rails 这个框架有关的东西 这些原 PO 之前有提到了,像是档案结构、migration、helper 等等 可是这些东西不管学哪一个框架都会用到,所以也无法避免 这也不是 Rails 的错,因为我跟原 PO 一样 认为「Rails 本来就不是给初学者用的」 刚开始学的时候会非常,非常辛苦 Rails 的学习曲线刚开头就是超级无敌陡峭,PHP 则是平滑许多 我认为在学习许多事情的时候 你要知道「为什麽会是现在这样」,才会有更多的了解 你必须对演变的过程略知一二 例如说:为什麽 Ruby on Rails 会比较难上手? 或是,为什麽程式语言需要一个框架? 可以先想到没有框架的时候,像是 PHP 很快、很好上手,但是当网站架构变大的时候,缺点就显露出来了 没有固定的规则、每个 PHP 混杂一堆程式逻辑跟 html 这个时候你就知道说为什麽要有 view,要有 template 这种东西了 因为 html 如果跟程式码写在一起很难维护,所以我们需要 view 来做这件事 或是,为什麽会有 RESTful 架构? 先想一下没有这个架构之前,假设我要开发一个部落格网站 我的 URL 可能会是 /view.php?id=123 /edit.php?id=123 /createArticle.php?id=123 /removeArticle.php?id=123 一百个人有一百种 URL 的定义方法,这就会让团队合作变得困难 如果让这些命名方式统一,大家都一样,就没有这些问题了 於是就开始用 RESTful 架构来设计网站了 再举两个例子,第一个是 design pattern 如果你对程式初学者,或甚至是 junior 教设计模式,他可能很无感 他听的懂工厂模式在干嘛、装饰者模式在干嘛,但是他不知道可以怎麽用 因为他根本不知道为什麽需要这些 可是当他自己写出难以维护、耦合性很高的程式码,每天 debug 到崩溃的时候 有一位资深工程师说:你看,你这个可以改成工厂模式喔,就不用一直复制贴上了 他才恍然大悟:阿!原来工厂模式是这样用的! design pattern 本来就是软体工程不断演进才出现的东西 因为工程师发现这些方法比较好,所以才归纳出这些 而不是从一个凭空出现这些,这些都是前人的惨痛经验阿! 可是当你没有那些惨痛经验的时候,你就很难了解为什麽需要这些东西 最後一个例子,依旧很夯的 React 你找一个新手然後开始教他 React,先从 ES6 开始,跟他说这个很好用喔 接着要跑起来的时候教他用 Babel,跟他说没这个不能跑,这个很好用喔 Debug 的时候用 webpack,跟他说这个很好用喔,可以自动载入 初学者:我只是想学个网页,怎麽那麽多东西要学? 同场加映这篇:前端的对话 http://andyyou.logdown.com/posts/290465-essay-the-front-of-the-dialogue 结论就是, 新手要学 Ruby on Rails 当然可以,但最好边学边了解这些设计「为什麽会是这样」 才不会学了上层的东西,底层的东西一概不知,基础很不稳 但我还是推荐初学者不要挑战 Ruby on Rails,而是从 PHP 开始 因为 PHP 相较之下非常适合初学者,当你了解 PHP 基本功能之後 再考虑重新去学习 Ruby on Rails,你一定会有更多的体会! 最後附上我自己认为比较好的学习流程: 1. 基本的 html, css 这些你就编辑器打一打、存档就可以看到结果了 2. 基本的 javascript + jquery,一些简单的语法就可以操控你的网页 3. 用 Scratch 教程式语言基础,很推荐这套 4. 用 browser 教网页基础 开 chrome dev tool 让他看看:request -> server -> response -> render 这段流程 5. 用 php 教如何写网页 这些都会了之後,再选择你想往前端还是後端 前端的话就去找:scss/sass, RWD, Angular, React, Vue 等等 後端话就去找:Laravel, Ruby on Rails 等等 至少先有基础的知识,之後再学其他东西的时候,才不会那麽不知所措 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.216.67.187
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1455938166.A.730.html ※ 编辑: Y78 (61.216.67.187), 02/20/2016 11:21:45 ※ 编辑: Y78 (61.216.67.187), 02/20/2016 11:22:45
1F:推 uid88: 说好(以下简称 Rails),结果还是用Ruby on Rails比较多 02/20 11:51
2F:推 Elohim123: 02/20 13:51
3F:推 chan15: 为什麽不是 PHP 学一学去玩 Laravel? 02/20 21:42
4F:推 Mtcat: 02/20 22:44







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP