Re: [心得] 給網站初學者的建議:用RoR非常辛苦
我也覺得用 Rails 入門不好,
它本身並不協助你在基礎上進步
問題之一是本文說的 Convention
直接都幫你處理掉, 可是新手不會知道為什麼,
教學也缺乏說明
其次是做什麼都找 Gem 優先,
一個 Web App 動不動幾十上百個 Gem
是都可以自己研究自己刻啦, 我用也都是自刻比較多,
因為懶得找 Gem 跟研究 Gem 怎麼用,
可是新手...XD
真的能自刻的新手, 說真的不管用什麼也不會差到哪去
另一個問題是, 沒有 Convention 的地方就真的亂七八糟,
這點不只對新手, 對有相當程式開發經驗的人也很...有得玩 XD
比方說 Rake Task 本身極度缺乏 Life Cycle 的觀念,
導致很多東西都隨便自己做一套
例如 Minitest 根本就自己下 shell 指令另外起一個 Process 來跑,
所以在 Rake Task 裡存的資料跑 Test 時都抓不到,
這我之前追好久才發現, 根本不同 Process 不同 Runtime 當然抓不到 XDD
只好覆寫 Minitest 的模組來處理
總之 Rails 好用的前題,
要不然你已經經驗豐富對 Rails 及網頁基礎也摸得很深很熟,
或者就是不需要太複雜的功能吧
個人覺得拉
※ 引述《poopoo888888 (阿川)》之銘言:
: yo~小弟出社會工作兩三年了,有一些心得分享給想入門學寫網站的朋友:
: 用 Ruby on Rails 非常辛苦,用 PHP 非常舒服
: 網頁好讀版
: http://blog.turn.tw/?p=2881
: ------------------------------------------------------
: Rails是新手入門學寫網站最辛苦的選擇之一。
: 常常有文章或是課程建議新手用Rails入門寫網站,我認為這種建議十分危險。
: Rails並不適合初學者使用。推薦沒有資訊背景的人去學Rails,很可能害他事倍功半。
: 新手用Rails入門的問題在哪?
: Rails最大的問題就在於:它從一開始就不是設計給新手用的。
: 它是設計給工程師快速開發用的。
: 軟體工程沒有萬靈丹。適合老手的,對新手來說一定太難;
: 適合新手的,對老手來說一定太囉唆。
: Rails為了替工程師節省反覆設定(configuration)的時間,
: 而預設了許多立場(convention)。
: 新手連web application的基本知識、環境設定都不知道,
: 直接去學前人的framework和convention,絕對不是好事,也非常辛苦。
: 我們從Rails的官方入門導覽來舉例吧:
: http://guides.rubyonrails.org/getting_started.html
: 對新手來說,這份導覽真是充滿了災難。
: 它就跟大部份的rails教材一樣,會帶新手去學很沒必要的4件事情:
: 1. 新手沒必要學框架的檔案結構
: 2. 新手沒必要學框架的command line指令
: 3. 新手沒必要學helper
: 4. 新手沒必要學migration
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.164.214
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1455899305.A.7F0.html
→
02/20 00:30, , 1F
02/20 00:30, 1F
→
02/20 00:33, , 2F
02/20 00:33, 2F
→
02/20 00:34, , 3F
02/20 00:34, 3F
推
02/20 00:34, , 4F
02/20 00:34, 4F
→
02/20 00:37, , 5F
02/20 00:37, 5F
→
02/20 00:42, , 6F
02/20 00:42, 6F
→
02/20 00:43, , 7F
02/20 00:43, 7F
標重點
JavaScript was already painful enough in the browser,
why on earth anyone ever thought it was a good idea to
use it on the server boggles the mind.
XDD
※ 編輯: lovdkkkk (36.226.164.214), 02/20/2016 00:44:12
推
02/20 00:59, , 8F
02/20 00:59, 8F
→
02/20 01:07, , 9F
02/20 01:07, 9F
→
02/20 01:13, , 10F
02/20 01:13, 10F
推
02/20 01:17, , 11F
02/20 01:17, 11F
推
02/20 01:18, , 12F
02/20 01:18, 12F
→
02/20 01:18, , 13F
02/20 01:18, 13F
→
02/20 01:19, , 14F
02/20 01:19, 14F
→
02/20 01:19, , 15F
02/20 01:19, 15F
推
02/20 01:21, , 16F
02/20 01:21, 16F
→
02/20 01:21, , 17F
02/20 01:21, 17F
→
02/20 01:21, , 18F
02/20 01:21, 18F
→
02/20 01:21, , 19F
02/20 01:21, 19F
→
02/20 01:21, , 20F
02/20 01:21, 20F
→
02/20 01:22, , 21F
02/20 01:22, 21F
→
02/20 01:23, , 22F
02/20 01:23, 22F
→
02/20 01:24, , 23F
02/20 01:24, 23F
→
02/20 01:24, , 24F
02/20 01:24, 24F
→
02/20 01:25, , 25F
02/20 01:25, 25F
→
02/20 01:25, , 26F
02/20 01:25, 26F
→
02/20 01:25, , 27F
02/20 01:25, 27F
→
02/20 01:26, , 28F
02/20 01:26, 28F
→
02/20 01:26, , 29F
02/20 01:26, 29F
→
02/20 01:26, , 30F
02/20 01:26, 30F
→
02/20 01:29, , 31F
02/20 01:29, 31F
→
02/20 01:29, , 32F
02/20 01:29, 32F
→
02/20 01:32, , 33F
02/20 01:32, 33F
→
02/20 01:35, , 34F
02/20 01:35, 34F
推
02/20 01:36, , 35F
02/20 01:36, 35F
→
02/20 01:36, , 36F
02/20 01:36, 36F
→
02/20 01:36, , 37F
02/20 01:36, 37F
→
02/20 01:36, , 38F
02/20 01:36, 38F
→
02/20 01:37, , 39F
02/20 01:37, 39F
推
02/20 01:38, , 40F
02/20 01:38, 40F
→
02/20 01:39, , 41F
02/20 01:39, 41F
→
02/20 01:40, , 42F
02/20 01:40, 42F
推
02/20 01:41, , 43F
02/20 01:41, 43F
→
02/20 01:41, , 44F
02/20 01:41, 44F
推
02/20 07:59, , 45F
02/20 07:59, 45F
推
02/20 08:52, , 46F
02/20 08:52, 46F
個人判斷難易標準是,
有沒有一套 小量 單純易理解 一致性高 的知識,
能讓人快速入門並順利使用,
且不易因粗心造成錯誤
ruby 簡單在它提供了一套組織 code 的方式,
就是它的 class / module 系統,
這讓新手比較 "好理解"
JS 的 prototype 系統在稍微熟一點後很好用,
也可以用它實做 class / module 系統,
但是一開始比較不好理解
新手一開始立刻要半自立 (?) 地設法組織自己的 code,
難度會比較高,
更怕的是到處估狗來一堆不同風格的 code 混在一起,
埋地雷將來踩踩樂科科
然後像 scope chain, 一不小心漏個逗號自動變成全域變數,
或者 prototype chain 一不小心共用了一個 array,
再或者 strict mode 導致某些第三方 lib 不能動,
debug 就很有得搞了
另一個難點在它跟 server 濃在一起的時候,
client side 跟 server side 溝通再做事情,
或者 server 端連個 mongodb 要非同步,
有可能因時間差造成 bug
都蠻難追的,
ruby 這部份就單純多了, 不用 callback 來 callback 去,
平舖直敘寫下來就好
※ 編輯: lovdkkkk (36.226.164.214), 02/20/2016 10:20:31
→
02/20 10:21, , 47F
02/20 10:21, 47F
推
02/20 10:45, , 48F
02/20 10:45, 48F
→
02/20 11:16, , 49F
02/20 11:16, 49F
→
02/20 11:16, , 50F
02/20 11:16, 50F
推
02/20 11:26, , 51F
02/20 11:26, 51F
→
02/20 11:26, , 52F
02/20 11:26, 52F
→
02/20 11:26, , 53F
02/20 11:26, 53F
→
02/20 11:30, , 54F
02/20 11:30, 54F
→
02/20 11:31, , 55F
02/20 11:31, 55F
→
02/20 11:44, , 56F
02/20 11:44, 56F
推
02/20 16:00, , 57F
02/20 16:00, 57F
→
02/20 21:07, , 58F
02/20 21:07, 58F
→
02/20 22:00, , 59F
02/20 22:00, 59F
→
02/20 22:20, , 60F
02/20 22:20, 60F
→
02/21 11:53, , 61F
02/21 11:53, 61F
→
02/21 11:55, , 62F
02/21 11:55, 62F
→
02/21 11:56, , 63F
02/21 11:56, 63F
→
02/21 12:34, , 64F
02/21 12:34, 64F
→
02/21 12:37, , 65F
02/21 12:37, 65F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 8 篇):