Post

Chuyển từ Rails sang Lotus, why not now?

Mở bài

Rails là gì? => cái này thôi chắc không cần giới thiệu

Lotus là gì? => nói ngắn gọn thì Lotus là một web framework mới, sử dụng ngôn ngữ Ruby, tuy vẫn đang trong giai đoạn phát triển nhưng rất tiềm năng và cũng hay ho (theo quan điểm cá nhân).

Gần đây thì trong cộng đồng đang rộ lên xu hướng chỉ trích Rails khá nhiều, đại loại là xoay quanh vài chủ đề như

  • Kiến trúc monolithic, cũ rồi, mốt thời thượng là microservices kia

  • Anti-pattern

  • Monkey patching

  • Performance kém (cái này là vấn đề chung của Ruby luôn rồi :s)

Và rồi người ta rủ nhau bỏ Rails, theo Golang, hay nodejs, hay Erlang…

Từ những vấn đề được nhìn thấy ở Rails, có một vài anh siêu nhân đứng ra phát triển Lotus, một framework khác cũng viết bằng Ruby. Vì sinh sau mà, nên tất nhiên Lotus phải giải quyết được những khiếm khuyết của Rails thì mới có hi vọng phát triển. Và đến hiện giờ thì hình như các anh ấy vẫn đang đi đúng theo con đường đó. Nói lang mang nãy giờ thì chốt một câu là cá nhân tui thấy Lotus nó hay nên viết bài nhảm về Lotus thôi :)))

Khó khăn

Thế tại sao nên chuyển sang Lotus bây giờ? Trước tiên nói về những khó khăn nếu chuyển từ Rails sang Lotus

  • Không quen :v, mặc dù đều là Ruby cả, nhưng lúc mới chuyển từ Rails sang Lotus thì cảm giác nó cứ kì kì thế nào ấy, tóm lại thì là do không quen :))

  • Ít document, tính đến giờ thì toàn mò mò đọc docs từ github của Lotus thôi chứ chưa thấy có nhiều bài tutorial hay book về Lotus như Rails

  • Gems, Ruby và Rails nổi tiếng một phần ở thư viện gem rất chi là bự của nó. Với Lotus, chúng ta vẫn có thể sử dụng được các Ruby gems, nhưng phải nói không với Rails gem. Rails gem tức là những gems mà depend on Rails ấy. Vậy nên nếu giờ làm Lotus thì… chắc phải tự viết khá nhiều :(

  • Vẫn còn chưa hoàn thiện, nếu so sánh với Rails thì hiện tại Lotus vẫn còn đang chưa cung cấp đủ các công cụ cho người dùng. Ví dụ, Rails có lệnh rails generate, Lotus cũng có lotus generate. Cơ mà Lotus thì chưa có lệnh lotus destroy như rails T_T, phải xóa bằng tay. Cơ mà chắc là chưa có thôi chứ không phải là không có.

Lợi ích

Khó khăn chồng chất, tuy nhiên, nếu chuyển sang dùng Lotus bây giờ, bạn sẽ nhận được gì?

  • Vì thiếu docs, tutorial nên khi nào gặp lỗi hay gì gì đó không chạy thì phải lọ mọ vào source code của Lotus để đọc xem nó được implement như nào, có phải bug của Lotus không hay bug của mình. Xem nhiều đâm ra hiểu, mà hiểu thì sẽ triển khai hiệu quả hơn => biết đâu còn có thể contribute cho Lotus

  • Vì thiếu gems nên phải tự viết, ví dụ như trong rails mình có devise, quá khỏe, cơ mà lotus thì không, tự viết đi nhé. Tuy có hơi cực nhưng bù lại mình hiểu chính xác mình cần cái gì, và chỉ implement vừa đủ dùng, không thừa, không thiếu. Vì thiếu gem nên biết đâu siêng siêng viết một cái gem cho cộng đồng, sau này lại được người ta dùng nhiều => một cảm giác thật là sung sướng :)).

  • Thiếu tutorial => nên giờ làm Lotus rồi viết blog, chia sẽ kinh nghiệm cho cộng đồng, lỡ sau này Lotus phát triển mạnh thì blog của bạn được người ta vào xem nhiều nhiều, tăng view, được nổi tiếng, hú hú :)))))

Rủi ro

Lợi có rồi, hại có rồi, giờ đến risk. Vì hiện tại Lotus vẫn đang trong gia đoạn phát triển, version mới cứ ra đều đặn vậy đó, dùng bây giờ sau này phải update chắc mệt lắm :-s. Ví dụ như hiện tại Lotus đang ở version 0.3.2, nhưng vài ngày nữa là launch version 0.4.0. Không biết khi official launch có thay đổi thât hay không nhưng mình có xem trước thì structure của 0.4.0 khác so với 0.3.2 :v. Cái risk nữa là lỡ bây giờ xài Lotus mà sau này nó chết yểu thì… (cơ mà chắc không đâu).

Kết bài

Mấy cái khó khăn, lợi ích, rủi ro lung tung trên kia là do mình đang mò mò làm Lotus, tự rút ra thôi, đúng sai không quan tâm. Bài viết nhảm đến đây là hết :)

Project đang mần nè: https://github.com/khaiql/ss-tweets

pic6_thumb.png

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.