Hôm nay mình sẽ chia sẻ về một chủ đề mình cho rằng khá là thú vị dựa trên những trải nghiệm thực tế của bản thân khi chuyển sang học một ngôn ngữ mới. Nói một chút về cơ duyên này: Mình – 1 thằng coder PHP chính hiệu bỗng một ngày đẹp trời nhận được một lời đề nghị học và làm việc với Ruby. Trên tinh thần học hỏi khám phá mình nhận lời ngay và chẳng một chút ngại ngần gì. Và mình đến với Ruby từ đó. Chuyển hẳn chỗ ngồi lên tầng 18, tham dự 1 dự án hoàn toàn mới và mọi thứ bắt đầu từ đây. Mình đã tiếp cận Ruby như thế nào và học Ruby on rails một cách nhanh nhất ra sao để làm dự án mới.
Mình là dev từ PHP chuyển sang nên cách tiếp cận Ruby của mình là đi từ PHP. Đến với Ruby bằng PHP có nghĩa là mình sẽ đặt 2 ngôn ngữ lên bàn cân để so sánh, với những gì có trong PHP mình sẽ tìm nó ở trong Ruby hoặc một cái gì đó tương tự như thế ở trong Ruby. Đầu tiên ta sẽ nói về những điểm tương đồng. So với PHP thì Ruby:
public
, protected
, private
$
nhưng không phải là tất cảeval
như trong PHP"$foo is a $bar"
=> trong Ruby: "#{foo} is a #{bar}"
và đều phải nằm trong dấu nháy kép "
['a' => 'b']
sẽ thành {'a' => 'b'}
true
và false
giống như PHP, còn null
trong PHP thì Ruby là nil
Và bây giờ là những điểm khác biệt:
[1,2,3].max
thay vì max([1,2,3])
;
ở cuối mỗi dòng code. Khi gọi 1 hàm bạn có thể để dấu ngoặc đơn hoặc không. Mới tiếp xúc với Ruby mình cứ cảm giác như Ruby gần với ngôn ngữ tự nhiên vậy. Ví dụ sẽ có những cú pháp sau a = 5 if (condition)
hoặc a = 0 unless (condition)
Reflection
như trong PHP 5abstract
hay interface
false
và nil
là false
. 0, array(), ""
đều là true
trong các câu điều kiện: Cái này lúc khi sang Ruby mình rất hay nhầm lẫn bởi thói quen hay viết biểu thức điều kiện trong PHP nhưng khi tìm hiểu thì đây rõ là 1 điểm cần lưu ý khi chuyển từ code PHP sang.return
mà mặc định biến cuối cùng của hàm chính là thứ được trả về của hàm đó. :v$biến
nhưng trong Ruby phân biệt đến 4 loại biến như sau:
variable
Biến cục bộ: giá trị phụ thuộc vào vị trí của biến khi khai báo$variable
Biến toàn cục: cái tên nói lên tất cả@variable
Biến đối tượng: Từ php sang thì đây là 1 điểm khác biệt lớn. Biến nằm trong phạm vi của 1 đối tượng riêng lẻ hoặc đối tượng của 1 lớp@@variable
Biến lớp: Biến được dùng chung cho mọi đối tượng của lớp đó.Thông thường, ta thấy rằng code Ruby trông rất gọn gàng và không rườm rà như PHP. Các cú pháp khá là dễ học, mình chỉ mất một chút ít thời gian là đã quen với tất cả. Bây giờ sau khi đã học được cú pháp rồi ta sẽ học luôn cách để viết code một cách đúng chuẩn mà ta hay gọi là Coding convention
. Tất cả đều có trên Coding Standards. Sau khi học xong bộ này mình đã sẵn sàng để bước vào code với Ruby.
Đấy là về ngôn ngữ lập trình. Như vậy chưa đủ để làm việc giờ mình phải học thêm về Framework MVC nữa. Ở PHP mình code với Laravel thì bên Ruby cái mình cần phải mài dùi kinh sử tiếp theo chính là Ruby on rails
.
Cũng như cách mình học Ruby từ PHP thì đến với Ruby on rails mình cũng sẽ học từ Laravel. Mở luôn 2 tab trên trình duyệt: 1 tab là document của Laravel, 1 tab là document của Ruby on rails. Và bây giờ chỉ cần soi vào mục lục của Laravel và tìm nó ở cái còn lại thôi (lol) Vừa học vừa đoán chắc chắn nó sẽ có những cái tương tự như nhau. Và quả thật đúng như vậy, không biết là bên nào học hỏi bên nào tuy nhiên mình thấy những gì có ở Laravel thì ROR cũng có =)) Và đó là cách để mình đến với Ruby on rails một cách nhẹ nhàng. Mình không thể liệt kê hết toàn bộ mọi thứ ra đây nên mình xin chỉ điểm một vài tên để các bạn có sự hình dung rõ nhất về sự tương quan giữa 2 framework của 2 ngôn ngữ khác nhau:
Và như vậy sau một thời gian ngắn tìm hiểu và học hỏi cả ngôn ngữ mới và framework mới phục vụ công việc mình hoàn toàn tự tin có thể vào code dự án chung với anh em. Một cảm giác vừa tò mò vừa muốn chinh phục đối với mình thực sự thú vị.
Qua bài viết này mình muốn chia sẻ đến các bạn cách mà mình đã học và làm việc với Ruby on rails như thế nào. Vì mới tiếp xúc một thời gian ngắn chắc chắn mình chưa thể hiểu rõ sâu sắc mọi ngóc ngách trong Ruby on rails và đây chỉ là những trải nghiệm cá nhân của mình. Và đối với mình trải nghiệm code Ruby giống như một cuộc dạo chơi hấp dẫn và bổ ích. Nó góp phần tăng chỉ số Knowledge của bản thân.
Nguồn: Sưu tầm từ internet