

Hôm nay chúng tôi sẽ chia sẻ cho bạn một số câu hỏi khi tham gia phỏng vấn Ruby on Rails mà chúng ta thường gặp phải. Bài viết này sẽ giúp các bạn tự kiểm tra lại kiến thức cơ sở và hy vọng những bạn chuẩn bị phỏng vấn có thể tham khảo và tự tin hơn.
Rails hoạt động như thế nào khi có request yêu cầu truy cập danh sách bài viết trong ứng dụng Blog?
Khi người dùng click vào button nó sẽ tạo ra một GET request đến URL/ articles, web server sẽ nhận được request này. Ngay khi đó Rails sẽ thực thi controller action tương ứng là index dựa vào URL/ controller được ánh xạ từ file routes.rb. Khi đó Controller gọi article.all để lấy bản ghi articles trong database thông qua các model article. Danh sách các bài viết đó sẽ được gán vào một biến instance và biến này còn được gọi ra trên form để hiển thị danh sách các bài viết cho người dùng.

Ruby là ngôn ngữ lập trình tĩnh hay động?
Ruby là ngôn ngữ động và đây cũng là lý do tại sao bạn có thể thay đổi các loại biến khi thực thi code. Các ngôn ngữ có kiểu động còn là ngôn ngữ mà các kiểu chỉ được gán lên các dữ liệu trong thời gian chương trình đó được thực thi. Điều này có lợi là người lập trình không phải xác định kiểu dữ liệu nào hết mà đồng thời nó còn có thêm lợi thế là gán nhiều hơn một kiểu dữ liệu lên biến.
Chuyện gì sẽ xảy ra khi bạn gọi một phương thức trong Ruby?
Đó là khi một method được gọi, Ruby sẽ xử lý lần lượt 2 công việc đó là tìm kiếm và thực thi. Trước tiên nó sẽ tìm kiếm method bằng cách đi vào class của object, sau đó thì di chuyển từ class đó đến class cha mà nó được kế thừa, tiếp như vậy cho đến khi gặp tổ tiên cuối cùng là Object. Đoạn đường đi đó, nếu tìm được method đang được gọi thì nó sẽ dừng tìm kiếm và thực thi method đó. Và nếu trường hợp class cha cuối cùng vẫn không tìm thấy thì nó sẽ trả về method_missing và kết thúc.
Gemfile là gì?
Gemfile là một tệp nằm trong thư mục gốc của dự án, là nơi đặc tả các dependencies trong một ứng dụng của ruby.
Gemfile.lock là gì?
Gemfile.lock là tệp nằm trong thư mục gốc, nó có chứa chính xác phiên bản của các gem được cài đặt. Nếu trường hợp có một máy khác clone dự án, thì nó cũng sẽ được cài đặt các phiên bản gem tương tự. Hay ngược lại, Gemfile không chỉ định phiên bản cụ thể của gen mà nó sẽ cài đặt phiên bản mới nhất cho gem.
Kể tên một số design pattern (mẫu thiết kế) Rails bạn đã sử dụng
Một số design pattern của Rails bao gồm các service object, value object, form object, query object, view object, policy object hay decorators.
Rails quản lý trạng thái của database như thế nào?
Khi các file migration được generate thêm instructions khi đó các instructions này sẽ hướng dẫn ActiveRecord cách để có thể sửa đổi trạng thái cơ sở dữ liệu hiện có của nó.
Sự khác biệt giữa count, length và size thế nào?
- Count: nó sẽ thực hiện một số truy vấn SQL để có thể đếm được số lượng bản ghi. Method này rất hữu ích nếu số lượng bản ghi có thể thay đổi trong DB tốt hơn so với bộ nhớ.
- length sẽ trả về số lượng items trong collection của bộ nhớ. Khi đó, nó sẽ nhanh hơn so với count vì không có database transaction nào thực hiện. Và nó cũng có thể được sử dụng để đếm các ký tự trong một chuỗi.
- size là một alias của length, nó được sử dụng tương tự so với length.

Bạn đã từng implement chức năng phân quyền trong ruby on rails ra sao?
Việc phân quyền - Authorization nó liên quan đến việc cho phép các kiểu người dùng khác cấp với nhau thì có quyền truy cập khác nhau trong một ứng dụng. Một vào gems hay pundit và cancancan thường có thể dùng để implement các chức năng này. Trong những buổi phỏng vấn ruby on rails sẽ được các nhà tuyển dụng đánh giá xem câu trả lời của ứng viên có phù hợp với nội dung câu hỏi hay không.
Callback là gì?
Callback là một trong những phương thức của Active Record, nó sẽ được gọi vào một thời điểm nào đó trong vòng đời của một đối tượng. Callback thường dùng để thực thi các phương thức logic trước hoặc sau khi đối tượng có một sự thay đổi nào đó. Chúng hay được sử dụng song song với validate dữ liệu để đảm bảo rằng việc ra vào dữ liệu database hoàn toàn chính xác. Nhưng nếu sử dụng Callback không đúng cách thì sẽ tạo ra một số trường hợp xấu gây ra ảnh hưởng đến quá trình test và debug.
Initializers trong Rails nghĩa là gì?
Intializers có chứa logic cấu hình và chỉ chạy khi các ứng dụng được khởi động. Việc này có nghĩa rằng máy chủ Rails cần được khởi động lại nếu Initializers có thay đổi. Chúng được tồn tại trong thư mục/ config/ initializers. Một trong những câu hỏi phỏng vấn ruby on rail đơn giản nhưng thường làm các ứng viên nhầm lẫn.
Sự khác nhau giữa delete và destroy?
delete là cách xóa một bản ghi còn về destroy là xóa một bản ghi và bên cạnh đó còn thực thi callbacks. Callbacks thường được gọi cho destroy là khi đặc tả quan hệ trong file model.
Khi nói “Fat models, skinny controllers” có nghĩa là đang nhắc đến điều gì?
Về logic nghiệp vụ nên được đặt ở trong models chứ không phải là controllers. Việc này sẽ dễ dàng để unit test và tái sử dụng logic đó được hiệu quả hơn. Controllers nó chỉ đơn thuần là truyền thông tin giữa models và views. Nó không được khuyến nghị sử dụng, đặc biệt là những ứng dụng lớn.
Khi nói “skinny controllers, skinny models” nghĩa là đang nói cái gì?
Khi một codebase được phát triển, các model sẽ trở nên phình to ra vì xử lý quá nhiều thứ khiến nó không thể quản lý được. Các mô hình không nên cồng kềnh với logic.
Mọi models có thể được làm gọn hơn bằng cách giữ nguyên các yếu tố cơ bản và chuyển logic rời khỏi các model và thay vào các mẫu thiết kế khác. Câu hỏi phỏng vấn ruby on rails dạng này sẽ rất thường xuyên xuất hiện trong các buổi phỏng vấn.

PORO là gì?
PORO là Plain Old Ruby Object. Hầu hết mọi thứ trong Ruby là đối tượng, nên ActiveRecord cũng có xu hướng sử dụng nhiều các đối tượng phức tạp. Nên thuật ngữ PORO sẽ được dùng để nhấn mạnh một đối tượng nhỏ hay đơn giản là được sử dụng để hỗ trợ logic nghiệp vụ.
Ruby có cho phép việc đa kế thừa không?
Ruby không cho phép kế thừa từ nhiều hơn một lớp cha, nhưng nó có thể cho phép các mixing các module với include và extend.
Ruby là ngôn ngữ định kiểu mạnh hay là yếu?
Ruby là một ngôn ngữ định kiểu mạnh, nó sẽ có lỗi xảy ra nếu bạn cố gắng thực hiện hello + 3.
Strong Parameters là gì?
Strong Parameter được ví giống như 1 bộ lọc các giá trị được phép thay đổi trong params gửi lên.
ActiveRecord là gì?
ActiveRecord là một ruby gem đóng vai tròn là một ORM. Bên cạnh đó thì ORM là Object Relational Mapping, giúp chuyển đổi dữ liệu giữa các hệ thống không tương thích trong lập trình hướng đối tượng. Hiểu cách khác thì nó là cầu nối giữa DB và Rails, nó giúp truy xuất dữ liệu bằng các câu leengj mà Rails cung cấp. Một câu hỏi phỏng vấn ruby on rails các ứng viên nên để tâm để không bỡ ngỡ khi bị hỏi.
Kể vài chiêu thức thực thi hàm trong ruby
Khi bạn có method_name là 1 string hay 1 symbol thì trong Ruby sẽ có vài cách gọi khác như .send(:method_name), .send(“method_name”), …
Devwork đã cùng bạn tìm hiểu 20 câu hỏi phỏng vấn Ruby On Rails và câu trả lời. Chúng tôi hy vọng những thông tin này sẽ hữu ích với bạn. Và nếu bạn đang quan tâm đến lĩnh vực tuyển dụng thì đừng bỏ qua Devwork - Nền tảng tuyển dụng IT kết nối HR Freelancer.

Devwork là Nền tảng TUYỂN DỤNG IT CẤP TỐC với mô hình kết nối Nhà tuyển dụng với mạng lưới hơn 30.000 headhunter tuyển dụng ở khắp mọi nơi.Với hơn 1800 doanh nghiệp IT tin dùng Devwork để :
Tag Cloud:
Tác giả: hieu
Việc làm tại Devwork
Bài viết liên quan
Kiếm tiền từ TikTok: Cách tận dụng nền tảng tạo thu nhập online
Nếu bạn đang tìm kiếm một kênh kiếm tiền online hiệu quả, đột phá và có tính giải trí cao, thì TikTok chính là nền tảng đáng để lựa chọn. TikTok không chỉ là nơi để lướt xem các video vui nhộn mà còn là mỏ vàng tiềm năng cho bất kỳ ai biết cách khai thác. Bài viết này của devwork.vn sẽ bật mí những cách thức từ cơ bản đến nâng cao để bạn bắt đầu hành trình kiếm tiền từ TikTok của riêng mình. Đừng bỏ lỡ nhé!...
CTR là gì? CTR bao nhiêu là tốt? Cách tối ưu hiệu quả
Trong marketing online, có một chỉ số mà bất cứ ai làm SEO, chạy quảng cáo hay email marketing đều phải biết – đó chính là CTR. Vậy CTR là gì, chỉ số này bao nhiêu được coi là tốt và làm sao để tối ưu hiệu quả? Hãy cùng Devwork đi sâu tìm hiểu qua bài viết dưới đây nhé!

Sale là gì? Hiểu đúng về nghề sale và cơ hội phát triển
Trong kinh doanh, sale không chỉ là một vị trí bán hàng mà là trái tim của mọi doanh nghiệp. Bài viết này sẽ giúp bạn khám phá định nghĩa chuẩn xác sale là gì, vai trò, các thuật ngữ liên quan như nhân viên sale l và tại sao làm sale lại được xem là một trong những công việc "hái ra tiền" nhất hiện nay. Cùng Devwork tìm hiểu ngay nhé và chắc chắn rằng quan điểm của bạn về nghề Sale có thể thay đổi hoàn toàn sau bài viết này!

Thumbnail là gì? Tất tần tật về ảnh thu nhỏ bạn cần biết
Hình ảnh luôn là yếu tố quan trọng tạo nên ấn tượng ban đầu và quyết định hành vi của người dùng khi tiếp cận nội dung. Trên internet, thumbnail chính là “bộ mặt” đầu tiên giúp video, bài viết hay sản phẩm của bạn nổi bật giữa hàng loạt lựa chọn khác. Vậy thumbnail là gì, tại sao nó lại có sức hút mạnh mẽ đến vậy và làm thế nào để thiết kế một ảnh thumbnail đẹp, chuyên nghiệp? Hãy cùng Devwork tìm hiểu ngay trong bài viết này nhé!

Workshop là gì? Giải mã sức hút của hình thức đào tạo hiện đại
Ngày nay, cụm từ “workshop” xuất hiện ngày càng nhiều trong học tập, công việc và cả đời sống cá nhân. Nhưng thực chất workshop là gì, vì sao nó trở thành xu hướng được ưa chuộng, và cách tổ chức workshop như thế nào để mang lại hiệu quả cao? Hãy cùng Devwork khám phá chi tiết trong bài viết này nhé!
Fanpage là gì? Cách hiểu đơn giản và lợi ích khi sử dụng
Nếu bạn đang kinh doanh online hoặc muốn xây dựng thương hiệu cá nhân, chắc hẳn đã nghe đến khái niệm fanpage. Nhưng chính xác thì fanpage là gì, có khác gì tài khoản Facebook cá nhân hay không? Và liệu một người có thể quản lý nhiều fanpage cùng lúc? Hãy cùng Devwork tìm hiểu chi tiết trong bài viết này.
















