Dự án lớn mà tôi đang thực hiện trong vài năm nay là một ứng dụng điều khiển (và mọi thứ) của một thiết bị tiên tiến, trái tim của phần sụn.
Thiết bị này khá tiên tiến, với nhiều chức năng khác nhau hơn tôi có thể nói từ bộ nhớ và 98% trong số chúng được xử lý bởi một thực thi khổng lồ này. Một mặt, chương trình này khá dễ bảo trì, được mô đun hóa tốt bên trong, được ghi chép đúng cách, có sự phân tách hợp lý các chức năng bởi các thư mục và tệp, v.v.
Nhưng cuối cùng, tất cả được tập hợp thành một ứng dụng thực hiện mọi thứ từ giao tiếp cơ sở dữ liệu từ xa, xử lý màn hình cảm ứng, xử lý hàng tá giao thức truyền thông, đo lường, một số thuật toán điều khiển, quay video, thời gian mặt trời mọc và ngày lễ Phục sinh (nghiêm túc, và chúng là cần thiết cho các mục đích rất nghiêm trọng!) ... Nói chung, những thứ liên quan rất mỏng, thường chỉ liên quan thông qua một số dữ liệu nhỏ giọt giữa một số mô-đun xa.
Nó có thể được thực hiện khi một số thực thi riêng biệt giao tiếp với nhau, giả sử, qua các ổ cắm, với mục đích cụ thể hơn, có thể được tải / dỡ khi cần, v.v. Không có lý do cụ thể tại sao nó được thực hiện theo cách này.
Trong một tay, nó hoạt động, và nó hoạt động tốt. Dự án đơn giản hơn, không cần duy trì xây dựng nhiều nhị phân. Cấu trúc bên trong cũng dễ dàng hơn, khi bạn chỉ có thể gọi một phương thức hoặc đọc một biến thay vì nói chuyện qua các socket hoặc bộ nhớ dùng chung.
Nhưng mặt khác, kích thước, quy mô của thứ này chỉ khiến tôi phát điên, cảm giác như đang lái Titanic. Tôi luôn được dạy để mô đun hóa, và gộp mọi thứ vào một tập tin khổng lồ cảm thấy sai. Một vấn đề tôi biết là sự cố nghiêm trọng của một mô-đun (thậm chí không đáng kể) bị sập tất cả - nhưng chất lượng mã đảm bảo điều này không thực sự xảy ra trong các phiên bản phát hành. Mặt khác, phân tách nội bộ và lập trình phòng thủ đảm bảo điều này vẫn sẽ chạy chính xác ngay cả khi một nửa các mô-đun bên trong thất bại bình thường vì một số lý do.
Những nguy hiểm khác tôi đã bỏ qua? Tại sao điều này làm tôi khó chịu? Đây chỉ là nỗi sợ phi lý không rõ? Là làm cho các dự án lớn nghiêm trọng theo cách này là một thực tế được chấp nhận? Hoặc làm dịu nỗi sợ hãi của tôi hoặc cho tôi một lý do chính đáng để tái cấu trúc phiên bản 2.0 thành nhiều tệp nhị phân nhỏ hơn.