Categories
Dev's Corner

Ruby on rails là gì? Các web học Ruby on rails miễn phí mà chất lượng

Ruby on Rails là gì?

Ruby on Rails (đôi khi là RoR) là khung ứng dụng web mã nguồn mở phổ biến nhất.

Ruby on Rails là gì?
Ruby on Rails là gì? Ảnh: onix-systems

Nó được xây dựng bằng ngôn ngữ lập trình Ruby.

Bạn có thể sử dụng Rails để giúp bạn xây dựng các ứng dụng, từ đơn giản đến phức tạp, không có giới hạn nào cho những gì bạn có thể làm với Rails!

Khung là gì?

Khung là một tập hợp mã, công cụ và tiện ích cung cấp cho bạn một cấu trúc cụ thể để làm việc khi bạn viết phần mềm.

Cấu trúc này làm cho code của bạn có tổ chức hơn.

Công việc của bạn trở nên dễ dàng khi bạn học cách sử dụng nó một cách chính xác.

Ruby on Rails chính xác làm gì?

Rails giúp bạn xây dựng website.

Loại website mà bạn sử dụng hàng ngày.

Các website cho phép bạn đăng nhập, để lại nhận xét và đánh giá, mua hàng…

Rails được làm từ một số thành phần để tạo điều kiện thuận lợi cho việc này.

Ví dụ:

Active Record giúp bạn đọc, tạo và cập nhật các bản ghi trong cơ sở dữ liệu của mình mà không cần phải là một thiên tài về cơ sở dữ liệu.

Trong khi cơ chế định tuyến cho phép bạn dễ dàng ánh xạ URL (như /login) với các hành động cụ thể.

Nếu bạn phải code tất cả những thứ này từ đầu, không có khung, thì đó sẽ là một khối lượng công việc KHỔNG LỒ.

Rails xử lý tất cả những chi tiết này cho bạn…

Vì vậy, bạn có thể tập trung vào việc xây dựng các ứng dụng của riêng mình!

Ví dụ về ứng dụng Ruby on Rails

Ai đang sử dụng Rails?

Đây là một vài ví dụ về các trang web Ruby on Rails

Đây là một số:

  • Github
  • Shopify
  • Ask.fm
  • Kickstarter
  • Viết nguệch ngoạc
  • ConvertKit
  • Twitch
  • Instacart
  • Zendesk
  • SoundCloud

Đây không phải là những công ty nhỏ!

Và tất cả họ đều được hưởng lợi từ việc sử dụng Ruby on Rails để phục vụ khách hàng của mình.

Bạn có nên học Ruby on Rails?

Nếu bạn đang tìm kiếm một sự nghiệp đầy thử thách, vui vẻ và sáng tạo trong việc xây dựng website tuyệt vời giúp ích cho mọi người thì Ruby on Rails có thể dành cho bạn.

Bất kỳ ai cũng có thể học Rails, ngay cả khi bạn chưa có kinh nghiệm lập trình.

Có thể mất nhiều thời gian hơn hoặc ít hơn tùy thuộc vào vị trí của bạn.

Nhưng mọi kỹ năng đều CÓ THỂ được học và làm chủ.

Những lợi ích của việc sử dụng Rails:

  • Đó là một giải pháp tích hợp. Rails cung cấp cho bạn mọi thứ bạn cần để tạo một ứng dụng web.
  • Các quy ước và cấu hình mặc định của Rails giúp bạn tiết kiệm rất nhiều công việc!
  • Rails có một hệ sinh thái tuyệt vời để bạn có thể tìm thấy tất cả các công cụ và hỗ trợ mà bạn có thể cần
  • Nó đang được phát triển tích cực, vì vậy bạn thường xuyên nhận được các bản sửa lỗi và các tính năng mới!

Và lý do tốt nhất của tất cả:

“Bạn nên sử dụng Ruby, thứ ngôn ngữ đẹp và sang trọng nhất mà tôi chưa từng gặp”

– DHH, cha đẻ Ruby on Rails

Triết lý Rails

Ruby on Rails là một khung dựa trên quy tắc.

Một trong quy tắc đó là ‘quy ước quan trọng hơn cấu hình’.

Điều đó nghĩa là gì?

Điều đó có nghĩa là bạn phải đưa ra ít quyết định hơn vì những người tạo ra Rails đã đưa ra những quyết định đó cho bạn.

Bởi vì bạn phải đưa ra ít quyết định hơn, bạn sẽ năng suất hơn và hoàn thành công việc nhanh hơn.

Nhưng nếu bạn muốn thay đổi một số trong số này, bạn vẫn có thể.

Một số ví dụ về ‘quy ước cao hơn cấu hình’?

Rails tìm kiếm các tên tệp cụ thể khi tìm kiếm code của bạn.

Ví dụ: nếu bạn có mô hình Book, Rails sẽ tìm kiếm một tệp có tên là app/models/book.rb.

Đó là quy ước.

Thay vì phải nói: “Này Rails, đây là nơi để tìm tệp này”

Rails cho bạn biết nó phải ở đâu.

Tổng quan về Rails

Làm thế nào để Rails phù hợp với bức tranh toàn cảnh của một ứng dụng web hoàn chỉnh?

Tôi vẽ cái này để bạn dễ hiểu:

Tổng quan về Rails
Tổng quan về Rails

Rails nhận các yêu cầu, định tuyến chúng đến hành động thích hợp, sau đó tương tác với cơ sở dữ liệu (thông qua ActiveRecord) để thực hiện yêu cầu. Sau đó, nó trả về kết quả (HTML hoặc JSON) cho người dùng.

Nếu bạn muốn xem kỹ thành phần Rails, chúng ta phải có một chút kỹ thuật.

Rails sử dụng kiến trúc MVC.

MVC là viết tắt của Model, View, Controller.

Đây là minh họa:

Kiến trúc MVC
Kiến trúc MVC

Các hành động được tổ chức thành các bộ điều khiển (controller), các bộ điều khiển ra quyết định về cách xử lý yêu cầu và chúng yêu cầu cơ sở dữ liệu cung cấp bất kỳ dữ liệu nào mà mình cần.

Sau đó, bộ điều khiển hiển thị chế độ xem.

Chế độ xem là thiết kế và nội dung của trang.

Đây là sản phẩm cuối cùng sẽ được trả lại cho người dùng.

Ai đã phát minh ra Ruby on Rails?

David Heinemeier Hansson (DHH) đã phát hành Ruby on Rails 1.0 vào tháng 12 năm 2005.

Gần 14 năm sau, David vẫn đang làm việc trên Rails với một nhóm lớn các cộng tác viên mã nguồn mở để làm cho nó tốt hơn và nhanh hơn.

Tại sao anh ấy lại tạo ra Rails?

“Tôi tạo Rails vì tôi muốn tận hưởng những gì mình làm”

DHH

Ruby vs. Ruby on Rails

Ruby là một ngôn ngữ lập trình.

Ruby on Rails là một khung công tác được xây dựng trên nền tảng của Ruby.

Có gì khác biệt?

Ruby là thứ chuyển đổi code (bao gồm cả Rails) thành thứ mà máy tính của bạn có thể hiểu.

Rails là một lớp trên của Ruby. Một lớp giúp bạn xây dựng các ứng dụng web.

Nhưng bản thân Ruby có thể làm được nhiều hơn thế, nó là một ngôn ngữ lập trình rất mạnh.

Dưới đây là một số điều bạn có thể làm:

  • Bạn có thể thu thập thông tin và tìm kiếm các trang web để trích xuất thông tin
  • Bạn có thể tự động hóa các tác vụ như sao lưu, cảnh báo và thông báo
  • Bạn có thể xây dựng tất cả các loại công cụ và tiện ích, như trình phân tích cú pháp nhật ký, trình quét bảo mật, phân tích nội dung tệp…

Bài học rút ra là:

Rails làm cho Ruby trở thành một nền tảng thực sự tốt để xây dựng các ứng dụng web, nhưng vẫn có một hệ sinh thái mạnh mẽ các chương trình không phải Rails được xây dựng bằng Ruby.

Làm thế nào để học Rails

Đây là sai lầm lớn nhất mà nhiều người mắc phải, nhưng bạn có thể tránh nó nếu bạn hiểu điều này:

Hãy tìm hiểu các khái niệm lập trình chung và ngôn ngữ lập trình Ruby trước. Rồi hãy nhảy vào Rails!

Lý do rất đơn giản.

Bạn KHÔNG THỂ bắt đầu xây một ngôi nhà từ mái được…

Nếu bạn không hiểu cơ sở về cách Rails hoạt động, bạn sẽ bị rối hàng.

Khi bạn thấy thông báo lỗi, nó sẽ như thể tiếng nước ngoài.

Và điều đó sẽ RẤT khó chịu đối với bạn.

Giải pháp?

Bắt đầu bằng cách học Ruby.

Hãy kiên nhẫn, hãy chắc rằng bạn sẽ học tốt mọi thứ.

6 Website miễn phí giúp bạn học Ruby on Rails

Dưới đây là tổng quan các website học Ruby on Rails miễn phí giúp bạn thiết lập và viết code nhanh chóng.

1. Codecademy

Codecademy là một trong những trường dạy code trực tuyến nổi tiếng nhất cung cấp các khóa học lập trình miễn phí.

Trang web bao gồm các hướng dẫn riêng biệt cho cả Ruby và Rails, và khi hoàn thành, bạn sẽ xây dựng được tám ứng dụng web đầy đủ chức năng.

2. The Ruby on Rails Tutorial

Nếu phong cách của bạn là đọc, chắc chắn bạn sẽ bị cuốn hút vào Hướng dẫn về Ruby on Rails của Michael Hartl.

Ngay cả khi bạn chưa bao giờ lập trình một dòng Ruby nào, cuốn sách của Hartl sẽ dạy bạn cách xây dựng “các ứng dụng web thực sự, có sức mạnh công nghiệp”.

Ấn bản gần đây nhất của cuốn sách đã được cập nhật cho Rails 5, vì vậy bạn được đảm bảo sẽ tìm hiểu các phương pháp RoR cập nhật nhất.

Sách có sẵn miễn phí trực tuyến, nhưng mẹo là: mua sách điện tử và bạn cũng sẽ có quyền truy cập vào các video độc quyền.

3. Try Ruby

Try Ruby, giống như Codecademy, là một trang web tương tác dành cho người mới bắt đầu sử dụng Ruby on Rails cho phép bạn lập trình trong trình duyệt của mình.

Nhưng không giống như Codecademy, nó có một phong cách siêu vui nhộn và dễ tiếp cận.

Tất cả những gì cần làm là hoàn thành một loạt các bài tập ngắn và bạn sẽ nắm được những kiến ​​thức cơ bản về ngôn ngữ Ruby.

4. Ruby Koans

Bạn nghĩ rằng bạn đã là một chuyên gia Ruby? Hãy thử Ruby Koans.

Trong Thiền tông, công án là một câu hỏi hoặc một câu nói nghịch lý nhằm khơi gợi sự suy nghĩ của người nghe.

Trong Ruby Koans, mỗi “công án” là một bài tập viết code phức tạp đòi hỏi bạn phải sử dụng kiến ​​thức về Ruby để chương trình hoạt động chính xác.

Các bài tập được sắp xếp thành một loạt các bài kiểm tra mà bạn cần vượt qua để tiếp tục xây dựng với khung web Rails.

5. Rails for Zommbie

Rails for Zombies là bản sao của hướng dẫn Try Ruby.

Sử dụng video hướng dẫn và định dạng tương tác, giống như trò chơi, khóa học Rails for Zombies giúp bạn học Rails từ đầu thông qua một loạt các bài tập lập trình.

Tác giả của khóa học nổi tiếng vì đã giúp xây dựng Envy Labs, Starter Studio và Code School, và bản dùng thử miễn phí 10 ngày sẽ giúp bạn bắt đầu và sử dụng trước khi bạn biết điều đó.

6. Roadmap for Learning Rails

Vì vậy, bạn đã thử Rails với một số tài nguyên khác, nhưng bạn đã thực sự sẵn sàng sử dụng nó trong production chưa?

Lộ trình Học Rails sẽ giúp bạn nắm vững RoR và phát triển web back-end — và đó không phải là tất cả.

Trang web phác thảo tất cả các khái niệm quan trọng nhất mà bạn cần biết để thành công trong sự nghiệp phát triển phần mềm, không chỉ bao gồm Ruby on Rails mà còn cả HTML / CSS, JavaScript, Git, Heroku và SQL.

Nguồn: RubyGuides, Fullstack Academy

Categories
Dev's Corner

Junior Ruby on Rails Developer cần có kỹ năng gì?

Kỳ này, Gambaru mời bạn theo dõi bài viết trên Medium của Krzysztof Kempiński, 1 lập trình viên Ruby on Rails, iOS và Elixir về những kỹ năng ông cho là quan trọng một Junior Ruby on Rails Dev cần trau dồi.

Hãy chia sẻ góc nhìn và trải nghiệm của riêng bạn ở phần comment cuối bài viết nhé.

Junior Ruby on Rails Dev cần kỹ năng gì?
Junior Ruby on Rails Dev cần kỹ năng gì? Ảnh: Pixabay – Pexels

Trong sự nghiệp của mình, tôi có nhiều cơ hội làm việc với lập trình viên Ruby on Rails cũng như tuyển dụng nhiều lập trình viên vị trí Junior cho các công ty.

Dưới đây là danh sách các kỹ năng theo tôi là cần thiết cho vị trí này.

Các kỹ năng Junior Ruby on Rails Developer cần trang bị

Lập trình viên Ruby on Rails không chỉ cần biết cách phát triển phần mềm mà còn phải liên tục cải thiện bản thân để trở thành một phần giá trị của đội nhóm, tạo ra được tác động đến sản phẩm mình xây dựng.

1. Kỹ năng mềm

Kỹ năng mềm - Junior Ruby on Rails Dev
Kỹ năng mềm. Ảnh: Team vector created by macrovector – www.freepik.com

Tiếng Anh

Kỹ năng mềm quan trọng nhất cho mọi lập trình viên. Lập trình viên sử dụng tiếng Anh hằng ngày trong công việc, chủ yếu là cho việc đọc hơn là viết.

Tuy nhiên, cải thiện kỹ năng giao tiếp trong tiếng Anh vẫn quan trọng do bạn sẽ sử dụng nó khi trao đổi, liên lạc với khách hàng và các thành viên trong nhóm.

Tham vọng

Bạn không muốn ở mãi vị trí Junior phải không?

Hãy chủ động tham gia giải quyết các vấn đề và các tasks khó, phức tạp hơn, bên cạnh những tasks thường nhật.

Tư duy “Tôi không biết”

Chỉ khi thừa nhận rằng mình không biết một điều, bạn mới có thể học nó.

Các đồng nghiệp Senior thường sẽ sẵn lòng giúp đỡ và hỗ trợ nếu bạn chia sẻ rằng mình chưa nắm rõ một điều gì.

Đừng ngại gì hết bạn nhé vì đây là một quá trình học hỏi bình thường.

Sẵn sàng và khát khao học hỏi

Hãy cố gắng thể hiện mong muốn học hỏi này.

Liên tục đặt câu hỏi, dành thêm thời gian nghiên cứu và tập code các dự án ngoài lề yêu thích của mình.

Kỹ năng tìm kiếm trên Internet

Là một lập trình viên Junior, bạn phải học cách để nhanh chóng biết nơi tìm câu trả lời cho câu hỏi của mình: Stack Overflow, Google hay trên các diễn đàn mạng v.v.

Sự phù hợp với Văn hóa / Doanh nghiệp

Tôi nghĩ điều này cực kỳ quan trọng.

Nếu bạn cảm thấy mình không thuộc về công ty, hoặc công ty biết bạn không hợp với tinh thần làm việc của họ, sẽ không có ý nghĩa gì cho hai bên nếu tiếp tục.

Hiệu suất làm việc sẽ tăng lên chỉ khi bạn cảm thấy ổn và thoải mái trong môi trường làm việc hiện tại.

2. Ruby

Cú pháp

Hãy tìm hiểu một số yếu tố cơ bản của ngôn ngữ Ruby on Rails như vòng lặp, lớp, câu lệnh điều kiện, mô-đun, v.v.

Lập trình Hướng đối tượng

Là một Ruby Dev, bạn sẽ làm việc chủ yếu với lập trình hướng đối tượng, do đó hãy tìm hiểu kỹ các khái niệm về OOP trong Ruby như: các lớp, đối tượng, inheritance – composition, blocks – procs – lambdas, include – extend một mô-đun.

3. Ruby on Rails

Kỹ năng Ruby on Rails.
Kỹ năng Ruby on Rails. Ảnh: Chris Ried – Unsplash

MVC Paradigm

Đây là cấu trúc của RoR framework. Bạn cần biết lớp nào chịu trách nhiệm cho việc gì và làm thế nào để cấu trúc được ứng dụng để có thể đặt business logic đúng nơi.

ERB / ​​Haml

Hai hệ thống templating / view phổ biến nhất. Tôi đề nghị bạn nên bắt đầu tìm hiểu về ERB trước.

ActiveRecord

Hầu hết các ứng dụng web sử dụng data persistent. Bạn phải biết ActiveRecord, về model, migration, association và validation.

Cấu hình của một ứng dụng mới

Hãy thường xuyên thực hành! Xây dựng một dự án của riêng mình và cố gắng học bằng coding. Để làm điều này, bạn sẽ phải biết cách cấu hình dự án mới ngay từ những giai đoạn đầu.

Unit testing với Rspec

Kiểm thử là cách tiếp cận rất phổ biến đối với các dự án được xây dựng bằng Ruby on Rails. Rspes là công cụ cực kỳ phổ biến.

Bạn phải biết cách viết các unit test với Rspec vì hiệu quả công việc cần được đảm bảo bởi các test để được approved/merged.

API + JSON

Ruby on Rails thường được sử dụng như một API provider, vì vậy bạn cần làm quen với khái niệm API và định dạng JSON.

Khái niệm cơ bản về giao thức REST và HTTP

Rất nhiều ứng dụng web hoạt động như một ứng dụng REST. Bạn nên làm quen với giao thức HTTP, ít nhất là xác định được HTTP verbs và một vài trạng thái phổ biến nhất.

4. Kỹ năng Front-end

Kỹ năng Front end
Kỹ năng Front end. Ảnh: Greg Rakozy – Unsplash

HTML5

Một số điều cơ bản về HTML

JS

Kiến thức về JavaScript, jQuery và các framework JavaScript phổ biến nhất. Và nếu bạn biết thêm một số kiến ​​thức về ES6 nữa là quá chuẩn rồi.

CSS

Kiến ​​thức về cách Cascading Style Sheets hoạt động và các khái niệm liên quan đến SCSS / SASS.

5. Cơ sở dữ liệu

Khái niệm cơ bản về SQL

Ngay cả khi không phải viết bất kỳ SQL nào vì ActiveRecord làm điều đó, bạn sẽ cần phải đọc logs để hiểu hoạt động gì đang xảy ra.

PostgreSQL / MySQL

Hai công cụ cơ sở dữ liệu phổ biến nhất. Sẽ rất tốt nếu biết một số khác biệt và cách cài đặt chúng trên máy của mình.

Khái niệm về cơ sở dữ liệu NoSQL

Mặc dù không phổ biến như cơ sở dữ liệu SQL, nhiều dự án hiện nay vẫn sử dụng NoSQL.

6. Công cụ

Git

Công cụ cần thiết để quản lý code. Bạn phải biết Git là gì, làm thế nào để tạo nhánh mới, cách pull và push code.

Deployment

Một số công cụ để deploy cần biết như Heroku, Capistrano, Docker, CI.

Công cụ quản lý dự án /ticket

Trello / Asana / Pivotal / Github v.v.

Công cụ mà Junior Ruby on Rails Dev sử dụngCông cụ mà Junior Ruby on Rails Dev sử dụng
Công cụ mà Junior Ruby on Rails Dev sử dụng. Ảnh: freepik.com

Theo Krzysztof Kempiński