"Chuyển sang Elixir"
(leemeichin.com)Chuyển sang Elixir
- Ở công việc mới, Elixir được sử dụng làm ngôn ngữ backend chính.
- Trước đó không có kinh nghiệm với Elixir hay Erlang, nhưng nhờ cú pháp tương tự Ruby nên học khá dễ.
- Tránh được vấn đề quản lý trạng thái của ngôn ngữ hướng đối tượng, đồng thời tận hưởng lợi ích của tính bất biến và lập trình hàm.
Ưu điểm của Elixir
- Mã có trạng thái có thể thay đổi thì khó bảo trì.
- Elixir hỗ trợ DSL như Ruby, nhưng dùng macro ở thời gian biên dịch để sinh mã lúc chạy.
- Ngay cả khi không viết test, vẫn có thể phát hiện lỗi dùng macro ở thời gian biên dịch.
Cú pháp và biểu thức
- Cú pháp pipeline của Elixir rất hay, nhưng tác giả thích toán tử
threadingcủa Clojure hơn. - Thông qua biểu thức
with, có thể tách các hàm phức tạp thành phần luồng thành công và phần xử lý lỗi.
Xử lý ngoại lệ
- Trong Ruby, việc dùng ngoại lệ cho luồng điều khiển là khá phổ biến.
- Trong Elixir, thay vì ngoại lệ, người ta dùng monad Result / Either để dùng
okvàerrorlàm giá trị trả về.
Ý kiến của GN⁺
Điều quan trọng nhất trong bài viết này là niềm vui khi lập trình với Elixir và sự dễ dàng trong bảo trì. Việc giải quyết bài toán quản lý trạng thái phức tạp của ngôn ngữ hướng đối tượng, đồng thời nâng cao độ ổn định và khả năng đọc mã nhờ tính bất biến và lập trình hàm, là điểm rất đáng chú ý. Đặc biệt, hệ thống macro có thể phát hiện lỗi ngay ở thời gian biên dịch mang lại cho lập trình viên một môi trường viết mã ổn định hơn. Những đặc điểm này cũng sẽ khiến cả các kỹ sư phần mềm mới vào nghề cảm nhận được sức hấp dẫn của việc học Elixir.
1 bình luận
Ý kiến Hacker News
Mối quan tâm đến ngôn ngữ Elixir đã tăng lên trong vài tuần gần đây thông qua các video YouTube.
Nhấn mạnh sự dễ dàng của các tác vụ nền là một ưu điểm lớn của Elixir/Erlang.
Nhấn mạnh sức mạnh của ngôn ngữ thông qua bài nói chuyện "The Soul of Erlang and Elixir" của Sasa Juric.
Chia sẻ kinh nghiệm đã dùng Erlang từ năm 1991.
Việc học và sử dụng Elixir mang lại niềm vui, đồng thời bày tỏ sự hài lòng với sự gọn gàng và tính năng của BEAM/OTP.
Nhấn mạnh ưu điểm của Elixir là sự thú vị giống Ruby, đồng thời loại bỏ các nhược điểm của lập trình hướng đối tượng bằng tính bất biến và đặc tính hàm.
Chỉ ra sự hiểu lầm về việc dùng exception làm luồng điều khiển trong Ruby.
Với tư cách là người dùng F#, bày tỏ rằng Elixir gây cảm giác khó hiểu.
Từ kinh nghiệm dùng Elixir, nhấn mạnh các ưu điểm như dễ học, pattern matching và dữ liệu bất biến.
Cảnh báo về cái nhìn quá lạc quan ở giai đoạn đầu đối với công nghệ mới.