Bài báo này đã được dịch sang tiếng Nga, cảm ơn Leonid Suschev.
Bạn vừa thay đổi nhóm tại nơi làm việc hoặc vừa bắt đầu một công việc mới. Hoặc bạn tìm thấy một lỗi trong ứng dụng nguồn mở yêu thích của mình và muốn viết yêu cầu kéo đầu tiên của mình. Nhưng sau khi bạn git clone
và mở app/models
, bạn hoàn toàn bị mất. Mặc dù cấu trúc Rails giống như những gì bạn đã quen, không thể tìm ra cách của bạn xung quanh mã . Vậy cách nhanh nhất để tìm hiểu ứng dụng Rails mới, không quen thuộc này là gì?
Xây dựng vốn từ vựng cho dự án
Player
là gì và Session
là gì ? Còn về Account
so với User
so với Provider
?
Mỗi ứng dụng sử dụng các thuật ngữ khác nhau và các phép ẩn dụ khác nhau. Và nếu bạn không hiểu từ vựng của một ứng dụng, bạn sẽ lãng phí thời gian duyệt app/models
mỗi khi bạn thấy một tên lớp mới. Hoặc tệ hơn, bạn sẽ đưa ra những giả định không tốt về cách hoạt động của các tính năng.
Vì vậy, điều đầu tiên bạn phải làm là xây dựng vốn từ vựng đó. Tìm hiểu ứng dụng này được làm bằng gì. Và nếu bạn muốn làm điều đó nhanh chóng, hãy bắt đầu bằng cách đọc db/schema.rb
. Bạn sẽ tìm hiểu các thuật ngữ ứng dụng sử dụng và cách tất cả dữ liệu của ứng dụng khớp với nhau. Đặc biệt chú ý đến *_id
để bạn có thể xem cách các mô hình kết nối với nhau.
Nếu bạn dễ hình dung hơn, hãy thử đá quý rails-erd. Nó tạo ra một sơ đồ từ các mô hình Rails của bạn, hiển thị tất cả các bảng và cột của bạn và cách chúng tương tác. Giữ một bản in trên bàn của bạn và bạn sẽ có thời gian dễ dàng hơn khi hiểu phần còn lại của ứng dụng của mình.
Tiếp tục với các mô hình và đối tượng Ruby thuần túy
Trong một ứng dụng Rails được thiết kế tốt, không phải mọi thứ sẽ được hỗ trợ bởi một bảng cơ sở dữ liệu. Để tiếp tục xây dựng vốn từ vựng cho dự án của bạn, hãy xem bên trong app/models
cho các lớp và thuộc tính bổ sung mà bạn không thấy bên trong db/schema.rb
.
Đừng dành quá nhiều thời gian ở đây. Bạn rất dễ bị lạc hướng về cách mọi thứ hoạt động. Bạn chỉ ở đây để điền từ vựng dự án của mình.
Khi tìm hiểu thêm về các phần mà ứng dụng của bạn được xây dựng, bạn có thể tự hỏi tại sao các đối tượng nhất định tồn tại hoặc tại sao chúng khớp với nhau theo cách chúng làm. Và đó là điểm của giai đoạn tiếp theo.
Dùng thử ứng dụng và tìm hiểu “tại sao”
Khi bạn cảm thấy thoải mái với các đối tượng mà ứng dụng sử dụng, hãy khởi động ứng dụng. Nhấp vào xung quanh và khám phá. Nếu có tài liệu, nó có thể giúp hướng dẫn bạn. Nếu không, chỉ cần xem những thuật ngữ bạn vừa học trở nên sống động.
Khi sử dụng ứng dụng, bạn sẽ bắt đầu thấy nó từ cấp cao hơn. Bạn sẽ nhận thấy rằng có những lý do tại sao các mô hình có các liên kết như vậy. Tại sao chúng được nhóm lại với nhau. Tại sao những tên lớp đó được chọn. Có thể tất cả chúng đều xuất hiện trên các trang cùng nhau hoặc được tạo từ cùng một biểu mẫu.
Và khi bạn bắt đầu hiểu các bộ phận mà ứng dụng được xây dựng và lý do tại sao chúng tồn tại, bạn đã sẵn sàng tìm ra cách hoạt động của tất cả.
Tìm ra “cách thức”
Đến giờ, bạn đã biết đủ về ứng dụng để tìm hiểu chi tiết về ứng dụng. Bạn sẽ không bị phân tâm bởi các thuật ngữ mới và các tương tác mới. Bạn có thể chọn một thứ bạn muốn học và làm theo nó đến hết.
Có rất nhiều cách bạn có thể đi từ đây. Đây là một số mục yêu thích của tôi:
- Duyệt qua giao diện người dùng , và nghĩ:Làm thế nào mà tính năng này có thể được xây dựng, biết những gì bạn biết về các phần này? Bạn có thể đoán? Sử dụng trình gỡ lỗi để xác nhận phỏng đoán của bạn hoặc khám phá cách hoạt động thực sự của nó.
- Chọn một trường hợp thử nghiệm và làm theo tất cả các cách thông qua ứng dụng. Đọc qua mã hoặc khám phá mã bằng trình gỡ lỗi.
- Chọn một tuyến đường hoặc hành động của bộ điều khiển. Bạn có thể tìm ra cách tiếp cận hành động của bộ điều khiển đó từ giao diện người dùng không?
Đây cũng là thời điểm tốt để quay lại các mô hình và các đối tượng Ruby đơn giản của bạn. Và lần này, bạn có thể đi vào chi tiết về cách hoạt động của các mô hình.
Trở nên tò mò về ứng dụng. Tìm lỗ hổng trong kiến thức của bạn và đóng chúng bằng trình gỡ lỗi và mã.
Tại sao không bắt đầu với các bài kiểm tra?
Tôi luôn nghe mọi người nói:“Nếu bạn muốn hiểu cơ sở mã, hãy bắt đầu với các bài kiểm tra! Các bài kiểm tra là tài liệu thực thi! ”
Nhưng điều này chưa bao giờ hiệu quả với tôi. Các trường hợp thử nghiệm quá hẹp, quá chi tiết. Nếu tôi học được từ các bài kiểm tra, tôi cảm thấy như mình đang thiếu điểm lớn hơn của ứng dụng.
Để hiểu được thứ gì đó lớn như ứng dụng Rails hay thậm chí là hầu hết các loại đá quý, trước tiên tôi luôn cần một cái nhìn tổng quan. Tôi phải biết thành phần nào tạo nên ứng dụng và tại sao chúng tồn tại.
Nhưng tuyệt đối, hãy đảm bảo chạy thử nghiệm. Nếu không, bạn đang làm việc với một hệ thống bị hỏng. Và bạn không thể dựa vào những thứ bạn khám phá được từ một hệ thống bị hỏng.
Cái gì, tại sao, bằng cách nào
Để hiểu một ứng dụng Rails mới, hãy thực hiện ba giai đoạn sau, theo thứ tự sau:
- Cái gì các bộ phận tạo nên ứng dụng này?
- Tại sao những bộ phận đó có tồn tại không? Tại sao chúng lại kết hợp với nhau theo cách đó?
- Cách thức mỗi phần có hoạt động không?
Điều đó sẽ cung cấp cho bạn cả quan điểm rộng và kiến thức hẹp bạn cần để biến ứng dụng mới đó của bạn.
Tái bút. Tôi đang phát hành Practice Rails tuần tới. Vì vậy, nếu bạn muốn nhận được chiết khấu 25% khi truy cập sớm, bạn sẽ muốn đặt hàng sớm!