انتخاب فریم ورک برای طراحی وب سایت

نوشته شده توسط مهندس کلانتری

انتخاب فریم ورک برای طراحی وب سایت
Rate this post

آیا شما مدیر شرکت یا مدیر آی تی، مشاور یا تولید کننده نرم افزار هستید و تصمیم دارید یک برنامه کاربردی تحت وب توسعه دهید؟ اغلب در ابتدای توسعه هر پروژه این سوال پیش می آید که چه تکنولوژی هایی در آن استفاده می شود. آیا باید از PHP استفاده کنیم یا Python؟ و اینکه با کدام فریم ورک از این زبان ها وب سایت توسعه داده شود؟ خوب بجز تکنولوژی Back-end درباره Front-end چه چیزی بهتر است؟ Angular، React یا VueJS کدام را استفاده کنم؟ تازه بعد از این سوال درباره دیتابیس به وجود می آید، MySQL، Postgres یا MongoDB؟ خوب این تکنولوژی ها نیز هاست وب سایت را مشخص می کنند. شما می توانید از self-host با Apache یا Nginx استفاده کنید یا به سراغ Amazon AWS و PaaS مانند Heroku بروید.

خوب اگر با این سوالات مواجه هستید امیدوارم که بتوانم در این مقاله از دارکوب به بخشی از آن ها پاسخ بدهم پس با ما همراه باشید.

 

موضوع را ساده نگه دارید و سریع باشید

اغلب تکنولوژی هایی که انتخاب می کنید مشکلی برای پروژه شما به وجود نمی آورد، بلکه خود پروژه شکست می خورد. استارتاپ های زیادی کار را در مقیاس بزرگ توسعه می دهند و در این راه زمان و سرمایه زیادی صرف می کنند تا پروژه ایی منسجم و با کیفیت تولید کنند اما پس از مدتی در می یابند که بازاری برای محصول یا کسب و کار خود ندارند!

هر زمان که می خواهید محصولی را از نقطه صفر توسعه دهید، بهترین گزینه انتخاب آسان ترین آن است. یک صفحه فرود با وردپرس در اغلب موارد خوب است و نیاز شما را پاسخ می دهد. حتی شاید برخی موارد یک صفحه استاتیک کار شما را راه بیاندازد. بنابراین بسیار مهم است که سود آوری پروژه را ارزیابی کنید قبل از این که خود را زیادی به دردسر بیاندازید. چون در صنعت توسعه وب حتی برای شرکت های بزرگ خیلی عجیب نیست که تکنولوژی ایی که کار با آن آغاز شده برای تکنولوژی دیگر کنار گذاشته شود.

زمانی که شما دریافتید که موضوع پروژه شما بازدهی داشته و کار می کند، شما می توانید پیش رفته و محصول خود (وب سایت) را توسعه دهید. پس در این فاز سریع باشید. شما نباید ماه ها زمان صرف جزئیات صفحه و یا سیستم کنید. مخصوصا توسعه دهندگان وقتی که یکسال زمان صرف درک آنالیز محصول می کنند ممکن است در آخر محصولی را دیر یا به از مد افتاده ارائه دهند.

قسمت ها را اولویت بندی کنید. یعنی اول راه اندازی یک صفحه پایه، سپس اولین feature بعد عملکرد های کاربردی بعدی. چنین رویکردی به شما اجازه می دهد که فرآیند را در زمان ارزیابی کرده و تغییر مسیر های مورد نیاز احتمالی را انجام دهید. سیستم در حال کار کردن است با اینکه همه امکاناتی که تصور می کنید را ندارد در نتیجه شما ریسک خود را کاهش می دهید.

 

به احتیاجات ویژه سایت فکر کنید

مسئله ایی را که می خواهید حل کنید در ذهن داشته باشید. تکنولوژی ایی که شما انتخاب می کنید باید با نوع وب سایت هماهنگی داشته باشد. برای مثال پایتون برای محاسبات و آمار عالی است.

 

کاربر بر تکنولوژی اولویت دارد

محصول باید برای کاربر آن توسعه داده شود. آیا محصول توسعه داده شده کاری که شما می خواهید انجام می دهد؟ چطور می توانید بهترین تجربه کاربری را ایجاد کنید؟ به این فکر کنید که چه کسی قرار است از محصول شما استفاده کند. آیا کاربران از تبلت یا از کامپیوتر دسکتاپ از سایت شما بازدید می کنند؟ آیا آن ها از شبکه موبایل استفاده می کنند؟ آیا باید حالت وب سایت مانند یک برنامه کاربری دسکتاپ باشد؟ کاربران اغلب از چه مرورگر اینترنتی برای سایت شما استفاده خواهند کرد؟

 

سرعت و عملکرد

آیا ملاک های خاصی دارید؟ آیا برنامه بر روی اینترانت اجرا خواهد شد؟ آیا زمان بارگذاری اولیه اهمیت دارد؟ باز هم هر چقدر می توانید در این مرحله سریع باشید. آیا چگونگی عملکرد در این مرحله اهمیت دارد؟ اگر قرار است وب سایت شما خیلی بزرگ شود شاید باید به فکر تهیه زیر ساخت خود باشید. اما به جای اینکه از همان ابتدا زمان و پول خود را صرف حجم کوچک پروژه کنید، می توانید تا راه افتادن کار صبر کنید.

 

مهاجرت سیستم

آیا دیتابیس یا اطلاعاتی دارید که لازم است به سیستم جدید منتقل شود؟ آیا مواردی از سیستم قدیمی وجود دارد که باید در سیستم جدید لحاظ شود؟ لازم است به این قبیل موارد فکر کرده و ارزیابی لازم را انجام دهید.

 

امنیت

امنیت هیچ گاه نباید دست کم گرفته شود. بسته به نوع دیتابیسی که استفاده می کنید امنیت می تواند حتی مهم ترین فاکتور باشد. اول از همه به این سوال پاسخ دهید که چرا شما نیاز دارید که چیزی را ایمن سازی کنید، سپس به این سوال می رسید که چطور این کار را انجام دهید. اما به خاطر داشته باشید که تکنولوژی همه چیز نیست. توجه داشته باشید که اساسا امنیت به سطح مهارت توسعه دهنده، محیط و سیاست های پیاده سازی وب سایت بستگی دارد تا تکنولوژی مورد استفاده در آن.

 

از تکنولوژی های متن باز استفاده کنید

زمانی که شما می خواهید یک برنامه کاربردی تحت وب جدید یا یک استارتاپ توسعه دهید بسیار بهتر خواهد بود که از تکنولوژی های متن باز استفاده کنید. تکنولوژی های متن باز در زمان و هزینه شما صرفه جویی خواهند کرد. آن ها جلوی توسعه همه چیز از نقطه صفر را می گیرند و معمولا امنیت بهتری دارند. بنابراین می توانید بر جنبه کسب و کار پروژه تمرکز بیشتری داشته باشید. ما نیز در شرکت طراحی سایت و سئوی دارکوب فریم ورک های متن باز را پیشنهاد می کنیم.

زمانی که تکنولوژی مورد نظر خود را شناسایی کردید، لازم است چک لیستی را بررسی کنید. این تکنولوژی از چه لایسنسی استفاده می کند؟ آیا این فریم ورک Feature های مورد نیاز شما یا توسعه دهنده برنامه را دارد؟ چه تعداد از این فریم ورک استفاده می کنند؟ جمعیت جامعه آن در Github چه قدر است و در طول زمان چگونه بوده است؟ آیا منبع کد آن به راحتی قابل فهم است یا نیاز به بررسی دقیق و عمیق الگوریتم ها دارد؟ آیا مستندات آن کامل و شفاف است؟ آیا این تکنولوژی به طور کامل تست شده است؟ سوال مهم دیگر این است که چطور تیم پشتیبانی آن با مسائل امنیتی برخورد می کنند؟ آیا شبکه ایی برای گزارش مسائل امنیتی وجود دارد؟

 

اکوسیستم فریم ورک را بررسی کنید

هر فریم ورکی اکوسیستمی از مردم و ابزارها دارد. خوب، چقدر اکوسیستم پشت این زبان یا فریم ورک بزرگ است؟ چه مقدار منابع آموزشی، سمینار، سوال پاسخ داده شده در Stackoverflow برای آن وجود دارد؟ Google Trends درباره آن چه چیزی را نشان می دهد؟ آیا سودهی آن در حال افزایش است؟ چه مقدار بسته (NPM یا PyPi و غیره) برای آن وجود دارد؟ آیا لایسنسی برای کار با آن وجود دارد؟ آیا از تازه واردان استقبال می کند؟ آیا به طور عمومی (مثلا وبلاگ نویسان) علاقه به این تکنولوژی دارند؟

 

پشتیبانی بلند مدت فریم ورک

آیا فروشنده یا توسعه دهندگان تکنولوژی برای مدت طولانی فعال خواهند بود؟ آیا کمپانی بزرگی فعالیت های مربوطه را حمایت می کند؟ گوگل از Angular و فیسبوک از React حمایت می کند. به این معنا که پیشرفتی در پروژه فریم ورک وجود دارد در غیر این صورت این کمپانی حمایت خود را متوقف می کنند. اما هر چه جامعه یک تکنولوژی بزرگ تر باشد زمان بیشتری را فعال خواهد بود.

برخی از فریم ورک ها پشتیبانی دراز مدت از یک ورژن را دارند. یک ورژن خاص که مشکلات باگ آن حل شده (یا می شود) که دارای پشتیبانی دراز مدت است. همچنین باید بررسی کنید که بروز رسانی ها به چه صورت است؟ چقدر به روز رسانی و مهاجرت ها آسان صورت می گیرد؟ آیا ورژن های ناهماهنگ وجود دارد (مثل ورژن های متفاوت Angular)؟

 

منابع انسانی مورد نیاز فریم ورک

خوب چه برنامه نویسانی در اختیار دارید؟ مثلا اگر می خواهید Front-end توسعه دهید و برنامه نویس Angular خوبی نیاز دارید، شاید بهتر است کار را با وی پیش ببرید. سریع حرکت کردن اهمیت دارد و بهتر است با کسانی کار کنید که به تکنولوژی مسلط هستند نه اینکه قرار باشد فریم ورک جدیدی را یاد بگیرند. چون تجربه کار در اینجا بسیار سودمند و مفید است.

درباره منابع انسانی به چند نکته توجه داشته باشید: آیا می توانید به اندازه کافی توسعه دهنده با کیفیت در این تکنولوژی به کار بگیرید؟ چه مقدار شما باید به آن ها پرداخت نمایید؟ آیا کمپانی های بزرگ دیگری وجود دارند که با همین تکنولوژی کار می کنند و احتمال جذب نیرو های شما توسط آن ها وجود دارد؟ آیا شناسایی برنامه نویس حرفه ایی در این حوزه آسان است؟ برای مثال یک توسعه دهنده خوب جاوا راحت تر از یک برنامه نویس روبی قابل تشخیص است. شما می توانید همچنین در لینکدین و سایت های تخصصی برنامه نویسان مانند Stackoverflow Developer به دنبال نیروی مورد نظر و سوابق آن بگردید. آیا یادگیری این تکنولوژی آسان است؟ آیا به کار گیری و آموزش نیروی تازه کار می تواند گزینه شما باشد؟

 

آیا فریم ورک به اندازه کافی منعطف است؟

دنیای تکنولوژی بیش از پیش سریع در حال حرکت است. برای مدتی طولانی کاربران از دستگاه های دسکتاپ و ویندوز استفاده می کردند. اما در 10 سال آینده شرایط تغییر خواهد کرد. تکنولوژی مورد انتخاب شما احتمالا برای 5 تا 10 سال بقا خواهد داشت. این زمان زیادی است و شما هم نمی توانید مطمئن باشید که پس از آن چیزها چگونه متحول می شوند. برای همین شما باید برای تغییرات آینده آماده باشید.

بخش بخش فکر کنید. به بسته های کوچک، به جدا سازی مسائل از یک دیگر بپردازید. شما باید سرویس ها، Back-end، Front-end را به برنامه های کاربردی و سرویس های کوچک تر تقسیم کنید. شما باید قادر باشید در زمان لازم تکنولوژی مورد استفاده خود را عوض کنید. برای همین اصطلاحات Service-Orientated Architecture (SOA) و Domain-Driven Design (DDD) به وجود آمده اند.

آیا شما همیشه به داده ها دسترسی دارید؟ آیا برای تغییر تکنولوژی شما امکان استخراج داده ها را دارید؟ آیا این محصول API ایی برای این منظور دارد که کار را ساده کند؟ شاید شما بخواهید برنامه را باز کرده تا از این اطلاعات برای App های موبایل یا برنامه دسکتاپ استفاده کنید.

 

فریم ورک چه حسی دارد؟

حس برنامه نویس یا خود تان نسبت به این فریم ورک چیست؟ آیا نصب خودکار، متن استاندارد (Boilerplate) یا پروژه کوچک تست دارد؟ اگر از رویکرد سرویس دانه ایی granular استفاده می کنید، می توانید با ساخت سرویس های کوچک عملکرد آن ها را بررسی کنید.

گاهی مواقع وجود یک برنامه کاربردی با این فریم ورک درک بهتری از تفاوت های آن ها به شما می دهد. TodoMVC پروژه خوبی است شما می توانید با یک پروژه کوچک فریم ورک های مختلف و معماری آن ها را بررسی کنید. که در آن امکان مقایسه Angular، React، Vue، Ember وجود دارد.

 

پروژه را شروع کنید

اگر شما یک استارتاپ کوچک هستید، رسیدن به بازار مهمتر از داشتن تکنولوژی کامل است. به جای تمرکز بر روی تعداد کاربرانی به اندازه فیسبوک در آینده، بر روی کسب و کار و بازاریابی تمرکز کنید. احتمالا شما تمام دانش مورد نیاز را در مرحله اولیه نخواهید داشت، اما شما می توانید تنظیمات و بهینه سازی چیزها را تغییر دهید و به تدریج رشد کنید.

به عنوان یک شرکت، همه چیز ممکن است متفاوت باشد. به هر حال تصمیم به طور کلی سیاسی خواهد بود افراد شرکت شما باید با تصمیم شما موافق باشند. مدیریت و سهامداران تصمیم گیرندگان مهمی هستند.

در آخر مهم این است که به خاطر بسپارید که کیفیت برای انجام درست اهمیت دارد. فناوری تنها چیزی نیست که مهم است: شما نیاز به طراحی مناسب، نیاز سنجی مناسب، روش های آزمایش درست و غیره دارید. مهمترین چیز این است که اطمینان حاصل کنید که از لحاظ مقیاس یا امکان مهاجرت به تکنولوژی دیگر در آینده محدودیتی نخواهید داشت.



دارکوب نام تجاری ثبت شده. دارای مجوز از نظام صنفی رایانه ای و وزارت فرهنگ و ارشاد اسلامی. رتبه چهار شورای عالی انفورماتیک کشور.