Đây là từ kinh nghiệm học tập, tiếp tục học hỏi và viết một ứng dụng tương đối đơn giản trong Rails.
1) Đường cong học tập
Rails là đơn giản quyết định. Các hướng dẫn, video và sách đều thể hiện mức độ nhanh chóng bạn có thể có được một ứng dụng hoạt động (nếu xấu xí), nhưng những thứ này thực sự chỉ làm trầy xước bề mặt. Họ có xu hướng phụ thuộc rất nhiều vào việc tạo mã và "giàn giáo", điều này thừa nhận là một công cụ tốt khi học nhưng nhanh chóng vượt xa sự hữu ích của nó.
Không có lỗi, Rails là khó để làm chủ. Khi bạn vượt qua được những điều cơ bản (nhiều hơn về điều này sau), bạn sẽ chạy dài vào tường nếu bạn cần làm nhiều hơn chức năng "ứng dụng demo" cực kỳ đơn giản mà bạn thấy được chào hàng. Bạn có thể có được kiến thức cơ bản về Ruby khi học, nhưng bạn cần nhanh chóng nhặt Ruby hoặc bạn sẽ bị khô và cao (và không phải là loại tốt DRY
) nếu bạn cần đi ra ngoài các ràng buộc của Rails.
Rails là, như tôi muốn gọi nó theo một cách yêu thương, vẽ bằng cách lập trình số . Nếu bạn tuân thủ 100% các quy ước (nghĩa là ở trong các dòng và sử dụng các màu bạn được bảo sẽ sử dụng), bạn có thể tạo ra các ứng dụng phong nha một cách nhanh chóng và dễ dàng. Nếu và khi bạn phải đi chệch hướng, Rails có thể đi từ người bạn thân nhất đến kẻ thù tồi tệ nhất của bạn.
2) Khi tất cả những gì bạn có là một cái búa ...
Rails thực hiện các ứng dụng CRUD đơn giản rất tốt. Vấn đề xảy ra khi ứng dụng của bạn phải làm nhiều việc hơn là chỉ đọc / ghi từ cơ sở dữ liệu. Bây giờ, đối với bản ghi phiên bản Rails cuối cùng tôi sử dụng là 2.3.4 nên mọi thứ có thể đã thay đổi kể từ đó, nhưng tôi gặp vấn đề lớn khi yêu cầu kinh doanh thay đổi nên ứng dụng phải có một hệ thống quy trình công việc nhỏ được tích hợp và tích hợp với một ứng dụng PHP kế thừa. Quy ước Rails của "một hình thức, một mô hình" hoạt động tốt đối với các ứng dụng tầm thường và ứng dụng nhập dữ liệu, nhưng không quá nhiều khi bạn cần xử lý logic hoặc có quy trình công việc hoặc bất cứ điều gì không phải là "Người dùng nhập dữ liệu thông thường vào một vài trường văn bản, lượt truy cập Gửi "loại điều. Nó có thể được thực hiện, nhưng nó không có nghĩa là "dễ dàng", hay đúng hơn là nó không '
Ngoài ra, Rails không thích chơi tốt với các ứng dụng khác không sử dụng các phương thức truy cập dữ liệu ưa thích của nó; nếu bạn phải giao tiếp với một ứng dụng không có API kiểu "Web 2.0", bạn phải làm việc xung quanh Rails thay vì với nó; một lần nữa tôi nói từ kinh nghiệm ở đây vì đây là những gì đã xảy ra với tôi.
3) Nó mới
Cuối cùng, Rails vẫn là "đứa trẻ mới trên khối" ở nhiều khu vực. Điều này không quan trọng đối với việc sử dụng cá nhân hoặc loại kịch bản "Tôi nghĩ thật tuyệt và muốn tìm hiểu nó", nhưng nói như một người thích sử dụng Rails trong công việc hàng ngày của tôi, nếu bạn không ở vị trí có Rails Trên diện rộng, có thể rất khó tìm được công việc toàn thời gian với tư cách là nhà phát triển Rails. Nó vẫn chủ yếu là lĩnh vực của "hông, khởi nghiệp mới" và không phải là một người chơi chính trong hầu hết các khu vực đô thị. Số dặm của bạn có thể khác nhau về vấn đề này, nhưng tôi biết Rails khu vực của tôi (Tampa) về cơ bản là không có.
4) Lửa và chuyển động
Rails luôn thay đổi. Đây là cả một điều tốt và xấu; thật tốt vì cộng đồng phát triển và đón nhận những khái niệm mới. Thật tệ vì cộng đồng phát triển và đón nhận những khái niệm mới. Nó có thể rất áp đảo đối với một người mới chơi Rails vì thông thường khi bạn gặp phải một vấn đề và nhìn xung quanh, bạn sẽ thấy mọi người khuyên bạn nên dùng loại đá quý như vậy để khắc phục nó, hoặc nói rằng đó là cách xấu và bạn không nên ' Sử dụng nó, đây là một cách tốt hơn ... và cuối cùng bạn có một danh sách các công cụ bổ sung để tìm hiểu cùng với Rails để theo kịp với Rails cognoscenti. Những điều thích Git
, BDD/RSpec
, Cucumber
,Haml/Sass
và vô số những thứ khác trôi nổi xung quanh và bị thúc đẩy là "cách làm đúng đắn" trong Rails-Land, và nói từ kinh nghiệm bạn có thể sẽ bị ngập trong khi cố gắng học hàng tá công nghệ trở lên ngoài Rails, bởi vì sử dụng bộ công cụ Rails tiêu chuẩn cảm thấy "sai".
Điều này giờ đây còn được kết hợp nhiều hơn bởi Rails 3.1, biến Sass và CoffeeScript thành tất cả mọi thứ thành mặc định, do đó, một người mới chơi Rails hoàn toàn không chỉ phải học Ruby và Rails mà còn đơn giản nếu bạn biết CSS) và CoffeeScript (không khó điên rồ nhưng chắc chắn đủ khác với JavaScript thô) ở mức tối thiểu để bắt đầu, cộng với Git có thể được giả định. Ngay cả khi không bao gồm trong RSpec và bạn bè, và hàng tá đá quý mà bạn thường kết thúc, đó là 4 điều khác nhau bạn phải học trước khi bạn có thể nghiêm túc bắt đầu viết các ứng dụng Rails. So sánh ngôn ngữ này với ngôn ngữ như C #, hoặc Java hoặc thậm chí PHP nơi kiến thức HTML / CSS / JavaScript / SQL của bạn sẽ không thay đổi và bạn chỉ cần tự học ngôn ngữ và có lẽ các sắc thái khung.