Bài viết từ Kipalog– của tác giả Maybe Next Time

“Thật sự việc viết code đẹp không chỉ có ruby mà bất cứ ngôn ngữ lập trình nào cũng phải cần. Viết code đẹp cũng giống như việc nói hay, viết giỏi, làm sao để người xem người đọc có thể hiểu và nắm vững hết logic của các đoạn code đó”

Viết code là một nghệ thuật và người viết code cũng là một nghệ sĩ.

Nếu các bạn đã từng tiếp xúc với Ruby, thì nó thật sự là một ngôn ngữ đẹp :smile:. Ruby là một ngôn ngữ linh hoạt mã nguồn mở, tập trung vào sự đơn giản và hiệu suất. Nó có một cú pháp thanh lịch (khắp vũ trụ ) là tự nhiên để đọc và viết.

Ruby is simple in appearance, but is very complex inside, just like our human body — Matz

Những điêù tôi cảm nhận được từ Ruby, đó là một ngôn ngữ lập trình phức tạp nhưng rất tự nhiên, có cú pháp đẹp và trực quan.

Và dưới đây là một số thứ tôi đã ngộ ra được:

Map

Sử dụng map bạn sẽ lấy ra được những thứ mong muốn từ Array một cách dễ dàng với kết quả là một mảng mới:

Thật là đơn giản phải không? Và ta có một cách còn đẹp hơn nữa :

Select

Đôi khi chúng ta sử dụng map và code của chúng ta trông như thế này:

Nhưng thực sự chúng ta chỉ muốn kết quả là [2, 4] nhưng chúng ta lại tốn đến 2 bước và selectsẽ giúp chúng ta gọn gàng hơn chỉ với 1 dòng:

và đẹp hơn nữa:

Sample

Có một lúc nào đó bạn muốn lấy ra một phần từ ngẫu nhiên trong mảng. Nếu là người mới bạn sẽ nghĩ ngay đến random :

Nó trông rất dễ hiểu, nhưng tôi không chắc nó là cách tốt nhất. Tôi thử dùng shuffle :

Tôi thật sự thích shuffle nhưng đến khi tôi phát hiện ra sample nó còn tuyệt vời hơn (kimochi :smile:) :

Ruby syntax

Như tôi đã nói từ đầu, tôi yêu thích Ruby vì nó rất tự nhiên khi tôi code. Ruby có những syntax tuyệt vời.

return

Không giống như những ngôn ngữ khác, khi một phương thức bạn muốn trả vê một kết quả cho nó bạn cần phải return nhưng ruby thì không cần thế. Ruby sẽ ngầm trả về kết quả đó giúp bạn.

Thay vì:

ta có thể viết :

Ruby cho phép ta có thể gán nhiều giá trị trong cùng một lúc. Khi tôi còn mới bắt đầu tôi hay viết:

nhưng ta có một cách khác hay hơn:

Method đặt câu hỏi

Một trong những tính năng của Ruby đã cuốn hút tôi đó là “dấu hỏi (?)”. Bạn có :

Không có gì đáng ngạc nhiên, và bạn thử sử dụng ? :

Oh yeah, nó thật tuyệt vời phải không ? Bằng cách này nó được sử dụng với các giá trị true/false .

Một phương thức nữa đó là any?.

Nó giống như việc bạn hỏi cái mảng đó có bất cứ gì trong đó không.

Nhúng biến vào chuỗi

Khi bạn muốn in ra một chuỗi đại loại như thế này :

thì sẽ đẹp thế nào khi chúng ta viết:

Phương thức try

Thay vì chúng ta phải kiểm tra user có nil hay không thì mới gọi user.id, việc dùng try sẽ đơn giản hơn:

Và ở Ruby 2.3 trở lên ta có một cách an toàn hơn nữa (Ruby safe navigation operator (&.)) thay vì dùng try

Double Pipe Equals / Memoizatio

Class Static Method

Đơn giản. Đẹp. Trực quan.

Getters & Setters

Nếu chúng ta muốn sử dụng params, chúng ta có thể dùng params

Chúng ta khởi tạo setter / getter

Hoặc là attr_reader, attr_writer hay attr_accessor

Thật tuyệt ! Chúng ta không cần phải khởi tạo 2 phương thức gettersetter. Trông chúng thật đơn giản.

Tap

Bạn muốn khởi tạo một phương thức create_user và phương thức này sẽ thiết lập các thông số, parma, save và trả về user . Ta có:

chúng ta sẽ implement nó với tap như thế này:

 

Bạn chỉ lo lắng về các parameters của user, và tap sẽ trả về oject user.

Tham khảo Idiomatic Ruby: writing beautiful code

Techtalk Via Kipalog