Викладаючи себе про архітектуру програмного забезпечення та шаблони дизайну, я помітив, що в більшості випадків деякі мовні особливості та специфіка дизайну мають на увазі в поясненні.
Наприклад, практично будь-яка стаття або книга, яка буде ілюструвати ідеї, використовуючи класи та інтерфейси. Все, що можна легко знайти в цій темі, було б згадувати об'єкти та концепції OOP.
Що робити, якщо мова, якою написана система, взагалі не має таких понять? Наприклад, якщо я використовую Python або Node, які динамічно набираються і не мають поняття інтерфейсу? Що робити, якщо я використовую TypeScript, коли інтерфейс є ефемерною конструкцією, якої не існує під час виконання? Що робити, якщо я намагаюся використовувати функціональне програмування? Чи слід ігнорувати, наприклад, SOLID і шукати інші поняття, відповідні моїй мові?
Якщо так, то що це? На жаль, всі добре прийняті парадигми (наскільки мені відомо) певним чином відносяться до концепцій та типів ООП. Якщо ні, яких правил я повинен дотримуватися, адаптуючи загальні архітектурні та принципи дизайну до моєї конкретної мови та випадку використання?
Як взагалі ви б описали залежність між архітектурою та мовою?