معماری برش عمودی (Vertical Slice Architecture) 🔪
معماریهای لایهای، پایه و اساس بسیاری از سیستمهای نرمافزاری هستند. با این حال، معماریهای لایهای سیستم را حول لایههای فنی سازماندهی میکنند. و انسجام (cohesion) بین لایهها پایین است.
چه میشد اگر به جای آن، میخواستید سیستم را حول ویژگیها (features) سازماندهی کنید؟ 🤔
کوپلینگ (coupling) بین ویژگیهای نامرتبط را به حداقل برسانید و کوپلینگ را در یک ویژگی واحد به حداکثر برسانید.
امروز میخواهم در مورد معماری برش عمودی صحبت کنم، که دقیقاً همین کار را انجام میدهد.
مشکل معماریهای لایهای 👎
معماریهای لایهای، سیستم نرمافزاری را به لایهها یا طبقات (tiers) سازماندهی میکنند. هر یک از لایهها معمولاً یک پروژه در سولوشن شماست. برخی از پیادهسازیهای محبوب، معماری N-tier یا معماری تمیز (Clean architecture) هستند.
معماریهای لایهای بر روی تفکیک دغدغههای (separating the concerns) کامپوننتهای مختلف تمرکز میکنند. این کار، درک و نگهداری سیستم نرمافزاری را آسانتر میکند. و مزایای زیادی برای طراحی نرمافزار ساختاریافته وجود دارد ✅، مانند قابلیت نگهداری، انعطافپذیری و اتصال سست (loose coupling).