چرا داشتن یک معماری تمیز در داخل یک پروژه frontend غیرممکن است

Summarize this content to 400 words in Persian Lang اینترنت مملو از ویدیوها، دورهها و مقالاتی است که به شما آموزش میدهند چیزی مانند پوشههای «دامنه» را در پروژه جلویی خود داشته باشید، «موجودات» و هر چیزی که عمو باب را از هم بپاشد، ایجاد کنید. این پست کوچک نشان می دهد که چرا داشتن یک معماری تمیز در این نوع پروژه غیرممکن است.
معماری پاک
معماری پاک مجموعه ای از اقدامات خوب برای ساختن یک معماری خوب است. مبتنی بر اصول زیر است:
مستقل از چارچوب
قابل آزمایش
مستقل از UI
مستقل از پایگاه داده
مستقل از هر آژانس خارجی
این پست به آنها نمی پردازد. برای اطلاعات بیشتر می توانید پست اصلی عمو باب را بررسی کنید.
Frontendها وابسته هستند
نقاط 1 (مستقل از چارچوب ها) و 3 (مستقل از UI) دلایلی هستند که به سادگی نمی توانید یک معماری تمیز را در داخل یک پروژه فرانت اند بسازید.
بیایید فلاتر را به عنوان مثال در نظر بگیریم: فلاتر یک چارچوب رابط کاربری است. اگر معماری شما از یک پروژه فلاتر تشکیل شده باشد، کار شما تمام شده است. پروژه Flutter باید یک ابزار، یک افزونه باشد که میتوانید آن را حذف کنید یا با هر چارچوب UI دیگری جایگزین کنید. ممکن است بگویید موجودیتها و فایلهای موارد استفاده شما Flutter را وارد نمیکند، بلکه شما را وارد میکند pubspec.yaml فایل در ریشه انجام می دهد.
همین امر برای پروژههای ReactJS نیز صادق است، که به React و در وب، پروژههای Windows Forms با C#، پروژههای iOS با Swift و غیره بستگی دارد.
منظور از معماری پاک چیست
معماری پاک درباره یک پروژه واحد نیست. اگر به سخنرانیهای باب مارتین گوش دهید، متوجه میشوید که یک معماری در مورد کل سیستم است: نه تنها برنامه frontend شما، بلکه همچنین پایگاه داده، باطن دامنه، و هر جزء باطنی یا فرانتاند دیگری.
در این سخنرانی، عمو باب یک پیادهسازی خوب از یک معماری تمیز را ارائه میکند که آن را Model View Presenter مینامد. با این معماری، قوانین کسب و کار دامنه در داخل پروژه فرانت اند نیست. همچنین، این پیاده سازی به اصطلاح Presenter را اضافه می کند که View را تا حد ممکن گنگ می کند.
BFF
در اینجا همان نمودار وجود دارد، اما با کلمات دیگر، که ممکن است واضح تر تشخیص دهید:
حالا، آیا می بینید که برنامه frontend شما کجاست؟
مزیت اصلی داشتن BFF (Backend برای Frontend) و در نتیجه گنگ کردن ظاهر صفحه، تغییر آسان رابط کاربری است. اگر فردا یک فریم ورک فوقالعاده جدید UI منتشر شود، تیم شما میتواند به راحتی تغییر کند و همچنان از همان قوانین تعریف شده در BFF شما استفاده کند – به عنوان مثال، اگر ورود ناموفق باشد، پیام خطا باید قرمز باشد.
نتیجه گیری
امیدوارم با این پست درک بهتری از معماری پاک داشته باشید. فقط به یاد داشته باشید: معماری در مورد کل سیستم است، نه تنها قسمت ظاهری شما.
در روزهای آینده سعی خواهم کرد این ایده را با استفاده از فلاتر و دارت شلف پیاده کنم. دفعه بعد می بینمت!
اینترنت مملو از ویدیوها، دورهها و مقالاتی است که به شما آموزش میدهند چیزی مانند پوشههای «دامنه» را در پروژه جلویی خود داشته باشید، «موجودات» و هر چیزی که عمو باب را از هم بپاشد، ایجاد کنید. این پست کوچک نشان می دهد که چرا داشتن یک معماری تمیز در این نوع پروژه غیرممکن است.
معماری پاک
معماری پاک مجموعه ای از اقدامات خوب برای ساختن یک معماری خوب است. مبتنی بر اصول زیر است:
- مستقل از چارچوب
- قابل آزمایش
- مستقل از UI
- مستقل از پایگاه داده
- مستقل از هر آژانس خارجی
این پست به آنها نمی پردازد. برای اطلاعات بیشتر می توانید پست اصلی عمو باب را بررسی کنید.
Frontendها وابسته هستند
نقاط 1 (مستقل از چارچوب ها) و 3 (مستقل از UI) دلایلی هستند که به سادگی نمی توانید یک معماری تمیز را در داخل یک پروژه فرانت اند بسازید.
بیایید فلاتر را به عنوان مثال در نظر بگیریم: فلاتر یک چارچوب رابط کاربری است. اگر معماری شما از یک پروژه فلاتر تشکیل شده باشد، کار شما تمام شده است. پروژه Flutter باید یک ابزار، یک افزونه باشد که میتوانید آن را حذف کنید یا با هر چارچوب UI دیگری جایگزین کنید. ممکن است بگویید موجودیتها و فایلهای موارد استفاده شما Flutter را وارد نمیکند، بلکه شما را وارد میکند pubspec.yaml
فایل در ریشه انجام می دهد.
همین امر برای پروژههای ReactJS نیز صادق است، که به React و در وب، پروژههای Windows Forms با C#، پروژههای iOS با Swift و غیره بستگی دارد.
منظور از معماری پاک چیست
معماری پاک درباره یک پروژه واحد نیست. اگر به سخنرانیهای باب مارتین گوش دهید، متوجه میشوید که یک معماری در مورد کل سیستم است: نه تنها برنامه frontend شما، بلکه همچنین پایگاه داده، باطن دامنه، و هر جزء باطنی یا فرانتاند دیگری.
در این سخنرانی، عمو باب یک پیادهسازی خوب از یک معماری تمیز را ارائه میکند که آن را Model View Presenter مینامد. با این معماری، قوانین کسب و کار دامنه در داخل پروژه فرانت اند نیست. همچنین، این پیاده سازی به اصطلاح Presenter را اضافه می کند که View را تا حد ممکن گنگ می کند.
BFF
در اینجا همان نمودار وجود دارد، اما با کلمات دیگر، که ممکن است واضح تر تشخیص دهید:
حالا، آیا می بینید که برنامه frontend شما کجاست؟
مزیت اصلی داشتن BFF (Backend برای Frontend) و در نتیجه گنگ کردن ظاهر صفحه، تغییر آسان رابط کاربری است. اگر فردا یک فریم ورک فوقالعاده جدید UI منتشر شود، تیم شما میتواند به راحتی تغییر کند و همچنان از همان قوانین تعریف شده در BFF شما استفاده کند – به عنوان مثال، اگر ورود ناموفق باشد، پیام خطا باید قرمز باشد.
نتیجه گیری
امیدوارم با این پست درک بهتری از معماری پاک داشته باشید. فقط به یاد داشته باشید: معماری در مورد کل سیستم است، نه تنها قسمت ظاهری شما.
در روزهای آینده سعی خواهم کرد این ایده را با استفاده از فلاتر و دارت شلف پیاده کنم. دفعه بعد می بینمت!