سلام به همراهان همیشگی روکسو. در این آموزش قصد داریم معماری های مورد استفاده در طراحی سایت را بررسی کنیم.
معماری برنامه وب، رابطه بین اجزای برنامه وب (رابط های کاربر، پایگاه های داده و سیستم های میان افزار) و نحوه تعامل آنها با یکدیگر را توصیف می کند. به عبارت دیگر، ساختاری برای نحوه اتصال کلاینت و سرور فراهم می کند. طراحی مناسب معماری برنامه وب تضمین می کند که همه اجزای شما به درستی با هم تعامل دارند و به عنوان پایه ای قوی برای گسترش برنامه در دورهای بعدی توسعه عمل می کند.
دو برنامه یا مجموعه کد وجود دارد که برای هر برنامه وب رایج است: کد سمت مشتری (client) و کد سمت سرور (server). این برنامه ها به طور جداگانه و همزمان با هدف مشترک ارائه یک تجربه وب یکپارچه برای کاربران اجرا می شوند.
هنگام توسعه یک برنامه وب، توسعه دهنده مسئول تصمیم گیری در مورد کدهایی است که روی سرور قرار گیرد و در رابطه با کد سمت کلاینت چه کاری باید انجام دهد. هر کدی که بتواند به درخواستهای HTTP پاسخ دهد میتواند روی سرور اجرا شود و زبانهایی مانند PHP ،Java ،Python و Ruby و .... به طور گسترده برای کدنویسی سمت سرور استفاده میشوند. کد سمت سرور همچنین مسئول ایجاد هر صفحه درخواستی توسط کاربران و همچنین ذخیره انواع مختلف داده ها و ورودی ها است.
از طرف دیگر، کد سمت کلاینت منحصراً از طریق درخواست های HTTP ارتباط برقرار می کند و نمی تواند فایل های سرور را مستقیماً بخواند. در عوض، توسط مرورگر وب تجزیه می شود و به ورودی های کاربر واکنش نشان می دهد. برخلاف کد سمت سرور، کد سمت کلاینت توسط کاربر قابل مشاهده و تغییر است و ترکیبی از HTML ،CSS و جاوا اسکریپت برای ساخت صفحات و محتوا استفاده می شود.
ما انواع مختلف معماری برنامه های وب را بر اساس نحوه توزیع منطق برنامه بین مشتری و سرور طبقه بندی می کنیم. متداول ترین انواع معماری های وب به همراه نمونه هایی از هر کدام را می توان در زیر مشاهده کرد:
اپلیکیشن های تک صفحه ای به دلیل چیدمان مینیمالیستی و ساختار معماری شان به طور فزاینده ای محبوب هستند. معماری SPA به گونه ای سازماندهی شده است که تنها بخشی از محتوای صفحه زمانی که کاربر به صفحه جدیدی می رود به روز می شود، بنابراین نیازی به بارگذاری مجدد همان اجزا نیست. این به تنهایی آن را برای توسعه دهندگان و کاربران به طور یکسان بسیار راحت می کند! توسعه دهندگان با استفاده از چارچوب های محبوب جاوا اسکریپت مانند Angular و React، از معماری SPA برای ارائه تجربه کاربری منحصر به فرد و تعاملی با اجازه دادن به برنامه های تک صفحه ای استفاده می کنند.
Gmail - Google Maps - Facebook تنها چند نمونه عالی از اپلیکیشنهای تک صفحهای هستند.
برنامه های چند صفحه ای در وب بسیار رایج هستند زیرا همه برنامه های کاربردی وب در گذشته از معماری MPA استفاده می کردند. این نوع معماری صفحات وب را برای ارسال از/به سرور از طریق مرورگر کاربر مجدداً بارگذاری می کند و توسعه دهندگان معمولاً معماری MPA را در صورتی که برنامه بسیار بزرگ باشد انتخاب می کنند.
Amazoon - Ebay دو مورد از شناخته شده ترین برنامه های کاربردی چند صفحه ای امروزه هستند.
میکروسرویس ها، نوعی معماری سرویس گرا (SOA) هستند که برای ساختن سیستم های نرم افزاری توزیع شده استفاده می شوند. با این سبک معماری، توسعهدهندگان برنامههای وب را با استفاده از مجموعهای از سرویسهای متصل به هم آزاد میسازند که میتوانند به طور مستقل مستقر شوند. به نوبه خود، این تقسیمبندی عملکرد، ساخت، گسترش و مقیاسبندی یک برنامه را آسانتر میکند.
Netflix, Uber, Spotify,PayPal برخی از پروژه های معروف با معماری Microservices هستند
با این نوع معماری برنامه، توسعه دهندگان دیگر نیازی به پیکربندی یا مدیریت سرورها با استفاده از نرم افزار مدیریت سرور ندارند. با این حال، این به معنای کمبود کامل سرور نیست - ارائه دهندگان ابر شخص ثالث مانند آمازون و مایکروسافت سرورهای مجازی را ارائه می دهند که به طور پویا تخصیص منابع ماشین را مدیریت می کنند.
پشته RAD یک پخش کننده نسبتا جدید است و ترکیبی از React Native، API ها و جنگو است. این به توسعه دهندگان این امکان را می دهد تا برنامه های کاربردی با هر اندازه ای را به سرعت جمع آوری کرده و آنها را در زمینه های حیاتی مستقر کنند. علاوه بر این، این پشته پیش فرض Crowdbotics App Builder است!
انتخاب معماری برنامه مناسب پایه و اساس توسعه کل برنامه شما را تنظیم می کند. بنابراین، در نظر گرفتن کل فرآیند توسعه و گسترش آینده آن هنگام انتخاب آن ضروری است. از این گذشته، معماری برنامه چیزی نیست که بتوان بعداً به راحتی آن را تغییر داد! مطمئناً ارزش وقت شما را دارد تا کمی تحقیق کنید تا مشخص شود که تصمیم درستی برای نیازهای خود می گیرید.
اگر مجبور به ارائه محتوای زیاد هستید، برنامه های چند صفحه ای گزینه ای قوی هستند. آن ها ممکن است برای برنامه های کاربردی پاسخگو در زمان واقعی مناسب نباشند، اما به عنوان یک معماری برنامه سازمانی به خوبی کار می کنند. شرکت های بزرگ با طیف وسیعی از خدمات و محصولات با استفاده از ساختار سنتی MPA سود بیشتری خواهند برد. فروشگاههای آنلاین، وبسایتهای شرکت، سایتهای کاتالوگ و بازارها چند نمونه از مشاغل بزرگ هستند که باید این مسیر را در نظر بگیرند.
در مقابل، برنامه های تک صفحه ای به خوبی برای برنامه های پویا با حجم کم داده مطابقت دارند. همچنین اگر قصد دارید یک برنامه تلفن همراه ایجاد کنید، آنها گزینه بسیار خوبی هستند. در حالی که نقطه ضعف اصلی این معماری SEO است، برای پلتفرمهای Software-as-a-Service (SaaS)، شبکههای اجتماعی و جوامع بسته بسیار مناسب است زیرا نیازی به بهینهسازی موتورهای جستجو ندارند.
معماری Microservices برای پروژههای بزرگ و پیچیده مناسب است، زیرا هر سرویس را میتوان بدون تأثیر مخرب بر بلوکها یا ماژولهای موجود تغییر داد. به عنوان مثال، اگر باید منطق پرداخت را به روز کنید، نیازی به بستن کل وب سایت در این مدت نیست. با این حال، اگر به یک راه حل سریع مانند یک نمونه اولیه، برنامه کوچک یا برنامه ای با ضرب الاجل محدود نیاز دارید، معماری میکروسرویس ممکن است راه حل مناسبی برای شما نباشد.
اگر نمیخواهید سرورها یا زیرساختهای سختافزاری مورد نیاز برنامه را مدیریت یا پشتیبانی کنید، معماری بدون سرور بهترین گزینه برای شما خواهد بود.
اگر میخواهید حداکثر مقیاسپذیری و کارایی را در همه پلتفرمها انجام دهید، پشته RAD راهی برای رفتن است. RAD به جای اینکه برای چند مورد خاص استفاده شود، برای پشتیبانی از طیف وسیعی از انواع مشاغل و الزامات برنامه ساخته شده است.
همانطور که فناوری با سرعتی سریع در حال پیشرفت است، معماری برنامه های وب نیز رشد می کند. یکی از روندهای محبوبی که خواهید دید، استفاده از معماری سرویس گرا است. با این نوع معماری، بیشتر کد برنامه به عنوان سرویس باقی می ماند و هر سرویس دارای HTTP API خود است. این به یک بخش از کد اجازه می دهد تا به بخش دیگری از کد که ممکن است بر روی سرور دیگری در حال اجرا باشد درخواست کند.
یکی دیگر از روندهای اصلی که قبلاً به آن اشاره کرده ایم، برنامه های تک صفحه ای هستند. رابط کاربری این برنامه وب از طریق یک برنامه غنی جاوا اسکریپت ارائه می شود و در مرورگر کاربر در تعاملات مختلف قرار می گیرد. همچنین از AJAX یا سوکت های وب برای ارسال درخواست های ناهمزمان/همگام به وب سرور استفاده می کند و نیازی به به روز رسانی صفحات را از بین می برد. این به لطف بارگذاری و وقفه های محدود صفحه، تجربه قوی تری را برای کاربران ارائه می دهد.
با دو روند فوق، برنامه های کاربردی وب پیچیده تر شده اند و قادر به اثبات نمای بهینه در چندین پلت فرم و دستگاه هستند. در حالی که بیشتر کدهای برنامه یکسان باقی می مانند، اما همچنان می توان آن را به راحتی در صفحه نمایش های کوچکتر مشاهده کرد.
برای ارائه یک تجربه وب عالی به کاربران، باید از داشتن یک برنامه کاربردی وب فراتر بروید. در اینجا برخی از بهترین روش ها وجود دارد که باید در نظر داشته باشید:
سازگاری: معماری که انتخاب میکنید باید رویکردی یکسان برای حل همه مشکلات توسعه شما ارائه دهد، و باید الزامات برنامه را تجزیه و تحلیل کنید تا راهحلی را انتخاب کنید که بیشتر اهداف توسعه شما را پوشش دهد.
عملکرد سریع: بهتر است معماری تا حد امکان سبک و پاسخگو باشد. برخی از بهترین برنامه های وب در صنعت را تجزیه و تحلیل کنید — سرعت صفحه و پاسخگویی آنها را اندازه گیری کنید تا استانداردهایی برای محصول خود تنظیم کنید.
سادگی: اگر میتوانید اپلیکیشن خود را با معماری مینیمالیستی بسازید، سادهترین گزینه ممکن را انتخاب کنید. در حالی که در نظر گرفتن گزینه های ممکن مقیاس بندی ضروری است، نیازی به پیچیده کردن بیش از حد چیزها از قبل وجود ندارد.
خود نگهداری: معماری برنامه باید بتواند مشکلات را شناسایی کرده و به تنهایی آنها را تعمیر کند.
اتوماسیون: سعی کنید تا حد امکان توسعه، آزمایش و استقرار را خودکار کنید. این زمانی مفید خواهد بود که تصمیم دارید برنامه خود را مقیاس بندی کنید!
مدیریت دادههای راحت و بدون خطا: شیوههای ذخیره و پردازش دادههای خود را در نظر بگیرید و سادهترین راهها را برای مدیریت پایگاههای داده و در عین حال اجتناب از هزینههای غیرضروری انتخاب کنید.
منبع: وب سایت crowdbotics
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.