طراحی یک سایت قدرتمند و زیبا می تواند دردسر های زیادی داشته باشد که اگر قصد دارید وارد حوزه برنامه نویسی وب بشوید، باید آنها را به جان بخرید. البته اینطور نیست که برنامه نویسان و فعالان این حوزه بیکار نشسته باشند و برای کم کردن این دردسر ها کاری انجام نداده باشند. در واقع کارهای خوبی انجام شده است و می توان گفت که طراحی یک وب سایت حرفه ای اکنون با ده سال قبل تفاوت های واقعا زیادی داشته است و باید بگوییم که این تفاوت ها از آنچه به نظر می رسد بسیار بسیار بیشتر است. یکی از تکنولوژی هایی که می توانیم بگوییم بین قبل و بعد از آن تفاوت بوده است و یک مهره تاثیر گذار و درشت در این صنعت است، فریم ورک ویو جی اس است که در این مقاله می خواهیم به طور کامل این موضوع که ویو جی اس چیست را با هم بررسی کنیم.
ویو جی اس چیست
در مورد اینکه ویو جی اس چیست به طور ضمنی اشاره هایی داشتیم و گفتیم که یک فریم ورک طراحی برنامه های تحت وب است. اما اگر بخواهم دقیق بگوییم که ویو جی اس چیست باید بگوییم ویو جی اس یک فریم ورک رایگان و اوپن سورس است که با استفاده از الگوی طراحی MVVM امکانات لازم برای ساخت بخش های فرانت اند برنامه های وب را فراهم می کند. تعریف ارائه شده شاید کمی پیچیده به نظر برسد و بخش های مختلفی داشته باشد، اما همه این موارد را به نوبت با هم بررسی می کنیم تا کاملا مشخص شود که ویو جی اس چیست.
اولین موردی که در مورد ویو جی اس به آن اشاره کردیم اوپن سورس و رایگان بودن این فریم ورک است. در واقع فرم ورک ویو جی اس یک فریم ورک کاملا متن باز است که شما می توانید از طریق گیت هاب به سورس آن دسترسی داشته و اگر مایل باشید فریم ورک خود را با تغییر در آن ارائه کند. اما باید گفت که گسترش این فریم ورک و توسعه آن و اضافه کردن امکانات جدید به آن توسط تیم توسعه و ارائه دهنده این فریم ورک انجام می شود و این موارد در اختیار ارائه دهندگان باقی مانده است.
ایوان یو ارائه دهنده اصلی ویو جی اس است که یک برنامه نویس چینی تبار ساکن نیوجرسی آمریکاست ولی سایر اعضای تیم یک جامعه بین المللی بوده که از گوشه و کنار دنیا برای رشد این فریم ورک تلاش می کنند و باید گفت که تا حد زیادی هم موفق بوده و توانسته اند ویو جی اس را به یکی از فریم ورک های رده بالا در ساخت و طراحی فرانت اند تبدیل کنند.
موارد بعدی گفته شده در تعریف مربوط به الگوی مورد استفاده در این فریم ورک یا همان MVVM است که لازم است به صورت مفصل در مورد آن صحبت کنیم و آن را برای بخش بعدی می گذاریم. اما اینکه این فریم ورک قرار است با این امکانات و تیم خود چه چیزی را بسازد و در چه حوزه ای کار کند، مورد بسیار مهمی است که در مورد آن باید بگوییم ویو جی اس یک فریم ورک فرانت اند است.
به این معنی که شما با استفاده از آن می توانید ظاهر و شکل برنامه تحت وب و یا سایت خود را ساخته و هر چیزی که در سایت به کاربر نمایش داده می شود را با آن طراحی کنید. این فریم ورک می تواند امکانات و ویجت های لازم برای طراحی سایت مانند قالب کلی سایت شما، قالب قرار گیری محصولات، امکان تغییر چیدمان، ویجت های مختلف، فرم های ورود اطلاعات و ثبت نام و خلاصه هر چیزی که مربوط به وضعیت نمایشی سایت باشد را با استفاده از آن پیاده سازی کنید.
این در حالی است که بخش بک اند یا همان سمت سرور سایت ممکن است با هر فریم دیگری طراحی شده باشد و با استفاده از یک رابط API به فرانت طراحی شده متصل شود. اگر بخواهیم بگوییم که مهمترین فریم ورک بک اند برای ویو جی اس چیست می توانیم در رده اول نود جی (Node JS) است که آن را در مقاله Node JS چیست بررسی کردیم و بعد از آن فریم ورک بک اند روبی آن ریلز یا همان RoR را معرفی کنیم.
در ادامه با هم به بررسی این سوال که معماری مورد استفاده از ویو جی اس چیست خواهیم پرداخت.
معماری ویو جی اس چیست
یکی از اصلی ترین مواردی که باید در مورد یک فریم ورک در نظر داشت این است که از چه معماری ای برای پیاده سازی برنامه های ساخته شده با آن استفاده می کند و این مورد می تواند نقش بسیار بزرگی را در این داشته باشد که برنامه نویس بداند روال کار به چه صورت است. در مورد اینکه ویو جی اس چیست باید معماری MVVM یا همان مدل-نما-نما مدل را معرفی کنیم که یکی از الگو های طراحی سه مرحله ای و اصلی می باشد که می تواند هم سرعت برنامه نویسی را بالا ببرد و هم برنامه مورد نظر را به چند بخش تقسیم کرده و برای امنیت و توسعه آسان هم در زمان طراحی و هم توسعه های آتی گزینه ای بسیار خوب خواهد بود.
در مدل طراحی MVVM ما سه بخش اصلی Model، View و همینطور Viewmodel را شاهد هستیم که هر کدام از آنها به صورت مستقل کار کرده و ارتباطات در آنها به صورت کنترل شده می باشد.
اما در مورد اینکه این سیستم به چه صورت کار می کند باید بگوییم که در این الگوی طراحی، Model در واقع بخش سمت سرور و پایگاه داده سیستم است. View قسمت های مربوط به کدهای HTML و CSS هستند که با کاربر تعامل داشته و بخش نمایشی سایت را در بر می گیرد و Viewmodel یک نمای بینابینی از پایگاه داده می باشد که از مدل استخراج شده و برای کار کردن نما، دم دست آن قرار می گیرد.
کارکرد این بخش ها با هم به این صورت می باشد که کاربر اولین درخواست را برای دستیابی به اطلاعات مورد نظر که می تواند صفحه اصلی سایت و یا مشخصاتی تعدادی از محصولات می باشد را به سمت سرور ارسال می کند. این درخواست به سرور می رسد و سرور اطلاعاتی که می خواهد را در قالب یک جدول ویو به بخش مدل نما ارائه می کند.
دقت داشته باشید که جدول ویو را نباید با View گفته شده در MVVM اشتباه بگیریم و در اینجا منظور ما از ویو همان جداول مجازی پایگاه داده ای است که از چند جدول تشکیل شده و در واقع یک جدول مجازی است که نتیجه کوئری های وارده روی پایگاه داده است و می تواند یک جدول سرهم شده از ستون های چند تا از جدول های پایگاه داده باشد و هر شرط خاصی روی آن اعمال شده است باشد.
این جدول ویو در اختیار Viewmodel قرار خواهد گرفت و View تا زمانی که همین اطلاعات را لازم داشته باشد با آن تبادل می کند. در صورتی که اطلاعات مورد نظر در Viewmodel نبود، اطلاعات جدید از مدل وارد خواهد شد و این اطلاعات می تواند یک آپدیت ساده برای جدول ویو قبلی باشد و یا یک جدول ویو جدید و کاملا متفاوت ایجاد شود.
در صورتی که کاربر بخواهد اطلاعات را ذخیره کند، Viewmodel تمامی تغییرات را برای مدل و پایگاه داده ارسال می کند. در واقع کارکرد این الگو در اینجا مفید است که با استخراج یکباره جدول ویوی از پایگاه داده و کار کردن با این اطلاعات و اعمال یک باره تغییرات، ارجاعات به پایگاه داده کم شده و سرعت اجرا در آن بالا می رود. به علاوه برای موارد امنیتی هم اطلاعات یک بار در زمان ورود از View به Viewmodel و یک بار در زمان ورود از Viewmodel به View مورد بررسی و بازبینی قرار می گیرد و می توان گفت که هر درخواستی به پایگاه داده نمی رسد و باعث بالا رفتن امنیت می شود.
اکنون که می دانیم معماری ویو جی اس چیست و از چه الگویی با چه روشی استفاده می کند، نوبت به این رسیده است که ببینیم اگر برای برنامه نویسی به سراغ این فریم ورک برویم چه امکاناتی در اختیار ما قرار خواهد داد.
مزایای استفاده از ویو جی اس چیست
ویو جی اس یکی از فریم ورک های مشهور است که می توان گفت وقتی صحبت از برنامه نویس شدن در میان باشد، و هر جا که اسم سایت های بزرگ و حرفه ای و برنامه های خاص در میان باشد می توان ردی از این فریم ورک ها را هم دید و در صحبت ها به آن اشاره می شود. بنابراین می توانیم این مورد را نتیجه بگیریم که استفاده از آن می تواند مزایای زیاد و خوبی را برای برنامه نویسان داشته باشد و در این مرحله قصد داریم تا با هم به بررسی این موضوع بپردازیم که این مزایا چه هستند و اگر برای طراحی برنامه های تحت وب به سراغ این فریم ورک برویم، چه چیزی نصیب ما خواهد شد.
کامپوننت های ساده و حرفه ای
یکی از مهمترین گزینه هایی که می توان آن را به عنوان اولین موردی که برای مزایای استفاده از ویوی جی اس معرفی می شود ارائه داد کامپوننت های خوبی است که ویو جی اس در اختیار طراحان و برنامه نویسان می گذارد. شما با استفاده از این فریم ورک می توانید به کامپوننت هایی تمیز و ساده که قابلیت های خوبی را هم به کاربران می دهند کار کنید.
این کامپوننت ها از نظر طراحی کاملا سازگار با سایر بخش های ویو جی اس بوده و می توانیم بگوییم که در عین زیبایی و تعاملی بودن کامپوننت هایی ساده هستند که اختلالی در کارکرد سایت و پایین آمدن سرعت وارد نمی کنند. علاوه بر آن این کامپوننت ها قابلیت بست پذیری و گسترش را دارند و شما می توانید آنها را بنا بر نیاز خود تغییر دهید.
سبک وزن بودن محصولات
بر اساس آمار های ارائه شده توسط گوگل وقتی که لود شدن سایتی بیش از 5 ثانیه طول بکشد تقریبا نیمی از کاربران خود را از دست می دهد و اگر این زمان به 8 ثانیه برسد 90 درصد کاربران سایت را ترک خواهند کرد. پس باید توجه داشته باشید که سرعت سایت شما می تواند تاثیر بزرگی در کارایی آن داشته باشد و وقتی که از ویو جی اس برای این کار استفاده شود می توانیم بگوییم که سرعت سایت ما اوضاع خوبی خواهد داشت. ویو جی اس را می توان یکی از فریم ورک هایی معرفی کرد که در آخر یک سایت سبک و سریع را به ما می دهد که می تواند سرعت خوبی داشته باشد.
درک ساده
شاید در بین تمامی فریم ورک های جاوا اسکریپت بتوان ویو جی اس را ساده و سر راست ترین فریم ورک معرفی کرد که همیشه از پیچیدگی های طراحی دوری کرده و کار را به روش درست و مستقیم انجام می دهد. همین موضوع باعث شده است تا درک کارکرد آن ساده باشد و برنامه نویس بدون درگیر شدن با موضوعات پیچیده بتواند کار خود را به بهترین شکل انجام دهد. اگر بخواهیم مختصرا بگوییم که معنی این ویژگی ویو جی اس چیست باید بگوییم در ویو جی اس خبری از کدهایی که نمی دانیم دارند چه کار می کنند و فقط می دانیم اگر نباشند اوضاع خراب می شود نیست.
ترکیب با سایر فریم ورک ها
از نظر اینکه شما با یادگیری فریم ورک ویو جی اس می تواند همزمان با چند فریم ورک دیگر فعالیت کنید هم باید بگوییم که ویو جی اس یکی از فریم ورک های قوی ای است که با سایر فریم ورک ها به راحتی مچ شده و اگر شما بتوانید کار طراحی سایت را با استفاده از ویو جی اس انجام دهید می توانید روی پلتفرم ها و فریم ورک های زیادی کار کنید.
مستندات و منابع خوب
یکی از مهمترین المان هایی که برای هر فریم ورکی باید در نظر داشت این است که آیا این فریم ورک مستندات و منابع آموزشی کافی برای یادگیری و استفاده از قابلیت های مختلف آن و از آن مهمتر رفع ایراداتی که در طول کار پیش می آید را دارد یا خیر. در این مورد اینکه اوضاع مستندات در ویو جی اس چیست باید بگوییم که با یک فریم ورک کامل طرف هستیم و مستندات جامعی برای آن ارائه شده است به علاوه این فریم ورک منابع آموزشی خوب و زیادی در زبان های فارسی و انگلیسی داشته در صورتی که به مشکل بربخورید می توانید در تالار گفتگو ها و فرم های مختلفی سوالات خود را مطرح کنید.
با توجه به مواردی که با هم برای پاسخ به سوال مزایای ویو جی اس چیست مطرح کردیم به نظر می رسد که این فریم ورک یک فریم ورک خوب باشد و بتوانیم بگوییم که شهرت خود را به درستی به دست آورده است. اما در صورتی که قصد استفاده از این فرم ورک را دارید باید این موضوع را هم در نظر داشته باشید که چالش ها و معایبی هم برای آن وجود دارد که می تواند کمی دردسر ساز باشد و در ادامه این موارد را هم با هم بررسی می کنیم.
چالش های کار کردن با ویو جی اس چیست
به صورت کلی می توانیم بگوییم ویو جی اس یک فریم ورک استخوان دار و خوب است. اما هیچ نرم افزاری بی عیب نیست و تنها اصلی که در مورد نرم افزار ها می توان به آن باور داشت این است که همیشه ایراداتی وجود دارد، و این اندازه و اهمیت ایرادات است که تعیین می کند آیا یک برنامه، نرم افزار و حتی یک پلتفرم ارزش استفاده را دارد یا خیر. در این بخش قصد داریم تا ایراداتی که ویو جی اس دارد را بررسی کرده و با هم به این موضوع بپردازیم که استفاده از این فریم ورک می تواند چه ایراداتی را داشته باشد و برنامه نویس در کجا باید حواس خود را جمع کند.
به طور کلی در مورد اینکه چالش های کار کردن و معایب فریم ورک فرانت اند ویو جی اس چیست می توانیم این لیست را ارائه کنیم:
عدم وجود پشتیبانی سازمانی
ویو جی اس یکی از فریم ورک هایی بوده که تا اینجای کار به خوبی پشتیبانی شده است و می توان گفت که جامعه توسعه آن که یک تیم تقریبا 25 نفره می باشد کار خود را خوب انجام داده است و ما بخاطر همه این کارها و ارائه یک فریم ورک خوب و با این کیفیت و در این سطح از آنها متشکریم. اما اگر سری به سایت رسمی ویوی جی اس بزنید و صفحه اعضای تیم را ببینید با یک فهرست از برنامه نویسان مختلف و عجیب و غریب از جای جای دنیا مواجه خواهید شد. این در حالی است که اگر سری به فریم ورک رقیب یعنی انگولار جی اس بزنید خواهیم دید که از یک پشتیبانی سازمانی قوی برخوردار است که توسط گوگل ارائه می شود.
البته این موضوع نمی تواند دلیل این باشد که فریم ورک ویو جی اس ممکن است رها شده و پشتیبانی نشود. اما تجربه ثابت کرده است که فریم ورک ها و پلتفرم هایی که به صورت سازمانی پشتیبانی شده اند همیشه عملکرد بهتری را برای توسعه خود داشته اند و قابلیت های جدید خیلی سریع تر به آنها اضافه شده است.
پلاگین و کامپوننت کم
موضوع دیگری که می توان در پاسخ به سوال معایب ویو جی اس چیست مطرح کرد این است که کارکردن با این فریم ورک محدود به تعداد کامپوننت های کمی است و اگر بخواهیم آن را با یک سیستم مدیریت محتوا مانند وردپرس مقایسه کنیم باید بگوییم که واقعا کم خواهد آورد و طراحی ها محدود به کامپوننت هایی ثابت است. البته این کامپوننت ها قوی و خوب هستند اما از نظر تعداد و اینکه دست طراح برای استفاده از آنها باز باشد، مشکلات زیادی وجود خواهد داشت.
سرعت بالای تغییرات
فریم ورک ویو جی اس همچنان در حال توسعه است و می توان گفت یکی از ایراداتی که متوجه آن است تغییرات شدیدی است که اعمال می شود. به این صورت که تا برنامه نویس می خواهد کار با قابلیت های جدید را یاد بگیرد، آپدیت تازه ای ارائه شده و قبلی ها کاملا منقضی شده و تغییر می کند.
به نظر می رسد ویو جی اس هنوز نتوانسته اسکلت اصلی خود را محکم کند تا بتواند به تغییرات خود در چارچوب این ساختار نظم داده و کمی اوضاع را سامان دهد.
به طور کلی می توانیم بگوییم که اوضاع فریم ورک ویو جی اس خوب است و ایراداتی که دارد کمی مربوط به ماهیت فریم ورک های آزاد می باشد و اگر کمی جدیت از طرف ارائه کنندگان ادامه پیدا کند و این گروه با همین فرمانی که تا الان جلو آمده است ادامه دهد و بقیه راه را سرد نشود، ویو جی اس به یکی از بهترین گزینه ها برای برنامه نویسی تبدیل خواهد شد.
نتیجه گیری
در این مقاله در مورد اینکه ویو جی اس چیست با هم صحبت کردیم و دیدیم که یک فریم ورک ساخت فرانت اند است که به ما امکان طراحی بخش رابط کاربری در سایت ها و همینطور اپلیکیشن های تحت وب را می دهد و با استفاده از آن می توان قابلیت های خوبی را بدست آورد. به طور کلی می توانیم در مورد اینکه ویو جی اس چیست بگوییم که فریم ورکی است که کامپوننت های خوبی را به ما می دهد اما از نظر تعداد کمی دچار مشکل است، همینطور درک کد های آن ساده بوده و داکیومنت های خوبی هم برای آن وجود دارد اما سرعت تغییرات کمی یادگیری را دچار مشکل می کند.