Ngôn ngữ ruby là gì

12 tháng 01, 2016 - 3242 lượt xem

Bài viết được dịch từ trang web Skilledup

Học lập trình Ruby on Rails rất dễ xin việc làm.

Học lập trình là một quá trình rất gian nan và thử thách. Bạn sẽ gặp phải những khái niệm lạ lẫm, những thuật ngữ kỹ thuật, và những lựa chọn khó khăn. Một trong những sự lựa chọn đầu tiên bạn sẽ phải thực hiện là việc nên bắt đầu với ngôn ngữ lập trình nào.

Ngôn ngữ lập trình cũng tương tự như ngôn ngữ nói. Mỗi ngôn ngữ lập trình đều rơi vào một hoặc nhiều thể loại. Một vài loại có thể bạn đã nghe nói đến bao gồm mệnh lệnh [imperative], hướng đối tượng, chức năng, hoặc dựa trên logic. May mắn thay, một khi bạn đã học một ngôn ngữ thì rất dễ dàng để học sang một ngôn ngữ thứ hai trong cùng thể loại. Điều không may là, ngôn ngữ lập trình đầu tiên sẽ rất khó để học.

Ruby là một ngôn ngữ lập trình đa mục đích, được tạo ra vào năm 1990 bởi Yukihiro "Matz" Matsumoto. Nó cũng là một trong những ngôn ngữ tốt nhất để bắt đầu khi bạn mới học lập trình.

Ruby là một trong những ngôn ngữ dễ học nhất

Tôi nhớ khi mình lần đầu tiên bắt đầu học lập trình. Đó là một lớp giới thiệu về Khoa học Máy tính và chương trình đào tạo sử dụng ngôn ngữ lập trình C++. Trong thế giới lập trình, chương trình máy tính đầu tiên của tất cả mọi người là một chương trình hiển thị dòng chữ "Hello, world!". Nó được gọi là “Hello World Program”.

Dưới đây là nội dung chương trình Hello World được viết bằng C++:

Thật đáng sợ, phải không bạn? Để hiển thị dòng chữ "Hello, world!" lên màn hình máy tính, bạn sẽ phải học nhiều function và từ khóa trong C++. Còn dưới đây là mã nguồn của Ruby trong chương trình tương đương:

Đơn giản hơn nhiều so với phiên bản C++!

Ruby được coi là một ngôn ngữ lập trình cấp cao hơn so với C++. Các tính năng của một ngôn ngữ cấp cao trừu tượng hóa mạnh mẽ từ các chi tiết máy tính. Trong khi các ngôn ngữ cấp thấp là gần gũi hơn với các chi tiết máy [như địa chỉ bộ nhớ hoặc thanh ghi CPU], các ngôn ngữ cấp cao là gần gũi hơn với một ngôn ngữ nói tự nhiên.

Khi bạn lần đầu tiên học lập trình, một ngôn ngữ lập trình cấp cao như Ruby là dễ dàng hơn để sử dụng.

Học Ruby là một bước đệm để học Ruby on Rails

Nếu bạn đang làm việc trong ngành công nghiệp phần mềm hoặc cộng đồng khởi nghiệp startup, thì rất có thể bạn đã nghe nói về Ruby on Rails [thường được gọi tắt là Rails]. Rails là một framework để tạo ra các ứng dụng web.

Nhiều sinh viên mới học lập trình không phân biệt được sự khác nhau giữa Ruby và Ruby on Rails. Ruby là một ngôn ngữ lập trình. Ruby on Rails là một framework dùng và phụ thuộc vào ngôn ngữ lập trình Ruby. Hãy nghĩ về một framework như một bộ sưu tập code viết sẵn để giúp các lập trình viên. Trong trường hợp này, framework Rails là một bộ sưu tập code viết sẵn để giúp các lập trình viên tạo ra các website và các ứng dụng web.

Bạn vẫn còn lẫn lộn ư? Nếu vậy thì hãy suy nghĩ về các bước làm một chiếc bánh sandwich. Bạn chỉ cần một miếng thịt, pho mát, rau diếp và hai lát bánh mì. Nhưng bánh mì đến từ đâu? Sẽ dễ dàng hơn để có được những lát bánh mì từ các cửa hàng tạp hóa thay vì bạn phải trộn bột mì với nước và tự nướng lấy. Trong trường hợp này, ngôn ngữ lập trình Ruby là bột và nước. Bánh mì lát thái sẵn chính là framework Ruby on Rails.

Học Ruby là một điều kiện tiên quyết để học Ruby on Rails. Bạn sẽ tiến một bước gần hơn đến việc tạo ra các ứng dụng web như Twitter, Yellow Pages, Hulu, hay Groupon.

Nhu cầu tuyển dụng lập trình viên Ruby ngày càng tăng

Trong danh sách những ngôn ngữ lập trình phổ biến nhất TIOBE thì Ruby là ngôn ngữ đứng thứ 10 ở thời điểm bài viết này. Mặc dù phổ biến là một điều tốt, nhưng việc có nhiều nhu cầu tuyển dụng trên thị trường việc làm thì còn tốt hơn. Hiện nay, Ruby đang có tốc độ tăng trưởng về nhu cầu tuyển dụng đáng kinh ngạc.

Nhu cầu đối với các lập trình viên Ruby có thể gắn liền với framework Ruby on Rails, nó đã giúp đưa ngôn ngữ này trở thành một trong những ngôn ngữ lập trình chính vào năm 2004. Các nhà tuyển dụng đang xây dựng các trang web của họ bằng cách sử dụng Ruby on Rails. Họ cần các lập trình viên Ruby để duy trì code base của họ.

Lập trình viên Ruby hiện nay đang là một món hàng rất nóng.

Nhu cầu cho Ruby cũng tồn tại bên ngoài Ruby on Rails. Ruby ngày càng trở nên phổ biến trong các vai trò DevOps. Có phải bạn đang tự hỏi DevOps là gì? Một trang web hay ứng dụng web với số lượng lớn traffic thường sẽ đòi hỏi hàng trăm máy tính để chạy trên đó, gọi là các máy chủ. Các kỹ sư DevOps đảm bảo độ tin cậy và hiệu quả của các máy chủ này. Các kỹ sư DevOps cũng tự động hóa việc triển khai các máy chủ, do đó các trang web có thể nhanh chóng xử lý một lượng lớn lưu lượng truy cập. Ruby là một ngôn ngữ lập trình phổ biến cho các framework DevOps như Puppet và Chef.

Ruby có một hệ sinh thái rất lớn và hữu ích

Hệ sinh thái của một ngôn ngữ lập trình là rất quan trọng vì những lý do sau đây:

  1. Những phần code đã có mà bạn có thể tận dụng - Ruby có những framework và các thư viện được xây dựng sẵn như Ruby on Rails và Chef. Bạn có thể sử dụng những phần code được xây dựng sẵn này cho các dự án của riêng mình. Tại sao lại phải mất thời gian để phát minh lại cái bánh xe khi có ai đó đã thực hiện điều này cho bạn? Ruby thậm chí còn có hệ thống riêng của mình để quản lý các framework và thư viện, được gọi là RubyGems. Hiện tại có hơn 60.000 thư viện để bạn tha hồ lựa chọn!
  2. Tài liệu - các tài liệu hướng dẫn đóng một vai trò rất lớn trong cuộc sống của mọi lập trình viên. Khi bạn đang làm việc trên dự án của mình, bạn sẽ liên tục tìm kiếm thông qua các tài liệu hướng dẫn. Lần đầu tiên kết nối tới một cơ sở dữ liệu? Cách tốt nhất để bắt đầu là tìm tài liệu hướng dẫn. Khi bạn đang lập trình, sẽ có rất nhiều "lần đầu tiên", nơi bạn sẽ cần phải truy cập vào những tài liệu tốt.
  3. Các tài nguyên học tập - Ruby có một số lượng lớn các nguồn tài nguyên để bạn lựa chọn. Có rất nhiều cuốn sách, screencasts, các khóa học, và các bootcamp dành riêng cho các lập trình viên trong việc học Ruby. Thậm chí có những hướng dẫn miễn phí nằm rải rác khắp nơi trên các trang web.
  4. Cộng đồng - Bạn đang bị mắc kẹt trong một vấn đề lập trình hoặc có một câu hỏi? Hãy tìm một mailing list Ruby, chat room, hoặc diễn đàn để đặt câu hỏi! Cộng đồng Ruby có rất nhiều các nhà phát triển tốt bụng thích giúp đỡ người khác. Bạn hãy đóng góp trở lại cộng đồng một khi có nhiều kinh nghiệm hơn. Thậm chí còn có những Ruby User Groups, nơi các lập trình viên có hứng thú trong Ruby gặp mặt để thảo luận và học hỏi lẫn nhau.

Làm thế nào để bắt đầu học lập trình Ruby

Tôi hy vọng rằng qua bài viết này bạn đã biết được lý do tại sao Ruby là ngôn ngữ lý tưởng dành cho người mới bắt đầu! Như tôi đã đề cập, Ruby có một cộng đồng tuyệt vời và số lượng phong phú các tài nguyên học tập. Bạn có thể học hỏi từ các cuốn sách hoặc các khóa học trực tuyến, nhưng hãy nhớ rằng cách tốt nhất để học lập trình là thông qua thực hành thật nhiều! Khi bạn đang đọc sách hoặc tham gia một khóa học, hãy bắt đầu tự lập trình các dự án của riêng mình. Bạn sẽ học tốt nhất khi đang giải quyết các vấn đề thực tế.

Đây là một bài hướng dẫn nhỏ, chỉ cần không quá 20 phút để hoàn thành. Giả thiết là bạn đã cài sẵn Ruby. [Nếu bạn chưa có Ruby, hãy cài đặt trước khi bắt đầu nhé.]

Tương tác với Ruby

Ruby có một chương trình hiển thị kết quả của bất kỳ câu lệnh Ruby nào bạn gõ vào. Thử sức với Ruby code theo cách tương tác như thế này là một cách tuyệt vời để khám phá nó.

Mở IRB [hiểu là Tương tác với Ruby].

  • Nếu bạn sử dụng macOS, mở Terminal và gõ irb rồi enter.
  • Nếu bạn sử dụng Linux, mở một shell và gõ irb rồi enter.
  • Nếu bạn sử dụng Windows, mở Interactive Ruby từ phần Ruby trên Start Menu.
irb[main]:001:0>

Rồi, nó đã mở. Giờ ta phải làm gì?

Gõ: "Xin chào thế giới"

irb[main]:001:0> "Xin chào thế giới" => "Xin chào thế giới"

Ruby phục vụ bạn!

Điều gì đã xảy ra vậy? Chúng ta vừa viết chương trình “Xin chào thế giới” ngắn nhất thế giới ư? Không phải vậy. Dòng thứ 2 chỉ là cách mà IRB nói cho ta biết kết quả của phép toán cuối cùng nó nhận được. Nếu muốn in ra “Xin chào thế giới” ta cần viết nhiều hơn:

irb[main]:002:0> puts "Xin chào thế giới" Xin chào thế giới => nil

puts là cú pháp cơ bản để in ra trong Ruby. Nhưng sau đó => nil là gì? Nó là kết quả của phép toán. puts luôn trả về nil - giá trị rỗng.

Máy tính miễn phí của bạn đây

Rõ ràng, chúng ta có thể sử dụng IRB như một chiếc máy tính cơ bản:

irb[main]:003:0> 3+2 => 5

Ba cộng hai. Quá dễ. Thế còn ba nhân hai thì sao? Bạn có thể gõ trực tiếp vì nó rất ngắn, tuy nhiên bạn có thể sẽ sửa lại những gì mình vừa nhập vào. Bấm nút mũi tên lên trên bàn phím và nó sẽ hiển thị dòng 3+2. Nếu được, bạn có thể sử dụng phím mũi tên trái để di chuyển đến dấu + và thay nó bằng dấu *.

irb[main]:004:0> 3*2 => 6

Tiếp theo, hãy thử tính 3 bình phương:

irb[main]:005:0> 3**2 => 9

Trong Ruby, ** nghĩa là “bình phương”. Nhưng nếu bạn muốn tìm căn bậc hai thì sao?

irb[main]:006:0> Math.sqrt[9] => 3.0

Bạn thấy gì ở kết quả? Nếu bạn nghĩ, đó là “căn bậc hai của 9” thì bạn đã đúng. Nhưng hãy chú ý vào những thứ khác. Đầu tiên: Math là gì?

Gộp nhóm mã module theo chủ đề

Math là một module của toán học. Các module phụ vụ hai vai trò trong Ruby. Ở đây là một vai trò: nhóm các phương thức giống nhau lại với nhau dưới một cái tên tương tự. Math còn có các phương thức như sin[] và tan[].

Tiếp theo là dấu chấm. Dấu chấm có tác dụng gì? Dấu chấm dùng để xác định nơi nhận của một câu lệnh. Câu lệnh là gì? Trong trường hợp này thì nó là sqrt[9], nghĩa là gọi phương thức sqrt, viết tắt của “căn bậc hai [square root]” với tham số là 9.

Kết quả của việc gọi phương thức này là 3.0. Chú ý rằng nó không chỉ là 3 bởi vì phần lớn căn bậc 2 của một số không phải là một số nguyên, do đó phương thức luôn trả về một số thực.

Nếu muốn lưu lại một vài kết quả của phép toán này, hãy gán kết quả cho một biến.

irb[main]:007:0> a = 3 ** 2 => 9 irb[main]:008:0> b = 4 ** 2 => 16 irb[main]:009:0> Math.sqrt[a+b] => 5.0

Tuyệt vời như một chiếc máy tính, chúng ta đang vượt xa thông điệp Xin chào thế giới truyền thống mà ban đầu bài hướng dẫn giả sử… Vậy chúng ta hãy quay lại nào

Page 2

Nếu muốn nói “Xin chào” rất nhiều mà không muốn mỏi tay, ta cần định nghĩa một phương thức!

irb[main]:010:0> def h irb[main]:011:1> puts "Xin chào Thế giới!" irb[main]:012:1> end => nil

Đoạn mã def h bắt đầu định nghĩa phương thức. Nó báo với Ruby rằng “Chúng tôi đang định nghĩa một phương thức tên là h”. Dòng tiếp theo là phần thân của phương thức, tương tự với dòng chúng ta đã thấy trước đây: puts "Xin chào Thế giới". Cuối cùng, dòng cuối cùng end thông báo với Ruby rằng ta đã định nghĩa xong phương thức. Ruby trả lại => nil để xác nhận.

Tóm tắt, vòng đời của một phương thức

Bây giờ ta sẽ chạy phương thức vừa rồi vài lần:

irb[main]:013:0> h Xin chào Thế giới! => nil irb[main]:014:0> h[] Xin chào Thế giới! => nil

Tốt rồi, rất đơn giản. Gọi một phương thức trong Ruby rất dễ dàng, chỉ cần gõ tên của nó vào. Nếu phương thức không cần tham số, bạn có thể thêm cặp ngoặc đơn trống nếu thích vì chúng cũng không cần thiết.

Nếu bạn muốn nói xin chào tới một người mà không phải là cả thế giới, hãy định nghĩa lại h để thêm tên là tham số truyền vào.

irb[main]:015:0> def h[tên] irb[main]:016:1> puts "Xin chào #{tên}!" irb[main]:017:1> end => nil irb[main]:018:0> h["Matz"] Xin chào Matz! => nil

Nó đã hoạt động… nhưng hãy dành vài giây để xem có gì ở đây.

Giữ các đoạn trong xâu

Đoạn #{tên} nghĩa là gì? Đó là cách mà Ruby chèn thứ gì đó vao trong một xâu. Đoạn ở giữa cặp ngoặc nhọn được chuyển thành một xâu [nếu nó chưa phải] sau đó chèn vào xâu bên ngoài tại chỗ mà đoạn đó được viết. Bạn có thể sử dụng cái này để chắc chắn rằng tên của ai đó đã được viết hoa:

irb[main]:019:0> def h[tên = "Thế giới"] irb[main]:020:1> puts "Xin chào #{tên.capitalize}!" irb[main]:021:1> end => nil irb[main]:022:0> h "chris" Xin chào Chris! => nil irb[main]:023:0> h Xin chào Thế giới! => nil

Ta thấy có hai cách gọi khác nhau ở đây. Một là gọi phương thức không cần ngoặc đơn một lần nữa. Nếu đó là mục đích của bạn thì ngoặc đơn chỉ là tùy chọn. Cách còn lại là lấy tham số mặc định là “Thế giới”. Điều này nghĩa là “Nếu không cung cấp tên thì ta sử dụng tên mặc định là ‘Thế giới’”

Phát triển thành ChàoMừng

Phải làm gì nếu chúng ta muốn có những ChàoMừng thực sự ở xung quanh, nhớ tên bạn, chào đón bạn và luôn kính trọng bạn. Bạn sẽ phải dùng đối tượng! Chúng ta sẽ tạo một lớp ChàoMừng.

irb[main]:024:0> class ChàoMng irb[main]:025:1> def initialize[tên = "Thế giới"] irb[main]:026:2> @tên = tên irb[main]:027:2> end irb[main]:028:1> def xin_chào irb[main]:029:2> puts "Xin chào #{@tên}!" irb[main]:030:2> end irb[main]:031:1> def tm_bit irb[main]:032:2> puts "Tạm biệt #{@tên}, hẹn gặp lại." irb[main]:033:2> end irb[main]:034:1> end => nil

Từ khóa mới ở đây là class nghĩa là lớp. Nó định nghĩa một lớp mới tên là ChàoMừng và một vài phương thức thuộc lớp. Thông báo tới @tên, đây là một biến đối tượng và nó có thể sử dụng trong tất cả các phương thức của lớp, như trong đối tượng được sử dụng với xin_chào và tạm_biệt.

Vậy, làm thế nào để chúng ta thiết lập lớp ChàoMừng này? Tạo một đối tượng

Video liên quan

Chủ Đề