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/m.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燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP