Tôi có một dự án có kích thước đủ lớn mà tôi không thể giữ mọi khía cạnh trong đầu nữa. Tôi đang xử lý một số lớp và hàm trong đó và tôi đang truyền dữ liệu xung quanh.
Theo thời gian, tôi nhận thấy rằng tôi liên tục gặp lỗi, vì tôi đã quên dữ liệu phải có dạng chính xác khi tôi chuyển nó sang các hàm khác nhau ( ví dụ: một hàm chấp nhận và đưa ra một chuỗi các chuỗi, một hàm khác, mà tôi đã viết nhiều sau đó, chấp nhận các chuỗi được giữ trong từ điển, v.v., vì vậy tôi phải chuyển đổi các chuỗi tôi đang làm việc từ việc có chúng trong một mảng thành có chúng trong từ điển ).
Để tránh luôn phải tìm ra cái gì đã phá vỡ ở đâu, tôi bắt đầu coi mỗi hàm và lớp là "thực thể cô lập" theo nghĩa là nó không thể dựa vào mã bên ngoài để cho nó nhập đúng và phải tự kiểm tra đầu vào (hoặc, trong một số trường hợp, hãy lấy lại dữ liệu, nếu dữ liệu được cung cấp ở dạng sai).
Điều này đã giảm đáng kể thời gian tôi dành để đảm bảo rằng dữ liệu mà tôi chuyển xung quanh "phù hợp" với mọi chức năng, bởi vì các lớp và chính các chức năng hiện cảnh báo tôi khi một số đầu vào xấu (và đôi khi chính xác là như vậy) và tôi không phải đi với một trình sửa lỗi thông qua toàn bộ mã nữa để tìm ra nơi nào đó đã đi haywire.
Mặt khác, điều này cũng đã tăng mã tổng thể.
Câu hỏi của tôi là, nếu kiểu mã này phù hợp để giải quyết vấn đề này?
Tất nhiên, giải pháp tốt nhất là tái cấu trúc lại hoàn toàn dự án và đảm bảo dữ liệu có cấu trúc thống nhất cho tất cả các chức năng - nhưng vì dự án này đang phát triển liên tục, cuối cùng tôi sẽ chi tiêu nhiều hơn và lo lắng về mã sạch hơn là thực sự thêm công cụ mới .
(FYI: Tôi vẫn là người mới bắt đầu, vì vậy xin vui lòng nếu câu hỏi này là ngây thơ; dự án của tôi là bằng Python.)