Tại sao Rails lại trở nên phổ biến nhanh chóng như vậy?
Sự đơn giản giúp ích, đặc biệt nếu bạn đến từ thế giới Java, XML, Enterprise. Nó cũng được marketing cực tốt. Nhưng đó không phải là tất cả.
Nhiều thành công của Rails trong thế giới startup đến từ một sự thật đơn giản: Vấn đề doanh nghiệp gặp phải không phải là duy nhất. Rails giỏi tạo trang CRUD, trong khi vẫn linh hoạt. Và đó thực sự là tất cả những gì rất nhiều doanh nghiệp cần. Đặc biệt ở đầu.
Nhưng điều này không chỉ đúng cho doanh nghiệp. Nhiều vấn đề chúng ta đối mặt với tư cách là nhà phát triển phần mềm không thay đổi. Chắc chắn, giải pháp của chúng ta tiến hóa. Chúng đi theo chu kỳ. Chúng ta tốt hơn. Nhưng những giải pháp được khám phá bởi thế hệ lập trình viên trước vẫn có thể giúp chúng ta hôm nay.
Vậy, bạn có muốn biết câu trả lời cho những vấn đề bạn sẽ đối mặt trong tương lai? Điều tốt nhất bạn có thể làm là nhìn về quá khứ.
Nhìn về quá khứ
Trên trang web của mình, Martin Fowler có một bộ sưu tập khó tin về giải pháp tốt cho các vấn đề phổ biến. Bạn có nghe dev nói về Event Sourcing? Anh ấy đã viết bài định hình về nó 10 năm trước. Đang đuổi theo vấn đề hiệu năng và độ tin cậy với REST API mới hoặc Kiến trúc Hướng Dịch vụ? Đó là định luật đầu tiên của đối tượng phân tán của anh ấy, từ gần 15 năm trước.
Avdi Grimm đã nói với tôi: "Nếu bạn muốn dẫn dắt đường cong công nghệ, hãy bắt đầu điều tra bất cứ gì Martin Fowler viết về một thập kỷ trước." Đó hoàn toàn đúng. Thời gian bạn dành đọc qua các pattern trên trang web của anh ấy sẽ là một khoản đầu tư tuyệt vời cho tương lai lập trình của bạn. Và đó chưa kể các pattern refactoring.
Đi xa hơn, hầu như bất kỳ cuốn sách hoặc bài viết nào của các tác giả của Agile Manifesto đều đáng đọc – 15 năm trước, họ đang giải quyết cùng những vấn đề kiến trúc phần mềm chúng ta gặp hôm nay.
Bạn có thể tìm thấy nhiều cuộc thảo luận của họ trên C2 Wiki. Những tranh luận chúng ta có về khi nào TDD hợp lý nhất? Chúng đều ở đó. Và chúng đã ở đó. Wiki đã tồn tại một thời gian, và nó vẫn là một tài nguyên tuyệt vời.
Sách từ cuối những năm 90 đến đầu những năm 2000 cũng hữu ích. Tôi mỉm cười suốt đọc Smalltalk Best Practice Patterns và Patterns of Enterprise Application Architecture (đã có ảnh hưởng lớn đến Rails), vì chúng miêu tả các vấn đề tôi đã gặp rất tốt.
Giống như thời trang thiết kế, thực hành phát triển phần mềm đi theo chu kỳ. Từ phân tán đến tập trung, từ client-side sang server-side, từ động sang tĩnh.
Bạn có muốn dẫn đầu, hiểu điều gì sắp đến, và thậm chí thúc đẩy điều gì sẽ đến tiếp theo? Nhìn về quá khứ. Nghiên cứu giải pháp cho những vấn đề mà giải pháp hiện tại của chúng ta sẽ gây ra. Và giúp mang những thực hành tốt của thế hệ lập trình viên trước đến thế hệ tiếp theo.