Soft_Job 板


LINE

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 1. 新手没必要学框架的档案结构 新手打开导览之後,映入眼帘的,是这个介绍档案结构的吓人表格: FILE/FOLDER PURPOSE app/ Contains the controllers, models, views, helpers, mailers and assets for your application. You’ll focus on this folder for the remainder of this guide. bin/ Contains the rails script that starts your app and can contain other scripts you use to setup, deploy or run your application. config/ Configure your application’s routes, database, and more. This is covered in more detail in Configuring Rails Applications. config.ru Rack configuration for Rack based servers used to start the application. db/ Contains your current database schema, as well as the database migrations. Gemfile Gemfile.lock These files allow you to specify what gem dependencies are needed for your Rails application. These files are used by the Bundler gem. For more information about Bundler, see the Bundler website. lib/ Extended modules for your application. log/ Application log files. public/ The only folder seen by the world as-is. Contains static files and compiled assets. Rakefile This file locates and loads tasks that can be run from the command line. The task definitions are defined throughout the components of Rails. Rather than changing Rakefile, you should add your own tasks by adding files to the lib/tasks directory of your application. README.rdoc This is a brief instruction manual for your application. You should edit this file to tell others what your application does, how to set it up, and so on. test/ Unit tests, fixtures, and other test apparatus. These are covered in Testing Rails Applications. tmp/ Temporary files (like cache, pid, and session files). vendor/ A place for all third-party code. In a typical Rails application this includes vendored gems. 初学者一开始只想做个部落格或是个人网页而已,真的有必要去面对这麽多档案吗? 这种架构是框架替工程师的软体专案长远着想,而详细分工的结果。 新手并没有要开发大型专案,做出几个能跑能动的页面就够了。 结构或是程式码丑一点无所谓,好上手就好,实在没必要一开始就碰这麽复杂的。 2. 新手没必要学框架的 command line指令 官方导览介绍了产生controller相关档案的指令: $ bin/rails generate controller welcome index 然後rails会显示以下讯息: create app/controllers/welcome_controller.rb route get 'welcome/index' invoke erb create app/views/welcome create app/views/welcome/index.html.erb invoke test_unit create test/controllers/welcome_controller_test.rb invoke helper create app/helpers/welcome_helper.rb invoke assets invoke coffee create app/assets/javascripts/welcome.js.coffee invoke scss create app/assets/stylesheets/welcome.css.scss 只不过想做个简单页面,居然跑出了好几个档案。对新手来说,这非常不友善。 新手想要的,是在资料夹里面一次建立一个档案,然後在里面写一点东西。 接着看看程式有什麽反应、跑不跑得动。这样他才知道自己在做什麽、在学什麽。 像这种打一个指令产生一堆档案的学习方法,就算真的「快速做出了一点东西」, 之後大概连怎麽修改程式都不知道。如此黑箱,很容易带来挫折感。 3. 新手没必要学helper 官方导览提到了Form的写法如下: <%= form_for :article do |f| %> <p> <%= f.label :title %><br> <%= f.text_field :title %> </p> <p> <%= f.label :text %><br> <%= f.text_area :text %> </p> <p> <%= f.submit %> </p> <% end %> 这完全是灾难一场。 新手该学的不是这种ERB语法,而是原始HTML的Form element语法: <form> <label>title</label> <input /> <label>text</label> <textarea></textarea> </form> Form element的语法一点都不难,网路上到处找都有。 新手学HTML基本知识就够了。接着再学一些HTTP的基本知识, 了解浏览器如何将表单的资料丢给後端程式互动。 学这些基本知识才踏实、才有成就感。 helper是工程师为了少写HTML而使用的进阶工具。 初学者连基本的HTML都不会,学什麽helper?徒然增加挫折感而已。 4. 新手没必要学migration migration是工程师方便管理资料库结构的版本,以及在团队成员间同步化的工具。 初学者根本没有这种管理资料库的需求。 新手如果要学资料库操作,应该去学资料库软体(譬如说MySQL)本身的语法,这样才会有 学到资料库操作的扎实感觉。 如果是一开始不想学资料库语法的新手,那更不应该去学migration。 他应该去安装一款有图形化介面的资料库管理软体, 用滑鼠按一按把资料表做出来就可以了。 初学者最舒服的学习路径:PHP + 懒人包 初学者对於开发网站的想像,不外乎就是「写几行程式码,做出几个小页面」。 他一开始对於环境安装与调整没有兴趣,也负荷不来。 这个时候,使用PHP搭配懒人包开发会是最舒服的路径。 学写网站至少要碰几个东西: HTML CSS client-side programming (JavaScript) server-side programming (ex: Ruby on Rails 或是 PHP) 资料库 架server 我对新手学习的建议是这样的: 1. HTML和CSS几乎没有入门门槛,线上随便找教材都有。 2. JavaScript主要是用来做浏览器上的一些动态效果,非必要。一开始先不学。 3. 资料库跟架server一开始超出新手想像,可以先安装懒人包带过。 4. server-side programming才是新手原本理解的「学写网站」。 基於以上四点建议,新手一开始把心力放在1、4即可,然後从以下懒人包择一安装: AppServ Wamp Xampp 这些懒人包会直接帮你装好server、资料库与PHP。 资料库相关的操作可以先透过phpMyAdmin之类的软体用滑鼠操作。 接着在线上找PHP教学之类的东西,以「一个档案就可以做出一个网页」的方式开始学习。 在懒人包的协助下,按照兴趣慢慢摸索HTML, CSS和PHP的知识。 之後再根据目标,从以下三个方向更进一步学习: 急着让网站上线者,可以把程式码交给工程师朋友,请他帮忙买网址、架起来。 对server side工程有兴趣者,可以补强资料库、伺服器等等知识。试着不依靠懒人包就独 立搞定环境、挑一个框架学习之类的。 对client side工程有兴趣者,可以补强JavaScript的知识,学习前端相关知识。 入门最重要的是循序渐进,先想办法做出一个能动的网站, 之後再根据需求,把缺少的技能一个一个补起来。 在「实作出成品」与「学习新知识」之间来回进行,反覆累积成就感与能力。 一口气全部一起学,只会非常茫然、倍感挫折而已。况且根本没有必要。 用Rails就更惨了,在一开始就得学一些工程师用的进阶手法。 总结起来,我给网站初学者的建议就是:用Ruby on Rails 非常辛苦,用PHP非常舒服。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.161.170.51
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1455884032.A.A44.html ※ 编辑: poopoo888888 (1.161.170.51), 02/19/2016 20:16:42
1F:→ manaup: PHP是最好的语言!!! 02/19 20:20
2F:推 CrystalNik: 推 02/19 20:29
3F:推 WorkForFree: 02/19 20:42
4F:推 synd: 大神表示: 02/19 21:08
5F:推 kenny61410: 推 02/19 21:24
6F:推 etoanik: 大家都不再鄙视PHP了吗 XD.... 02/19 21:34
7F:推 ddoll288: RoR 薪水还是屌打 PHP 啊 02/19 21:38
8F:推 NCUking: 屌打?? FB工程师表示:... 02/19 21:42
9F:→ infit: 屌打?所以哪个语言框架薪水高就学该语言吗? 02/19 21:45
10F:推 NCUking: MmNRP一狗票人用最不潮的C 待遇屌打潮潮的Ruby 02/19 21:50
11F:→ mepowerlmay: 屌打?上次看到台中要ror 给50k的样子.... 02/19 21:52
12F:推 kai5566: 那nodejs呢? 02/19 21:53
13F:推 johnny94: PHP近期也算浴火重生了啦 02/19 21:56
14F:→ manaup: TIOBE2015兵器谱排名 PHP屌打Ruby跟javascript 02/19 21:57
15F:→ billy0131: 我怎觉得是有毒文...而且为什麽独厚PHP... 02/19 21:58
16F:→ billy0131: python也有light-weight web framework如bottle, flask 02/19 21:59
17F:推 Yshuan: 推 我觉得要循序渐进 由前而後 02/19 22:08
18F:推 descent: 基本知识还是要理解 02/19 22:10
19F:推 aiyswu: node.js比php还要懒吧 02/19 22:10
20F:推 vn509942: 需要啥就用啥 02/19 22:19
21F:嘘 q26766: 又是一个用语言跟框架比的 02/19 22:27
22F:推 fo40225: 楼上 问题是ruby很少有超轻量级的web solution的讨论 02/19 22:34
23F:→ fo40225: 原PO意思就是不要让新手碰RoR PHP刚好是一个无框架好上手 02/19 22:36
24F:→ fo40225: 的选择 这也是PHP当初设计的中心思想 02/19 22:37
25F:推 littleshan: 呃,ruby明明就有sinatra不是吗 02/19 22:39
26F:嘘 q26766: 那何不用laravel ci 来比看看 02/19 22:39
27F:推 fo40225: 所以要直接请新手上laravel的意思? 完全没碰过前後端的? 02/19 22:49
28F:→ fo40225: 如果是我会推新手用ASP.NET Web Pages 2 w/ Razor syntax 02/19 22:51
29F:→ fo40225: 来上手 这也是简单的选择 未来要上ASP.NET MVC也可衔接 02/19 22:51
30F:→ fo40225: 教学网址 http://tinyurl.com/oaqodru 02/19 22:51
31F:→ fo40225: http://tinyurl.com/z3krnga也不一定要照教学用WebMatrix 02/19 22:51
32F:→ fo40225: Visual Studio Community 2015也行 这东西的问题大概就在 02/19 22:51
33F:→ fo40225: 能见度太低 以及是微软的技术就会被黑吧 02/19 22:51
34F:→ INTJ: asp.net中文书超多超齐~ php在books搜寻的第一个结果... 02/19 22:57
35F:推 fo40225: ASP.NET的问题在於不能掉到Webform的坑里XD 02/19 22:58
36F:嘘 q26766: 他如果想表达fw对新手不友善怎不使用laravel 做比较? 02/19 22:59
37F:嘘 q26766: 而是选择一个一个跟php压根没关系的FW 来战 02/19 23:04
38F:→ hgkiller01: 学.net 千万不要掉到WebForm的坑...因为完全不了解Web 02/19 23:05
39F:→ hgkiller01: 的运作原理就去学Webform的确很快 拉一拉就有东西了 02/19 23:06
40F:推 fo40225: 因为没人会推新手学laravel 可是会有人推新手学RoR 02/19 23:06
41F:→ hgkiller01: 但是相对的如果你不了解JS CSS HTML就只会拉一拉控制 02/19 23:07
42F:→ hgkiller01: 项 的方法已经不能满足目前使用者对Web的需求 观念不 02/19 23:08
43F:→ hgkiller01: 正确以後 要满足一些需求都做不到 02/19 23:09
44F:推 q26766: 你这句有点忠肯 02/19 23:14
45F:推 fo40225: Webform是微软当年挖给视窗开发人员跳的 Java相对应的jsf 02/19 23:16
46F:→ fo40225: 都不知道去哪了 Webform还活着 02/19 23:16
47F:推 Blueshiva: 推新手学PHP,这样我们才有SQL injection可以玩 XD 02/19 23:21
48F:推 fo40225: 所有的SQL教学都应该要标注不可组合SQL字串与使用参数化 02/19 23:24
49F:→ fo40225: 查询才对...... 02/19 23:24
50F:→ fo40225: 应该说 不可组合来自使用者输入的字串成为SQL指令 02/19 23:25
51F:嘘 BignoZe: 你自己用 lavaral 然後叫别人不要不要用 Ruby on Rails ? 02/19 23:49
52F:推 vi000246: .net有不错的进阶书 不知php比较进阶的书是什麽 02/20 00:03
53F:推 EQQD: 是因为php 7.0效能跃进 所以浴火重生吗XD? 02/20 00:29
54F:推 sp063439: 所以 ror 的缺几乎都找 senior,呜呜 02/20 00:38
55F:→ johnny94: 其实他常常发这种争议文啦…像之前的 MVC 也是 02/20 00:55
56F:推 Argos: 为何ROR不跟Laravel比?我想是程式语言的「目标」的关系吧 02/20 01:01
57F:→ Argos: Ruby一开始不是锁定在Web使用 所以要拿来做网站就一定要装 02/20 01:02
58F:→ Argos: 一些东西 那PHP一开始就是为了网站而生 配套的懒人包也有人 02/20 01:02
59F:→ Argos: 做好好 一键安装完就能直接在html码写程式 对新手来说真的 02/20 01:03
60F:→ Argos: 方便太多太多这是事实 要知道 真正的新手 说不定连AppServ 02/20 01:04
61F:→ Argos: 一键安装完都可能会出问题... 02/20 01:04
62F:→ Argos: 简单说现在Ruby就是缺少一种像AppServ这样的懒到不能在懒的 02/20 01:05
63F:→ Argos: 超懒包 快写信给Matz桑跟DHH请他们也弄一个啊XDD 02/20 01:10
64F:推 sp063439: 用肉卷开 vm 阿(?) ref. tinyurl.com/j4zrlhb 02/20 01:14
65F:推 jessichiou: 推,程式能力可以继承,但是从framework不去读source 02/20 04:14
66F:→ jessichiou: code注定悲剧 02/20 04:14
67F:推 rugia813: 想请问如果已经学了一阵子的RAILS是应该继续下去还是 02/20 08:35
68F:→ rugia813: 重新学PHP呢? 最近看了一下104,RAILS职缺超少 又没新 02/20 08:36
69F:→ rugia813: 手缺... 02/20 08:36
70F:→ rugia813: 可是重学PHP又不知道要再花多久 02/20 08:37
71F:推 coronach: 用RoR比PHP很怪,应该提倡的是新手应该先学好基本再用Fr 02/20 09:32
72F:→ coronach: amework 02/20 09:32
73F:推 johnny94: 学了一阵子 ror 如果还可以上手,干嘛再换回去PHP 02/20 11:33
74F:→ spjay1: 小鲁有菜鸟铁路工经验 但还是收到很多无声卡 02/20 12:38
75F:→ hgkiller01: 其实.net MVC 和ROR的架构很像而且很适合初学XD 02/20 18:25
76F:嘘 MarsZ: 学 rails 的过程的确颇辛苦的,不过连这苦都过不了的话... 02/20 22:20
77F:→ MarsZ: 建议还是去卖鸡排吧 XD 02/20 22:21
78F:推 amazing2014: 推.NET MVC 基础观念引入清晰 注意WebForm 02/20 22:48
79F:→ montano: django... 02/21 02:56
80F:推 goldflower: 卖鸡排不一定会输啊 02/21 23:36
81F:推 PolarGG: 我是HTML-> CSS-> javascript-> MVC架构->mysql 02/29 15:21
82F:→ PolarGG: 还有PHP 我是有写过C拉所以PHP很多部分是在学架构不是语 02/29 15:22







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灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP