Ali DltГолосовое сообщение
ببینین معماریها در سطوح مختلف هستن. مثلا TDD اونقدرا فکر نکنم معماری حساب بشه، یک الگو هست برای توسعهی نرمافزار که میگه شما قبل توسعه اول تست بنویسین، ولی اینکه خود پروژه رو چطور بنویسین نمیگه. در کنار اون مثلا روش جایگزینش میتونه BDD باشه (سرچ کنین) یا اینکه کلا تست ننویسین. همچنین تستها سطوح مختلفی دارن مثلا unit test یا end-to-end test و ...
دوباره در یک سطح دیگه مقایسه بین microservices و monolithics رو داریم. اینها مشخص میکنن اجزای یک نرمافزار در سطوح بالا چطوری با هم ارتباط دارن.
و در سطح کد یا ماژول معماریهای مختلفی داریم که اکثرا معماریهای لایهای هستن. مثلا معماری onion یا دیتابیسمحور یا entity محور و ...
شما در هر سطحی میتونین یه سرچ انجام بدین، مثالهای اون معماری رو ببینین، و کلا این معماریها ارتباطی با زبان و فریمورکی که استفاده میکنین ندارن. به نظرم بهترین کار برای یادگیری این معماریها دیدن مثالهای اون هاست چون پیادهسازی هر معماری برای یادگیریش زمان زیادی میبره. اینطوری اگه توی مصاحبه ازتون پرسیدن که در مورد فلان معماری چیزی میدونین، میتونین توضیح بدین. با یه سرچ هم میتونین پیدا کنین (common software architecture patterns).
یه کار دیگه هم که میتونه کمک کنه اینه که توی ذهنتون این معماریها رو نگاشت کنین به ابزاری که استفاده میکنین. مثلا اگه با nest.js کار میکنین، ببینین که مثلا برای پیادهسازی معماری DDD چطور میشه ماژولها، کنترلرها و سرویسها رو دستهبندی کرد، نه در حد پیادهسازی ولی در حد اینکه ساختارش چطور میشه ببینین چه شکلی هست