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
Làm Thế Nào Để Xây Dựng Đội Ngũ IT Mạnh Mẽ Trong Thời Gian Ngắn?
Xây dựng một đội ngũ IT mạnh mẽ là một trong những yếu tố quan trọng giúp các công ty công nghệ phát triển bền vững và nhanh chóng. Tuy nhiên, với thị trường IT ngày càng cạnh tranh, việc tìm kiếm và tuyển dụng nhân sự chất lượng không phải là điều dễ dàng. Dưới đây là những bước cụ thể giúp bạn xây dựng một đội ngũ IT mạnh mẽ trong thời gian ngắn, đồng thời tối ưu hóa quy trình tuyển dụng hiệu quả thông qua các dịch vụ tuyển dụng chuyên nghiệp....
Dịch vụ tuyển dụng IT cấp tốc - Bí quyết cho doanh nghiệp vừa và nhỏ
Trong thời đại công nghệ phát triển nhanh chóng như hiện nay, các doanh nghiệp vừa và nhỏ (SME) cần phải có đội ngũ nhân sự IT chất lượng để duy trì và phát triển kinh doanh. Tuy nhiên, việc tuyển dụng nhân sự IT phù hợp không phải lúc nào cũng dễ dàng, đặc biệt là khi nhu cầu về các kỹ năng công nghệ ngày càng cao. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về dịch vụ tuyển dụng IT cấp tốc và bí quyết giúp doanh nghiệp vừa và nhỏ tuyển dụng nhanh chóng và hiệu quả.
Top Các Vị Trí IT Được Tuyển Dụng Nhiều Nhất Năm 2024
Ngành công nghệ thông tin (IT) luôn là một trong những lĩnh vực phát triển mạnh mẽ nhất trong thập kỷ qua. Đặc biệt, năm 2024 hứa hẹn sẽ tiếp tục là một năm sôi động đối với thị trường lao động IT khi các công ty không ngừng tìm kiếm những ứng viên chất lượng để đáp ứng nhu cầu số hóa và phát triển công nghệ. Dưới đây là danh sách các vị trí IT được tuyển dụng nhiều nhất trong năm 2024, cùng các kỹ năng cần thiết và cơ hội việc làm mà bạn không nên bỏ qua.
Những khó khăn thách thức và giải pháp trong Tuyển Dụng IT 2024
Ngành công nghệ thông tin (IT) tiếp tục phát triển mạnh mẽ, kéo theo nhu cầu tuyển dụng nhân sự chất lượng ngày càng tăng. Tuy nhiên, năm 2024 cũng mang đến không ít thách thức trong việc tuyển dụng IT, đặc biệt là trong bối cảnh cạnh tranh khốc liệt và sự khan hiếm nhân tài. Bài viết này sẽ phân tích những khó khăn, thách thức mà doanh nghiệp gặp phải, đồng thời đề xuất các giải pháp hiệu quả để cải thiện quy trình tuyển dụng.
Tại sao tuyển dụng IT cấp tốc lại là xu hướng không thể bỏ qua?
Cuối năm là dịp các doanh nghiệp đánh giá hiệu quả làm việc và trao thưởng để khích lệ tinh thần nhân viên. Trong ngành IT, thưởng cuối năm không chỉ mang giá trị tài chính mà còn đóng vai trò quan trọng trong việc giữ chân nhân tài. Bài viết này sẽ giúp doanh nghiệp hiểu xu hướng thưởng cuối năm 2024 và cách xây dựng kế hoạch thưởng hiệu quả.
Xây Dựng Chính Sách Thưởng Cuối Năm Công Bằng Trong Ngành IT: Chìa Khóa Giữ Chân Nhân Tài
Ngành công nghệ thông tin (IT) đang phát triển với tốc độ nhanh chóng, kéo theo sự cạnh tranh gay gắt giữa các doanh nghiệp để thu hút và giữ chân nhân tài. Trong bối cảnh đó, chính sách thưởng cuối năm không chỉ là động lực tài chính, mà còn là yếu tố chiến lược để xây dựng lòng trung thành và tạo động lực cho đội ngũ nhân viên. Một chính sách thưởng công bằng và minh bạch sẽ mang lại lợi ích cho cả doanh nghiệp lẫn người lao động, giúp đôi bên phát triển bền vững.