Bạn tự tin về những ý tưởng cốt lõi đằng sau Rails. Bạn có thể viết mã làm việc, không có vấn đề. Và bạn đang tìm hiểu thêm về chất lượng mã, cấu trúc lại, viết các bài kiểm tra tuyệt vời và thiết kế hướng đối tượng.
Đến thời điểm này, bạn bắt đầu cảm thấy rằng bạn đang đạt được điều đó, rằng bạn đang trên con đường trở thành một chuyên gia. Khi nhìn lại phía sau, bạn sẽ thấy mình đã đi được bao xa và bạn khá hài lòng với sự tiến bộ của mình.
Vậy tại sao bạn cảm thấy quá chậm? Bây giờ bạn quan tâm đến việc kiểm tra, khả năng bảo trì và thiết kế, có vẻ như bạn sẽ mất nhiều thời gian hơn để vận chuyển bất cứ thứ gì!
Thậm chí có có thể không để gửi mã chất lượng cao một cách nhanh chóng?
Tất cả đều là một phần của quy trình
Cảm giác này cực kỳ phổ biến, bất kể bạn đang học gì.
Bây giờ bạn không còn là người mới bắt đầu, bạn bắt đầu thấy tất cả các hình dạng khác nhau mà mã của bạn có thể có. Bạn có nhiều lựa chọn thay thế hơn để suy nghĩ bất cứ khi nào bạn đặt một dòng mã xuống. Bạn phải kiểm tra các trường hợp cạnh mà bạn chưa từng nhận ra trước đây.
Bạn đã học được rất nhiều kỹ năng hữu ích. Nhưng hiện tại, họ vẫn phải suy nghĩ rất nhiều. Bạn phải cân nhắc mọi quyết định của mình, vì vậy bạn cảm thấy thoải mái rằng mình đang đưa ra quyết định đúng đắn dựa trên những điều bạn đã học được.
Tuy nhiên, nó sẽ nhanh hơn. Các kỹ năng bạn đã học sẽ trở nên tự động hơn. Bạn sẽ xây dựng trực giác. Và bạn sẽ có thể đưa ra quyết định tốt hơn nhanh chóng hơn.
Thật tuyệt khi biết điều này, nhưng nó không giúp ích được gì cho bạn ngay bây giờ . Vì vậy, những gì có thể bạn làm gì bây giờ, để hoàn thành mọi việc nhanh hơn?
Thực hiện theo từng giai đoạn
Nếu bạn bị ám ảnh bởi việc viết mã hoàn hảo, chất lượng cao, có khả năng bảo trì cao mỗi khi bạn đặt ngón tay lên bàn phím, bạn sẽ không bao giờ hoàn thành công việc.
Khi tôi gặp khó khăn, tôi viết mã giống như cách tôi viết bài báo. Bạn sẽ bắt đầu với một bản nháp sơ bộ. Có thể phác thảo một số bài kiểm tra, mã hoặc nhận xét. Hoặc thậm chí viết một số ý tưởng ra giấy. Tại thời điểm này, bạn sẽ không phải lo lắng về cấu trúc, bạn chỉ đang sử dụng mã để xóa những ý tưởng mơ hồ mà bạn có trong đầu.
Sau đó, tôi biến những ý tưởng đó thành một cách triển khai đơn giản. Cái mà bạn có thể gọi là "Điều đơn giản nhất có thể hoạt động." Nó không hoàn hảo và thậm chí không gần gũi. Nhưng đừng lo lắng về điều đó. Bởi vì một khi mã hoạt động, bạn sẽ thực hiện một bước thu dọn. TDD các trường hợp cạnh, trình cấu trúc lại mã rõ ràng là không hợp lệ hoặc làm cho tên rõ ràng hơn.
Những “bản nháp tinh chế” này thường đủ tốt để gửi đi. Nhưng tôi thường sẽ thực hiện thêm một vài đường chuyền nữa. Tuy nhiên, không quá nhiều - bạn sẽ sớm bắt đầu thấy lợi nhuận giảm dần. Bạn sẽ dành nhiều thời gian hơn để làm sạch mã so với giá trị của nó.
Sau đó, nếu bạn thực sự muốn kết thúc với mã sạch nhất có thể, hãy để nó giải quyết một thời gian. Hãy quay lại với nó sau vài tuần hoặc vài tháng và thực hiện một lần nữa. Đến lúc đó, bạn sẽ biết nhiều hơn về hệ thống của mình và bạn sẽ học thêm về cách viết mã tuyệt vời, có khả năng bảo trì cao. Vì vậy, bạn sẽ làm công việc tốt hơn nữa.
Cũng giống như viết, quy trình đó là:
- Phác thảo một phác thảo, bản nháp hoặc nguyên mẫu thô.
- Viết một cách triển khai đơn giản, chưa chỉnh sửa, dễ hiểu (thường được hướng dẫn bởi TDD hoặc được viết cùng với các bài kiểm tra).
- Tinh chỉnh, cấu trúc lại và dọn dẹp quá trình triển khai đó một chút.
- Hãy để nó giải quyết.
- Hãy quay lại và thực hiện thêm một lần nữa.
Nghe có vẻ như nhiều việc hơn. Nhưng khi bạn đi trong các giai đoạn như thế này, bạn sẽ tiến nhanh hơn mà không phải lúc nào cũng phải đoán già đoán non. Và cuối cùng bạn sẽ không phải cân nhắc kỹ lưỡng giữa một vài lựa chọn vừa phải.
Bài viết này được lấy cảm hứng từ một câu hỏi từ Topher trên trang tư vấn của tôi. Nếu bạn gặp khó khăn về các câu hỏi về Ruby và Rails và cần một số trợ giúp hoặc lời khuyên, hãy hỏi tôi ở đó!