Câu hỏi tuyệt vời! Tôi có cùng một vấn đề chính xác; các hằng số của tôi về cơ bản là: những ngôn ngữ nào được hỗ trợ trong các ứng dụng của tôi và thông tin bổ sung về các ngôn ngữ đó khi chúng liên quan đến chức năng trong ứng dụng.
Thật không may, điều tốt nhất tôi tìm thấy (như bạn có) là chỉ cần xác định lại các hằng số cho mỗi ngôn ngữ, như bạn hiện đang làm (tôi biết, bạn chắc chắn muốn nghe điều đó ).
Rõ ràng là nó cảm thấy sai bởi vì nó trái ngược với DRY ( WET ?? ). Tuy nhiên, các hằng số nên thay đổi không thường xuyên đến mức 5-10 phút xác định lại chúng cho từng ngôn ngữ không thực sự làm phiền tôi. Vào cuối ngày, các vấn đề nhỏ với một số giải pháp 'thanh lịch' như chia sẻ cấu hình hoặc tạo mã có thể mất hàng giờ hoặc nhiều ngày để giải quyết, vậy điều gì thực sự đạt được? Sự phức tạp gia tăng với nguy cơ xảy ra sự cố có thể mất thêm nỗ lực để khắc phục không phải là điều mà tôi muốn giải quyết.
Hơn nữa, nếu ứng dụng của bạn có quá nhiều hằng số xác định lại chúng theo ngôn ngữ khi bạn thêm hoặc thay đổi chúng mất một khoảng thời gian đáng kể, bạn có thể có mùi mã quan trọng hơn để xử lý và tại thời điểm đó, bạn có thể muốn bật đến một cái gì đó phức tạp hơn.
Vì vậy, trong ngắn hạn, xác định lại chúng cho từng ngôn ngữ là giải pháp tốt nhất của tôi và tôi vẫn chưa nghĩ ra bất cứ điều gì DRY sẽ không có nhiều yếu tố rủi ro hơn tôi muốn giải quyết.
Mặc dù vậy, một điều chắc chắn phải làm là đảm bảo rằng các hằng số của bạn được ghi chép tốt theo cách tổng quát (và bất khả tri ngôn ngữ) (chúng tôi có tài liệu repo tài liệu của công ty với thông số kỹ thuật, tài liệu linh tinh, tài liệu 'bảng vẽ', v.v. tài liệu này). Đồng thời đảm bảo rằng bạn có (các) cơ chế để giữ các định nghĩa của chúng đồng bộ. Đó là một vấn đề lớn với cách tiếp cận sao chép như bạn sẽ gặp phải, ngoại trừ một chút đau khổ tâm lý từ việc sao chép mã có chủ ý. Nhưng cuối cùng, những thay đổi liên tục của bạn nên rất có chủ ý và không thường xuyên , vì vậy vấn đề đồng bộ nên về cơ bản là không.
Tôi cũng nên đề cập rằng trong nhiều năm qua, tôi đã thấy các cổng đa ngôn ngữ của các thư viện khác nhau (quá mệt mỏi để nhớ chúng là gì vào lúc này) được viết bởi cùng một nhóm luôn có các hằng số được định nghĩa bằng các ngôn ngữ. Không có cấu hình được chia sẻ, không tạo mã (ngoại trừ các thư viện máy khách API của Google ... nhưng thôi, Google có các tài nguyên để chi trả cho sự phức tạp như vậy). Vì vậy, tôi nghĩ rằng chúng ta đã va phải một bức tường gạch trên cái này. Có lẽ cuối cùng ai đó sẽ đến với một thư viện để giải quyết vấn đề này;)