นี่คือประสบการณ์การเรียนรู้การเรียนรู้อย่างต่อเนื่องและการเขียนแอปพลิเคชันที่ค่อนข้างง่ายใน Rails
1) Curve การเรียนรู้
Rails นั้นหลอกลวงง่าย บทเรียนวิดีโอและหนังสือทั้งหมดแสดงให้เห็นว่าคุณสามารถใช้งานแอปพลิเคชั่น (ถ้าน่าเกลียด) ได้รวดเร็วแค่ไหน แต่สิ่งเหล่านี้เป็นเพียงรอยขีดข่วนบนพื้นผิว พวกเขามักจะพึ่งพาการสร้างรหัสอย่างมากและ "การนั่งร้าน" ซึ่งเป็นที่ยอมรับว่าเป็นเครื่องมือที่ดีเมื่อเรียนรู้
ไม่ผิดพลาด Rails เป็นเรื่องยากที่จะเชี่ยวชาญ เมื่อคุณได้รับข้อมูลพื้นฐานเบื้องต้น (เพิ่มเติมในภายหลัง) คุณจะต้องวิ่งไปที่กำแพงหากคุณต้องการฟังก์ชั่น "แอพตัวอย่าง" ที่เรียบง่ายซึ่งคุณเห็นว่ามีการโน้มน้าว คุณสามารถรับความรู้พื้นฐานของ Ruby ในขณะที่เรียนรู้ได้ แต่คุณต้องรีบรับ Ruby มิฉะนั้นคุณจะต้องอยู่ในที่สูงและแห้ง (และไม่ใช่ประเภทที่ดีDRY
) หากคุณต้องการออกไปข้างนอกข้อ จำกัด ของ Rails
ทางรถไฟเป็นอย่างที่ผมชอบที่จะเรียกมันในทางที่รักการวาดโดยตัวเลขการเขียนโปรแกรม หากคุณติด 100% ของการประชุม (เช่นอยู่ในเส้นและใช้สีที่คุณบอกให้ใช้) คุณสามารถสร้างแอปพลิเคชันที่เหมาะสมได้อย่างรวดเร็วและง่ายดาย ถ้าและเมื่อไหร่ที่คุณต้องเบี่ยงเบนแม้ว่า Rails สามารถเปลี่ยนจากเพื่อนที่ดีที่สุดไปเป็นศัตรูที่เลวร้ายที่สุดของคุณได้
2) เมื่อสิ่งที่คุณมีคือค้อน ...
Rails ใช้งาน CRUD อย่างง่ายได้ดีมาก ปัญหาเกิดขึ้นเมื่อแอปของคุณต้องทำมากกว่าอ่าน / เขียนจากฐานข้อมูล ตอนนี้สำหรับบันทึกรุ่น Rails ล่าสุดที่ฉันใช้คือ 2.3.4 ดังนั้นสิ่งต่าง ๆ อาจเปลี่ยนแปลงไปตั้งแต่นั้นมา แต่ฉันพบปัญหาสำคัญเมื่อความต้องการทางธุรกิจเปลี่ยนไปดังนั้นแอปพลิเคชันจึงต้องมีระบบเวิร์กโฟลว์ขนาดเล็กติดตั้งอยู่ภายใน แอปพลิเคชั่น PHP รุ่นเก่า การประชุม Rails ของ "หนึ่งรูปแบบหนึ่งแบบจำลอง" ใช้ได้ดีสำหรับแอพพลิเคชั่นเล็ก ๆ น้อย ๆ และแอพพลิเคชั่นการป้อนข้อมูล แต่ไม่มากเมื่อคุณต้องการประมวลผลเชิงตรรกะหรือมีเวิร์กโฟลว์หรืออะไรก็ตามที่ไม่ใช่ "ผู้ใช้ทั่วไป ฟิลด์ข้อความสองสามรายการส่ง "ประเภทของสิ่งต่างๆ มันสามารถทำได้ แต่มันไม่ได้หมายความว่า "ง่าย" หรือมากกว่านั้น
นอกจากนี้ Rails ไม่ชอบที่จะเล่นได้ดีกับแอพพลิเคชั่นอื่น ๆ ที่ไม่ได้ใช้มันเป็นวิธีการเข้าถึงข้อมูลที่ต้องการ; หากคุณต้องติดต่อกับแอพพลิเคชั่นที่ไม่มี API สไตล์ "Web 2.0" คุณจะต้องหลีกเลี่ยง Rails แทน ฉันพูดจากประสบการณ์ที่นี่อีกครั้งเพราะนี่คือสิ่งที่เกิดขึ้นกับฉัน
3) มันใหม่
ในที่สุด Rails ยังคงเป็น "เด็กใหม่บนบล็อก" ในหลายพื้นที่ สิ่งนี้ไม่สำคัญสำหรับการใช้งานส่วนตัวหรือ "ฉันคิดว่ามันเจ๋งและต้องการเรียนรู้" ประเภทของสถานการณ์ แต่พูดเป็นคนที่ต้องการใช้ Rails ในงานประจำวันของฉันถ้าคุณไม่ได้อยู่ในสถานที่ที่ Rails อยู่ มันอาจเป็นเรื่องยากมากที่จะหางานเต็มเวลาในฐานะผู้พัฒนา Rails มันยังคงเป็นโดเมนหลักของ "hip, startups ใหม่" และไม่ใช่ผู้เล่นหลักในพื้นที่ส่วนใหญ่ ระยะทางของคุณอาจแตกต่างกันในเรื่องนี้ แต่ฉันรู้ว่าพื้นที่ของฉัน (แทมปา) ทางรถไฟนั้นไม่มีอยู่จริง
4) ไฟและการเคลื่อนไหว
Rails เปลี่ยนแปลงตลอดเวลา นี่เป็นทั้งสิ่งที่ดีและไม่ดี; เป็นเรื่องที่ดีเพราะชุมชนวิวัฒนาการและรวบรวมแนวคิดใหม่ มันไม่ดีเพราะชุมชนวิวัฒนาการและรวบรวมแนวคิดใหม่ อาจเป็นเรื่องยากสำหรับมือใหม่ที่เพิ่งเปิดตัว Rails เพราะโดยทั่วไปเมื่อคุณพบเจอปัญหาและมองไปรอบ ๆ คุณจะเห็นคนที่แนะนำอัญมณีที่มีคุณสมบัติเช่นนี้เพื่อแก้ไขมันหรือบอกว่ามันแย่มากและคุณไม่ควร อย่าใช้นี่เป็นวิธีที่ดีกว่า ... และคุณจะได้รับรายการเครื่องมือเพิ่มเติมเพื่อเรียนรู้พร้อมกับ Rails เพื่อติดตามความรู้ของ Rails สิ่งที่ชอบGit
, BDD/RSpec
, Cucumber
,Haml/Sass
และความอุดมสมบูรณ์ของสิ่งอื่น ๆ ลอยอยู่รอบ ๆ และได้รับการผลักดันให้เป็น "วิธีการที่เหมาะสมที่จะทำสิ่ง" ใน Rails ที่ดินและพูดจากประสบการณ์ที่คุณอาจจะจบลงด้วยการถูกล้นมือพยายามที่จะเรียนรู้โหลหรือเทคโนโลยีอื่น ๆ อีกมากมายนอกจากนี้การรถไฟ เพราะการใช้ชุดเครื่องมือ Rails มาตรฐานรู้สึกว่า "ผิด"
ตอนนี้ถูกรวมเข้าด้วยกันมากขึ้นโดย Rails 3.1 ทำให้ Sass และ CoffeeScript ทุกอย่างเป็นค่าเริ่มต้นดังนั้น Rails ที่เพิ่งเริ่มต้นใหม่ไม่เพียง แต่ต้องเรียนรู้ Ruby และ Rails เท่านั้น แต่ Sass (ง่าย ๆ ถ้าคุณรู้ CSS) และ CoffeeScript (ไม่ใช่เรื่องยาก แตกต่างจาก JavaScript ดิบ) อย่างน้อยที่สุดเพื่อเริ่มต้นใช้งานรวมทั้งสามารถสันนิษฐานได้ว่า Git แม้จะไม่มีแฟคตอริ่งใน RSpec และเพื่อน ๆ รวมถึงอัญมณีที่คุณมักจะลงท้ายด้วยนั่นก็คือสิ่งต่าง ๆ4อย่างที่คุณต้องเรียนรู้ก่อนที่คุณจะเริ่มเขียนแอพพลิเคชั่นของ Rails ได้อย่างจริงจัง เปรียบเทียบสิ่งนี้กับภาษาเช่น C # หรือ Java หรือแม้กระทั่ง PHP ที่ความรู้ HTML / CSS / JavaScript / SQL ของคุณจะไม่เปลี่ยนแปลงและคุณเพียงแค่ต้องเรียนรู้ภาษาเองและบางทีความแตกต่างของกรอบงาน