PDA

View Full Version : طراحی سمت Client؟



محمد فدوی
یک شنبه 27 مهر 1393, 21:39 عصر
سلام دوستان.
تو این تاپیک (http://barnamenevis.org/showthread.php?469166-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-%DA%86%DB%8C%D9%87-%D8%9F) سؤالی در مورد طراحی سمت کاربر پرسیده شد و cups_of_java عزیز گفتن:


شما تو این فضا دستت خیلی بازه که اصلن از اینا استفاده نکنی و کلاینت ساید برنامت رو جداگونه با فریم ورک های کلاینت ساید مثل انگیولار جی اس و ... با تمپلتینگ هایی مثل Mustach و ... بنویسی.


ترجیح دادم به دلیل عنوان نامربوط اون تاپیک جدا مطرح کنم سؤالمو. من از AngularJS‌ (و احیاناً Frameworkهای موازیش) چیزی نمیدونم و اینم نمی‌دونم چه تفاوتی ممکنه با Jade و... داشته باشه. (به دلیل حساسیت Jade روی Tab Indent به شدت ازش بدم میاد! و همینطور Python)
اگه لطف کنید توضیحی در مورد طرز عملکرد AngularJS بدید و احیاناً Framework‌های مشابهش رو نام ببرید ممنون میشم.

cups_of_java
دوشنبه 28 مهر 1393, 10:37 صبح
به طور سنتی نوشتن برنامه های تحت وب به این صورت بوده که شما با یک زبان یا پلتفرم سرور ساید کدهای منطق برنامت رو می نویسی و خود زبان برات پشتیبانی از امکانات مربوط به تولید کد Html جهت نمایش و کار توی کلاینت (مرورگر وب) رو فراهم میکرده. خب شما یک مدل داشتی (مثل کتاب) که اون رو داری توی دیتابیس ذخیره میکنی... مدیریت میکنی کتاب ها رو .... ولی خب تعدادی صفحه وب هم میخوای که UI شما برای کاربرتون باشه... مایکروسافت ای-اس-پی رو داشته، جاوا جی-اس-پی (بعدن جی-اس-اف)، خود پی-اچ-پی اساسن واسه وب بوجود اومد... پایتونی ها دی-جانگو رو دارن ، ند جی اسی ها مثلن jade رو دارن و ......
خب... داستان از اینجا شروع شد که در ۵سال ۱۰سال اخیر تکنولوژی های HTML , CSS به شدت تغییر کرده، بالغ شده و رشد کرده... اصن وب اپلیکیشن ها دیگه مثل دیروزشون نیستن... فیس بوک اومد... اینستاگرام... اسپاتیفای و خیلی سایت های دیگه که اگه دقت کنید میبینید با نسل کلاسیک وب فرق دارن... خیلی پویا ترن... خیلی اطلاعات توشون متنوع هست توی هر صفحشون... نرخ رفت و آمد اطلاعات توی صفحه بالاست و خیلی از تعامل ها با کاربر صرفن توی صفحه رخ میده (نه اینکه برای هر کاری دایمن فرمی پست بشه یا درخواستی بره سمت سرور) یعنی کنترل های گرافیکی سمت کاربر توی مرورگر ها خیلی هوشمندتر میتونند باشند (این از رشد جاوااسکریپت توی مرورگر ها ناشی شده)

خلاصه این اتفاق ها از یک طرف باعث میشه صاحبان کنترل های سرور ساید نتونن دایمن با این تغییرات پیش برن و ضمنن نمیشه برای تمام این پویایی که سمت کلاینت هست شما تو سمت سرور کامپوننت درست کنی... نهایتن دستت یکم بسته هستش...
از سمت دیگه همیشه یک شکایتی بوده که شما وقتی داری کد سرور ساید (مثل تگ های پی-اچ-پی یا جی-اس-پی....) قاطی میکنی با کد Html توی صفحت دیگه نمیشه اون صفحه رو دست یک طراح سپرد تا کاملن با Html درگیر باشه و کارای کلاینت ساید خودش رو بکنه... (تا حدودی هم میشه اما بالاخره امکان تست و دست کاری روی صفحه ای که توش کد سرور سایده کم میشه)

داستان به اینجا کشید که کم کم کتابخونه و بعدن فریم ورک های کلاینت ساید (صرفن جاوا اسکریپت و تکنولوژی های کلاینت ساید) بوجود اومدن و الان چند سالیه که خیلی رشد کردن

این لیست معروف ترینه اون هاست... (http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks)

و اینم سایتی که توش می تونید یک مثال رو تک تک با همشون کد زده شده ببینید.. مقایسه کنید و .... (http://todomvc.com/)

اگه از من می شنوید حتمن AngularJS , React رو یاد بگیرید (یوتوب پر ویدیو آموزشی هست ازشون) به Backbone.js و Ember هم نگاه کنید حتمن.

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

یه چیزی رو یادم رفت بگم:
وقتی شما با این مدل برنامه وبت رو می سازی داری سمت کلاینت یه برنامه کامل MVC که به شکل های امروزی همین فریم ورک های مدرن جاوا اسکریپتی (‌MV* , MVVP, MVVM, ... ) درمیاد می سازی و این برنامه با AJAX می تونه درخواست هاشو از سرور بگیره بنابراین شما سمت سرور بدون اینکه به هیچ صفحه ای احتیاج داشته باشی صرفن منطقت رو می نویسی و یک سری REST API میزاری سرش که بتونه پاسخ اون AJAX ها رو بدی...

محمد فدوی
سه شنبه 29 مهر 1393, 08:21 صبح
ممنونم بابت پاسخ کاملتون.
این یعنی وبسایت فقط یه صفحه index داره و بقیه‌ی کارها و غیره تو همون صفحه بصورت پویا انجام میشه؟!

cups_of_java
سه شنبه 29 مهر 1393, 09:51 صبح
این یعنی وبسایت فقط یه صفحه index داره و بقیه‌ی کارها و غیره تو همون صفحه بصورت پویا انجام میشه؟!

نه لزومن. این چیزی که شما میگی مربوط به Single Page Application ها میشه که می تونید روی اون هم سرچ کنید. با بعضی از اون فریم ورک هایی که بالا لینکش بود SPA رو خیلی راحت تر میشه دراورد و خوراک همین تیپ کار هستن.