Khi làm việc trong các ngôn ngữ thiếu các tính năng tổ chức và cấu trúc sẵn có (ví dụ: nếu nó không có không gian tên, gói, cụm, v.v.) hoặc trong trường hợp không đủ để giữ một cơ sở mã có kích thước đó trong tầm kiểm soát, phản ứng tự nhiên sẽ phát triển chiến lược riêng của chúng tôi để tổ chức mã.
Chiến lược tổ chức này có thể bao gồm các tiêu chuẩn liên quan đến nơi lưu giữ các tệp khác nhau, những điều cần xảy ra trước / sau một số loại hoạt động nhất định và quy ước đặt tên và các tiêu chuẩn mã hóa khác, cũng như rất nhiều "đây là cách nó được thiết lập - đừng gây rối với nó! " loại bình luận - có giá trị miễn là họ giải thích tại sao!
Bởi vì chiến lược rất có thể sẽ được điều chỉnh theo nhu cầu cụ thể của dự án (con người, công nghệ, môi trường, v.v.), thật khó để đưa ra giải pháp một kích cỡ phù hợp cho tất cả các cơ sở mã lớn.
Do đó, tôi tin rằng lời khuyên tốt nhất là nắm lấy chiến lược dành riêng cho dự án và đặt việc quản lý nó thành ưu tiên chính: ghi lại cấu trúc, tại sao lại như vậy, các quy trình để thực hiện thay đổi, kiểm toán để đảm bảo rằng nó được tuân thủ, và chủ yếu: thay đổi nó khi cần thay đổi.
Chúng ta hầu như quen thuộc với các lớp và phương thức tái cấu trúc, nhưng với một cơ sở mã lớn bằng ngôn ngữ như vậy, chính chiến lược tổ chức (hoàn chỉnh với tài liệu) cần được tái cấu trúc khi cần thiết.
Lý do cũng giống như khi tái cấu trúc: bạn sẽ phát triển một khối tinh thần để làm việc trên các phần nhỏ của hệ thống nếu bạn cảm thấy rằng tổ chức tổng thể của nó là một mớ hỗn độn, và cuối cùng sẽ cho phép nó xuống cấp (ít nhất là do tôi đảm nhận nó).
Các cảnh báo cũng giống nhau: sử dụng kiểm tra hồi quy, đảm bảo bạn có thể dễ dàng hoàn nguyên nếu việc tái cấu trúc bị sai và thiết kế để tạo điều kiện tái cấu trúc ở nơi đầu tiên (hoặc bạn sẽ không làm điều đó!).
Tôi đồng ý rằng điều đó khó hơn nhiều so với tái cấu trúc mã trực tiếp và việc xác thực / che giấu thời gian từ những người quản lý / khách hàng có thể không hiểu tại sao nó cần phải được thực hiện, nhưng đây cũng là những loại dự án dễ bị thối phần mềm nhất gây ra bởi các thiết kế cấp cao không linh hoạt ...