Kendimi yazılım mimarisi ve tasarım kalıpları hakkında eğitirken, çoğu durumda açıklamada bazı dil özelliklerinin ve tasarım özelliklerinin ima edildiğini fark ettim.
Örneğin hemen hemen sınıfları ve arayüzleri kullanan fikirleri gösteren herhangi bir makale veya kitap. Kişinin bu konuda kolayca bulabileceği her şey nesnelerden ve OOP kavramlarından bahsedecektir.
Sistemin yazıldığı dilde bu tür kavramlar yoksa ne olur? Örneğin, dinamik olarak yazılan ve arayüz kavramına sahip olmayan Python veya Node kullanırsam ne olur? Arabirimin çalışma zamanında olmayan geçici bir yapı olduğu TypeScript kullanırsam ne olur? İşlevsel programlamayı benimsemeye çalışırsam ne olur? Örn. SOLID'i görmezden gelmeli ve dilime uygun başka kavramlar mı aramalıyım?
Evet ise, bunlar nedir? Ne yazık ki iyi kabul görmüş tüm paradigmalar (bildiğim kadarıyla) bir şekilde OOP kavramlarına ve türlerine atıfta bulunur. Hayır ise, genel mimarlık ve tasarım ilkelerini kendi dilime ve kullanım durumuma uyarlarken hangi kurallara uymalıyım?
Genel olarak mimarlık ve dil arasındaki bağımlılığı nasıl tanımlarsınız?