طراحی سایت | برنامه نویسی

آموزش طراحی سایت و برنامه نویسی

طراحی سایت | برنامه نویسی

آموزش طراحی سایت و برنامه نویسی

۱۲۰ مطلب در تیر ۱۳۹۸ ثبت شده است

۲۹تیر

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

income

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

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

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

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

چرا کسب درآمد از نرم افزار امروز ضروری است؟

صدور لایسنس و راه اندازی کسب درآمد به دلایل مختلف مهم است از جمله:

  • رقابت پذیری : لایسنس ها اغلب به توسعه دهندگان نرم افزار، مزیت رقابتی می دهند. توسعه دهندگان نرم افزار های بسیار قوی می توانند قطعات برنامه را به فروش برسانند و به طور موثر با دیگران رقابت کنند. رقابت پذیری شما را قادر می سازد تا با مدل های جدید کسب و کار پیش بروید.
  • انعطاف پذیری : خلاقیت در صدور لایسنس شما را قادر می سازد تا به سرعت  محصول خود را در پاسخ به حرکت رقبا، فرصت های بازاریابی، عوامل اقتصادی و یک نقشه راه ارائه دهید.
  • خدمات : راه حل کسب درآمد از نرم افزار ، نیاز به درک نیاز های مشتری از زبان خود اوست.شما این نیاز ها را در قالب خدمات به مشتری ارائه میدهید. این خدمات میتواند برای شما هزینه بر باشد پس لایسنس ها میتوانند در این جا به شما کمک کنند. شما بعد از ارائه نرم افزار میتوانید مدتی پشتیبانی رایگان ارائه دهید اما در نهایت باید برای این خدمات پولی را از مشتری دریافت کنید
  • سودآوری :  یک راهکار کسب درآمد نرم افزاری که بتواند رویکردی  مناسب را برای «امتحان قبل از خرید» ارائه دهد، می تواند به طرز چشمگیری پرداخت مشتریان را درآینده افزایش دهد و سود شما را افزایش دهد.
  • نظارت : با استفاده از یک محصول با ارزش تر، شما درک بهتری نسبت به تقاضا و افزایش توانایی ارائه محصولاتی بهتر را به دست می آورید. استفاده از لایسنس برای نرم افزار به شدت از استفاده غیر مجاز از نرم افزار شما می کاهد.

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

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

دو ویژگی کلیدی کسب درآمد از نرم افزار موفق

لایسنس های موفق برای نرم افزار به طور کلی حاوی این دو ویژگی هستند:

امنیت

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

سهولت

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

 

منبع: لرن سورس


شهربانو دوستی
۲۹تیر

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

vuejs

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

دارای اندازه بسیار کوچک

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

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

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

ادغام آسان

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

مستندات دقیق

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

انعطاف پذیری

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

ارتباطات دو طرفه

Vue.js به دلیل معماری MVVM دارای ارتباطات دو طرفه است که مدیریت بلوک های html را بسیار ساده میکند. در این رابطه، به نظر میرسد این فریمورک شبیه Angular.js است. در نهایت می توان گفت که Vue.js دارای مزایای چشمگیری نسبت به تمامی چارچوب های قبلی مانند Angular.js و React.js است. به طور خلاصه، این فریمورک ویژگی های عجیب و غریب کلیه فریمورک های قدیمی تر را ترکیب کرده است.

چرا باید از فریمورک Vue.js استفاده کنیم؟

ایده اصلی این مقاله این نیست که شما را متقاعد کند از Vue.js استفاده کنید و یا نه. با این حال فریمورک Vue.js دارای ویژگی هایی است که کمتر طراح باهوشی میتواند از کنار آن به سادگی عبور کند. در مقایسه با رقبای خود، از جمله Angular، React، Ember، Aurlia، و ...، Vue.js در برخی از جنبه ها آنها را ضربه فنی میکند. این جنبه ها عبارتند از API ساده، اندازه، عملکرد، منحنی یادگیری، و غیره. شما می توانید این مقایسه ها را در اسناد رسمی مشاهده کنید .

منبع: لرن سورس


شهربانو دوستی
۲۹تیر

هیچ راه میانبری برای موفقیت در طراحی تجربه کاربری(UX Design) وجود ندارد. گفتنی است که به منظور بهتر شدن در این رشته، مجموعه ای از مهارت ها وجود دارد که می توانیم بر روی آنها تمرکز کنیم. از جمله کارهایی که بسیار مفید است به دست آوردن فرصتی برای کار بر روی پروژه های پر چالش و ارزشمند است. در این مقاله به هشت موردی اشاره خواهم کرد که توانایی شما را در طراحی تجربه کاربری بهبود می‌بخشد.

نکته: شاید این اولین باری باشد که عبارت طراحی تجربه کاربری(UX Design) را می شنوید پس اگر در این رشته کاملا مبتدی هستید بهتر است تعریفی از آن به شما ارائه بدهم. UX مخفف عبارت User Experience design است و به تجربه و احساس کاربران در مشاهده صفحات وب سایت اطلاق میشود.

برای تقویت مهارت های طراحی تجربه کاربری به موارد زیر توجه کنید :

با اهداف کسب و کار مورد نظر آشنا شوید

قبل از اینکه کسی در مورد مفاهیم طراحی فکر کند درک و فهم نتایجی که قرار است به دست آید، بسیار مهم است. از خودتان سوال های زیر را بپرسید :

مشتری و یا شرکت مورد نظر به چه چیزهایی میخواهد برسد؟ چه مشکلی قرار است حل شود؟ آیا تحقیقات قبلی در مورد مسئله مورد نظر وجود دارد؟ آنها از شما به عنوان طراح تجربه کاربری چه انتظاری دارند؟ از نظر منابع چه چیزهایی در دسترس شماست؟ آیا برای انجام کار شما ضرب الاجلی تعیین شده است؟ آیا در انجام کار شما محدودیت تکنیکی و یا تجاری وجود دارد؟

Business Goals

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

در مورد کاربران خود اطلاعات جمع آوری کنید

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

Business Goals

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

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

تست های کاربر را انجام داده و بر روی راه حل های طراحی آن را اعمال بکنید

Business Goals

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

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

میزان رسیدن به طرح UX خود را اندازه گیری کنید

ux

شکی نیست که در ساختن هر چیزی منظوری وجود دارد و بهتر است میزان رسیدن به طرح مورد نظر همیشه اندازه گیری شود. شما باید چیزی را ایجاد کنید که  ارزش افزوده ایجاد می کند. پس برای اندازه گیری مقدار ux خود نیاز به معیار (شاخص‌های عملکرد کلیدی) دارید. برای رسیدن به این معیارها بهتر است به موارد زیر فکر کنید:

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

با تنظیم و اندازه گیری معیارها و به دست آوردن اطلاعات در این مورد می توان ارتباط بین توسعه دهندگان محصول و کاربران آن را ساده تر و نزدیکتر کرد.

خودتان را همیشه در لبه‌های تکنولوژی نگه دارید

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

technology

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

بر روی طراحی گفت و گو محور و رابط کاربری صوتی تمرکز کنید

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

برای ایجاد داستان ها تلاش کنید

داستان گویی مهمترین مهارت در طراحی تجربه کاربری در سال ۲۰۱۹ است. ممکن است شما احساس کنید برای گفتن یک داستان آماده نیستید. در این مورد فکر کنید. همه ما داستان ها را می شناسیم. بعضی از عناصر یک داستان که می توانید آنها را در نظر بگیرید عبارتند از طرح، تم، ساختار، تنظیمات، شخصیت ها و صدا.

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

محصول خود را برای زمانی که کاربر از چندین دستگاه استفاده می‌کند آماده کنید

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

نتیجه

نگاه به موضوعات مورد علاقه همچون ابزارهای طراحی و تکنولوژی های جدید می‌تواند بسیار تاثیرگذار باشد. اما ما باید از خود این سوال را بپرسیم که چه چیزی می تواند مهارت های ما را در طراحی تجربه کاربری ارتقا دهد. آیا تحقیقات و آنالیز داده می تواند این کار را برای ما انجام دهد و یا موضوعات دیگر .ما خیلی خوش شانس هستیم که در چنین رشته وسیعی کار می‌کنیم زیرا این رشته پر از فرصت هایی است که می تواند مهارت های ما را افزایش داده و در طول زمان ما را بهتر کند. سال ۲۰۱۹ افقی روشن برای این رشته است.
 

منبع: لرن سورس


شهربانو دوستی
۲۹تیر

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

nilson

مجموعه ای از قوانین ساده و کارآمد وجود دارد که به ما در تصمیم‌گیری و قضاوت کمک  می‌کنند. به آنها می‌توان به عنوان مجموعه ای از قوانین کلی به عنوان بهترین تمرینات رابط کاربری نگاه کرد.

نکته :  استفاده از این قوانین مکان و زمان خاص خود را دارد و جایگزینی برای تست های قابلیت استفاده محسوب نمی شود. در حالی که ۱۰ قانون نیلسون برای طراحی رابط کاربری مشهورترین مجموعه قوانین است، اما آنها تنها مجموعه ای نیستند که ما می‌توانیم به آنها رجوع کنیم بن شریدرمان نیز مجموعه ای از قوانین را ایجاد کرده است که با نام "۸ قانون طلایی رابط کاربری" شناخته می شود. در این نوشتار نگاهی به این قوانین خواهیم داشت.

۱. برای سازگاری و انسجام تلاش کنید

namaste

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

۲. از میانبرها برای کاربران خود استفاده کنید

ui

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

  • اختصارات
  • کلیدهای عملکرد
  • دستورات پنهان
  • امکانات ماکرو

۳. فیدبک های مفید ارائه دهید

ui-2

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

۴. فرآیندها را طوری طراحی کنید که ابتدا وسط و پایان آن ها مشخص باشد

tune

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

۵. مدیریت خطاها را در ساده‌ترین حالت ارائه دهید

litmus

یک رابط کاربری خوب باید طوری طراحی شود که تا جای ممکن با خطا روبرو نشود. اما زمانی که خطایی روی می دهد، سیستم شما باید به ساده ترین حالت مشکل را به کاربر اطلاع دهد و راه حل خروج از آن را نیز به او نشان دهد. روشی ساده برای مدیریت خطاها شامل نمایش واضح پیغام خطا به همراه توضیحاتی است که برای حل آن ارائه داده شده است.

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

undo

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

۷. بگذارید کاربر خود محصول سیستم باشد

alerts

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

۸. بار حافظه کوتاه مدت را کاهش دهید

contacts

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

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


شهربانو دوستی
۲۹تیر

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

small-business-mobile

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

برنامه های موبایلی همیشه پاسخگوی نیازهای شما نیستند

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

فضای ذخیره سازی تلفن های همراه بسیار رقابتی شده است

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

یک برنامه موبایلی می تواند برای شما گران تمام شود

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

گفتگو در مورد برنامه‌های موبایلی با مشتریان

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

برای اینکه تشخیص دهید آیا وجود یک برنامه موبایلی ضرورت دارد و یا نه سوال های زیر را از خود بپرسید:

برنامه موبایلی چه کاری را باید انجام دهد؟

مشتری شما باید دید واضحی از هدف استفاده از برنامه موبایلی داشته باشد. این هدف می‌تواند هر چیزی از افزایش فروش و یا کمک به ملاقات کننده ها برای انجام وظیفه ای مشخص باشد.

کاربران ایده آل شما چه کسانی هستند؟

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

چرا وب سایت نباید و یا نمی‌تواند وظیفه این برنامه موبایلی را انجام دهد؟

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

small-business-mobile-app-02

چه زمانی واقعا نیاز به داشتن یک برنامه موبایلی حس می‌شود

زمانی که شما اطلاعات درستی را در اختیار داشته باشید می توانید تشخیص دهید که یک برنامه موبایلی مفید است و یا خیر. بگذارید سناریوهای زیر را بررسی کنیم که در آن ها داشتن یک برنامه موبایلی مفید است :

زمانی که شما می‌خواهید از قابلیت‌های تلفن های هوشمند استفاده کنید

یکی از بزرگترین مزایای یک برنامه خوب و مفید این است که از تکنولوژی ها و امکانات تلفن های هوشمند استفاده کند برای مثال در مورد برنامه ای فکر کنید که از جی پی اس و یا دوربین های داخلی تلفن استفاده می‌کند. این امکانات معمولاً برای پیدا کردن مکانی مشخص و یا تایید چیزی استفاده می شود.

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

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

زمانی که این برنامه به شما کمک کند تقاضاهای بیشتری را به دست آورید

حتی اگر برنامه شما استفاده درستی از تکنولوژی کرده باشد زمانی برای شما صرفه اقتصادی خواهد داشت که تقاضاهای بیشتری را روانه وب سایت شما کند. اگر برنامه شما گروه‌های مختلف کاربری را به سمت کسب و کار شما روانه کند، سرمایه گذاری روی آن برای شما بسیار مفید خواهد بود.

نتیجه

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


شهربانو دوستی
۲۹تیر

وقتی واژه فضای خالی را می شنوید ممکن است ذهن شما به سمت سایدبار های کناری در وبسایت ها معطوف شود که در اطراف محتوای میانی سایت قرار دارد. با این حال فضای خالی به هر فضایی در اطراف تصاویر و یا دیگر عناصر صفحه اطلاق می‌شود. حتی فضای بین حروف هم نوعی فضای خالی محسوب می‌شود. داشتن مقداری فضای خالی برای طراحی تقریبا برای هر سایتی ضروری است.

shutterstock

اگر از این فضای خالی درست استفاده شود به وب سایت شما نمای زیبایی میبخشد. اگر با تمام این اوصاف هنوز متقاعد نشده اید که از فضاهای خالی استفاده کنید در این مقاله چهار دلیل آورده شده است که می‌تواند ذهنیت شما را تغییر دهد.

جلب توجه

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

dinnerforfive-example

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

اصلی که مهم و کلیدی است عبارت است از :

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

ترتیب های بصری را در صفحه خود ایجاد کنید

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

در زیر یک طراحی شسته و رفته را داریم که سلسله مراتب بصری را نشان می دهد :

artless-example

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

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

صفحه های فرود نمونه های عالی از این مساله هستند. معمولا شما دارای یک عنوان بزرگ به همراه مقداری زیادی فضای خالی اطراف آن هستید که بازدید کننده را تشویق به تهیه اشتراک می‌کند. بگذارید مثالی از یک صفحه وب را به شما نشان دهم. در زیر صفحه اصلی سایت GTmetrix نشان داده شده است :

gtmetrix

صفحه اصلی سایت GTmetrix از فضاهای خالی برای تأکید قوی استفاده کرده است. وقتی وارد این صفحه می شوید به صورت ناخودآگاه توجه شما به عنوان و دکمه Analyze معطوف می‌شود که شما را تشویق می‌کند برای تحلیل آدرسی را وارد کنید.

گروه بندی با استفاده از فضاهای خالی

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

در این صورت فاصله بین اشیا کمی بیشتر می‌شود و انتخاب برای بیننده ساده تر می شود. بگذارید ببینیم که CoSchedule چطور بخش مربوط به قابلیت‌های خود را طراحی کرده است :

coschedule-example

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

همچنین شما قادر خواهید بود فیلد های مشابه در یک فرم را با استفاده از فضاهای خالی گروه‌بندی کنید. این کار باعث می شود خواندن فرم ساده تر شده و کاربر را تشویق به پر کردن فیلدها می‌کند. در تصویر زیر یک فرم در دو حالت استفاده از فضای خالی و عدم استفاده از آن نشان داده شده است :

form-example

خوانایی بهتر

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


شهربانو دوستی
۲۹تیر

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

optimise

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

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

در این مقاله به چندین روش برای بهینه سازی CSS خواهم پرداخت. ممکن است هر کدام از آنها قابلیت پیاده شدن بر روی پروژه های شما را نداشته باشند، اما در ذهن داشتن آنها می تواند بسیار مفید باشد.

از اختصار در نوشتن کدها استفاده کنید

img

سریعترین عبارت در CSS آن عبارتی است که دیگر نتوان آن را تجزیه کرد. با استفاده از جمله های اختصار همچون مشخصه margin که در مثال پایین آورده شده است می توان تا حد زیادی از حجم CSS کم کرد. جملات اختصار زیادی در CSS وجود دارد که می‌توان از آنها استفاده نمود.

p { margin-top: 1px;
    margin-right: 2px;
    margin-bottom:  3px;
    margin-left: 4px; }

p { margin: 1px 2px 3px 4px; }

کد هایی از CSS که استفاده نمیشوند را پیدا نموده و حذف کنید

vu

حذف کدهای بلااستفاده در CSS می‌تواند تا حد زیادی باعث افزایش سرعت وب سایت شما شود. خوشبختانه مرورگر کروم قابلیت ویژه ای را در اختیار ما میگذارد که می توانیم از آن برای پیدا کردن کد های بلااستفاده بهره ببریم. از منوی  Developer زیر منوی Developer Tools را انتخاب کنید سپس به سربرگ Sources رفته و ترکیب کلیدهای کنترل ، شیفت و p را بفشارید.

اکنون Show Coverage را تایپ کرده و این دستور را اجرا کنید. در این حالت مرورگر کروم به شما قسمت هایی از فایل های css که استفاده نمی شوند را نمایش میدهد.

از مشکلات آگاهی داشته باشید

به یاد داشته باشید که یک آنالیز کننده خودکار در css همیشه می‌تواند منجر به خطا شود. بعد از اینکه فایل های CSS خود را با نسخه های کوچک شده ی آن جایگزین کردید بر روی همه صفحات وب سایت خود تست انجام دهید. هیچ کس  نمیداند که یک بهینه ساز چه اشتباهاتی ممکن است انجام دهد.

کدهای حیاتی در CSS را به صورت Inline درج کنید

بارگذاری فایل های خارجی CSS می تواند با تاخیر انجام شود. قسمت هایی حیاتی از کدهای css می‌توانند در تگ head قرار بگیرند. مطمئن شوید که آنها را با استفاده از کد های دیگر بازنویسی نمی کنید. به یاد داشته باشید که کد ها باید توسط انسان قابل خواندن باشد، چرا که ممکن است در آینده بخواهیم وظایف نگهداری را بر روی وب‌سایت خود انجام دهیم.

style>
    </head>
  <body>
    <div class="blue">
      Hello, world!
    </div>

تصاویر را با کدهای CSS جایگزین کنید

سالهای قبل مجموعه ایی از تصاویر PNG نیمه شفاف برای ایجاد افکت های گوناگون در وب سایت ها استفاده می‌شدند. امروز فیلتر های CSS جایگزین آنها شده و باعث صرفه جویی در منابع می شوند. برای مثال کد زیر باعث می شود تصویر مورد نظر به صورت سیاه و سفید نمایش داده شود :

img {
    -webkit-filter: grayscale(100%); /* old
safari */
    filter: grayscale(100%);
}

از  میانبر های رنگ استفاده کنید

توصیفگرهای شش رقمی رنگ کارآمدترین روش برای بیان رنگ ها هستند. البته در بعضی از مواقع این جمله همیشه صادق نیست و نام رنگ می تواند کوتاه تر باشد. با این حال استفاده از کدهای هگزادسیمال برای نمایش رنگ‌ها بسیار مفید است.

target { background-color: #ffffff; }
target { background: #fff; }

واحدهای غیر ضروری در CSS را حذف کنید

 CSS طیف گسترده‌ای از واحدها و فرمت های اعداد را پشتیبانی میکند. آنها یک هدف ایده آل برای بهینه‌سازی هستند. همانطور که در نمونه مثال زیر نشان داده شده است هر دو صفر قبل از ممیز و بعد از آن می‌تواند برداشته شود. به علاوه همیشه به یاد داشته باشید که مقدار صفر همیشه صفر است و نیاز به قرار دادن واحد در کنار آن نیست.

padding: 0.2em;
margin: 20.0em;
avalue: 0px;
padding: .2em;
margin: 20em;
avalue: 0;

فضاهای خالی را حذف کنید

فضاهای خالی و کاراکترهای خط بعدی خواندن کد را بسیار ساده می کنند، اما از نظر کارایی مناسب نیستند بعد از توسعه وب سایت و اتمام کار آن ها را حذف کنید. در این صورت حجم کدهای CSS شما کاهش می یابد.

کامنت ها را حذف کنید

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

از فشرده ساز های اتوماتیک استفاده کنید

تیم با تجربه yahoo اپلیکیشنی را ایجاد کرده است که برخی وظایف فشرده سازی را برای ما انجام می دهد(اینجا) این اپلیکیشن یک فایل  JAR است که می تواند با انتخاب JVM اجرا شود.

java -jar yuicompressor-x.y.z.jar
Usage: java -jar yuicompressor-x.y.z.jar
 [options] [input file]
Global Options
    -h, --help                Displays this
 information
    --type <js|css>           Specifies the
 type of the input file

 

نتیجه

راه های زیادی برای بهینه سازی کد های CSS وجود دارد که شما باید برای افزایش سرعت بارگذاری وب سایت خود از آنها استفاده کنید. در این مقاله ما به ۱۰ مورد اشاره کردیم که هر کدام از آنها می تواند تاثیر بسزایی در کارایی وب سایت شما داشته باشد 
 

منبع: لرن سورس


شهربانو دوستی
۲۹تیر

توسعه دهندگان وب مسئولیت های زیادی را بر عهده دارند حتی اگر آنها فقط بر روی back-end کار کنند باید کدهایی بنویسند که بر روی سرور اجرا شود. آن ها باید قادر باشند:

  • کدهایی از html را بنویسند که در مرورگر کاربر نمایش داده شود.
  • کدهای را بنویسند که به کلیک های کاربر پاسخ دهد.
  • با دیتابیس ارتباط برقرار کنند و داده های ورودی توسط کاربر را در آن ذخیره کنند.
  • برای اپلیکیشن های ios و اندروید از طریق Api های JSON و XML داده ها را فراهم بیاورند.

develper

در این مقاله می خواهیم در مورد اکثر این مهارت‌ها و تکنولوژی‌هایی که شما نیاز دارید تا به یک توسعه دهنده back-end تبدیل شوید صحبت کنیم. ما هر کدام از این مهارتها را با ساخت یک برنامه وب بسیار ساده به شما نشان خواهیم داد.

مهارت اول : یک زبان برنامه‌نویسی

در زیر کدی ساده از یک به وب اپلیکیشن آورده شده است :

from flask import Flask
app = Flask(__name__)

@app.route('/')
def main_page():
    return 'Welcome to my blog!'

این برنامه ساده منتظر مرورگر خواهد ماند تا به آن متصل شود و سپس با یک متن ساده "!Welcome to my blog" پاسخ می‌دهد :

backend

من تصمیم گرفتم این اپلیکیشن را با استفاده از زبانی به نام پایتون و کتابخانه ای به نام Flask بنویسم. اما برنامه ای ساده مثل این تقریبا می تواند با استفاده از هر زبان سمت سروری همچون #Java ،JavaScript ،C و PHP نوشته شود. هنگامی که  مرورگری درخواستی را به سمت وب سرور ارسال می‌کند سرور باید پاسخ این درخواست را بدهد.

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

مهارت دوم :  دیتابیس و SQL

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

برای داشتن چنین وبلاگی ما دیتابیسی را ایجاد کرده ایم که حاوی جدولی به نام articles است. این جدول دارای دو ستون بوده که ستون اول title نام دارد که عنوان مقاله در آن قرار میگیرد و ستون دوم content نام دارد که محتوای مقالات در آن قرار می گیرد. ما دو ردیف ایجاد کرده ایم که نشان میدهد وبلاگ ما دارای دو مقاله است :

backend_database

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

from flask import Flask
import sqlite3 as sql
app = Flask(__name__)

def articles():
    query = "SELECT * FROM articles"
    connection = sql.connect("test.db")
    connection.row_factory = sql.Row
    result = connection.cursor().execute(query)
    records = result.fetchall()
    connection.close()
    return records

@app.route('/')
def main_page():
    content = ""
    for record in articles():
       content += ("<p>%s: %s</p>" % (record["title"], record["content"]))
    return content

app.run()

عبارت "SELECT * FROM articles" در کد بالا با استفاده از زبان SQL نوشته شده است که به معنای دریافت تمام داده های جدول articles است. همچنین کد خود را به روز رسانی کرده ایم تا داده های خوانده شده از دیتابیس در مرورگر نمایش داده شود :

backend_sql

برنامه های زیادی برای پایگاه داده وجود دارد برای مثال میتوان به MySQL ، PostgreSQL و SQL Server اشاره کرد.  اما همه آنها مشابه همدیگر داده‌ها را در ردیف ها و ستون های جداول ذخیره می کند. اگر شما زبان SQL را بدانید قادر خواهید بود با هر کدام از این برنامه ها ارتباط برقرار کنید.

مهارت سوم : HTML

میتوان مقالات را از دیتابیس ها خوانده و در مرورگر نشان داد اما داده ها در قالب خوبی قرار نمیگیرند. برای بهبود بخشیدن به این وضعیت من قصد دارم قالبی را ایجاد کنم که بتوان داده های خوانده شده از دیتابیس را در آن قرار داد. این قالب توسط زبان نشانه گذاری متن و یا HTML ایجاد می‌شود. عنوان هر مقاله باید به عنوان هیدینگ در نظر گرفته شود و همینطور محتوای هر مقاله باید در پاراگراف ها قرار بگیرند. در این صورت مرورگرها داده های ما را در فرمت مناسب نمایش می‌دهند :

<!DOCTYPE html>
<html>
  <head>
    <meta charset='UTF-8' />
  </head>
  <body>
    {% for article in articles %}
      <h1>{{article["title"]}}</h1>
      <p>{{article["content"]}}</p>
    {% endfor %}
  </body>
</html>

همچنین من نیاز دارم تا کدهای مربوط به اپلیکیشن خود را برای استفاده از قالب html به روز رسانی کنم :

@app.route('/')
def main_page():
    return render_template("main.html", articles = articles())

اکنون صفحه ما در قالبی همچون شکل زیر نمایش داده می شود، صفحه ما همچنان دارای ظاهر ساده است ولی برای شروع کار کافی است :

backend_html

وبسایت حداقل از مقداری html استفاده می‌کنند. این دقیقا چیزی است که مرورگرها انتظارش را دارند. توسعه‌دهندگان back-end اغلب نیاز ندارند همه کد های HTML را خودشان بنویسند. آنها معمولا در این موضوع بر توسعه دهندگان front-end تکیه دارند. اما هنوز آنها نیاز دارند کدهای HTML را درک کنند. فهم زبان HTML به آنها کمک می‌کند تا بتوانند راحت‌تر داده ها را در صفحات درج کنند.

مهارت چهارم : API های JSON یا XML

مرورگر های وب تنها برنامه‌هایی نیستند که با یک اپلیکیشن وب ارتباط برقرار میکند. اغلب یک کمپانی اپلیکیشن‌های موبایل را نیز برای ios و اندروید به همراه وب سایت اصلی خود ارائه می دهد. به علاوه  برنامه هایی وجود دارند که مبتنی بر مرورگر بوده و از جاوااسکریپت استفاده می کنند نه HTML ارائه شده توسط سرور. این کار از طریق فریمورک هایی همچون React و Angular انجام می‌شود.

برای بازیابی داده به منظور نمایش آنها، این اپلیکیشن ها نیاز به یک Application Programmer Interface و یا به عبارتی دیگر API دارند که به آن متصل شوند.

HTML زبانی مفید برای فرمت بندی محتوا در مرورگر ها است اما همچنان فرمت های بهتری نیز برای داده ها وجود دارند که توسط دیگر برنامه ها استفاده میشوند. فرمت رایج برای داده های API عبارتند از JSON و XML .

برای مثال با استفاده از فرمت JSON به طریق زیر می توان مقالات خود را فرمت بندی کنیم :

[{"title":"First post...",   "content":"From my new blog app!"},
 {"title":"We got a puppy!", "content":"Her name is Chai."}]

این کار با استفاده از XML به شکل زیر انجام می‌شود :

<article>
    <title>First post...</title>
    <content>From my new blog app!</content>
</article>
<article>
    <title>We got a puppy!</title>
    <content>Her name is Chai.</content>
</article>

اکنون وقت آن رسیده تا اپلیکیشن خود را به روز رسانی کنیم تا بتوانیم یک API ساده را به آن اضافه کنیم. این API تمام مقالات وبلاگ ما را از دیتابیس گرفته و به فرمت JSON ارائه می دهد :

@app.route('/articles.json')
def articles_json():
    return json.dumps([dict(row) for row in articles()])

حالا زمانی که یک مرورگر وب "/articles.json" را به انتهای آدرس خود اضافه کند می‌تواند به API ما متصل شود و لیست مقالات ما را به فرمت JSON دریافت کند.

backend_json

در کجا می توانیم این مهارت ها را یاد بگیریم

اکنون که دانستیم چه مهارت هایی را باید بیاموزیم، سوال بعدی این است که در کجا می‌توان این مهارتها را آموخت؟ خوشبختانه وب پر از آموزش های مربوط به این موضوعات است بعضی از آنها قدیمی‌تر، بعضی جدیدتر، بعضی پیشرفته‌تر و بعضی ساده تر هستند. فقط کافیست بر روی آنها تمرکز کنید تا بتوانید آنها را در مدت کوتاه‌تری بیاموزید. 

منبع: لرن سورس


شهربانو دوستی
۲۹تیر

پایتون در دو سال گذشته دارای روندی رو به رشد و صعودی بوده است. در فیلد مربوط به توسعه back-end زبان‌های  پی اچ پی و پایتون دو مورد از گزینه های رایج برای انتخاب هر توسعه دهنده ای هستند. ترجیح زبان پایتون برای توسعه وب به جای زبان php کار سختی نیست. اما دلایل مشخصی وجود دارد که توسعه دهندگان را تشویق به استفاده از پایتون می کند.

phyton

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

چگونه می‌توان پایتون را با پی اچ پی مقایسه کرد؟

PHP برای این مدت طولانی زبان مورد علاقه توسعه‌دهندگان وب بوده است و شاید هنوز هم هست. با این حال زبان پایتون ویژگیهای را داراست که می تواند برتری خود نسبت به php را به اثبات برساند.

طراحی حساب شده تر

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

یادگیری آسان

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

فریمورک

فریمورک ها با ارائه ی ساختاری مناسب برای یک اپلیکیشن، کار توسعه دهندگان را بسیار ساده می کنند. پایتون فریمورک های Django و Flask را فراهم می آورد. در حالی که در php می‌توان از فریمورک های Kohana ،Symfony ،CodeIgniter و Zend استفاده نمود. در میان فریم ورک های پایتون قطعاً Django برنده بازی خواهد بود. استفاده از Django بسیار ساده بوده و سریع و امن است. توسعه‌دهندگان جدید Django را انتخاب می کنند. به خصوص زمانی که بخواهند زمان کمتری را برای توسعه برنامه صرف کنند.
 

دقت بالاتر

زبان php دارای مستندات گسترده ایست و به روش کلاسیک دنبال می شود. درعوض پایتون در برنامه های دشوارتر استفاده می شود. پایتون نه تنها نسبت به زبان php بلکه نسبت به بسیاری از زبان های برنامه نویسی دقیق تر است.

قاعده ی نوشتاری به ساده تر

قاعده نوشتاری پایتون ساده‌تر است. کد نویسی در پایتون خیلی ساده است. وقتی چیزی را در پایتون می نویسید به نظر می‌رسد که ظریف و زیباست و این می‌تواند دلیل دیگری برای برتری پایتون نسبت به زبان php باشد.

ابزار های موجود در دسترس

زبان پایتون یک عیب یاب قدرتمند به نام PDB را ارائه می دهد. PDB دارای اسناد زیادی بوده و استفاده از آن حتی برای تازه کارها آسان است. زبان php نیز پکیجی را برای خطایابی به نام X Debug ارائه می‌دهد که عملکرد آن عالی است. تنها دلیلی که در اینجا می‌توان گفت پایتون را قوی تر از php نشان می دهد این است که این زبان به ابزارهای کمتری نسبت به php برای عیب یابی نیاز دارد.

مدیریت پکیج ها

مدیریت پکیج ها در php وجود دارد، اما احتمالا کد پایه ای به منظور استفاده از آن برای مدیریت و نصب پکیج ها وجود ندارد. این قابلیت در پایتون با نام PIP در دسترس است، که این زبان را قادر به نصب، حذف، ارتقا و استفاده از رنج گسترده ای از منابع برای کتابخانه‌ها ی داخلی و خارجی می کند.

عبارت های لمبدایی که توسط پایتون ارائه می شود دلیل دیگری برای برتری پایتون است

عبارت های لمبدا به سادگی در پایتون جریان دارند و ایجاد آنها بسیار ساده است. بنابراین توسعه دهندگانی از پایتون که علاقه به استفاده از لمبدا ها دارند به راحتی این قابلیت برای آنها در دسترس است. قبلا create_function تنها موردی بود که در php در دسترس بود که نمی‌تواند جایگزینی برای لمبدا ها در پایتون باشد.

پایتون چندمنظوره تر از زبان php است

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

پشتیبانی و جامعه

پایتون به نسبت زبان php تطابق پذیرتر ، مدرن تر، ساده تر و دقیق تر است.  از آنجایی که پایتون در مواردی به غیر از توسعه وب استفاده می شود دارای جامعه‌ ای گسترده تر است که می تواند دلیل دیگری برای برتری این زبان باشد. 


شهربانو دوستی
۲۹تیر

 قبل از اینکه بفهمیم چرا باید زبان برنامه نویسی GO را یاد بگیریم، احتیاج داریم بدانیم زبان برنامه نویسی GO چه زبانی است؟ در زیر نام های مختلف زبان برنامه نویسی GO آورده شده است :

"Go", "Go Programming Language", "Go-Lang", و "Google Go".

go

زبان GO در سال ۲۰۰۷ در گوگل توسط رابرت گریزمر، رابین پیک و کن تامپسون طراحی و پشتیبانی شد. این کار برای حمایت از مقیاس پذیری و کارایی انجام شد. GO یک زبان برنامه نویسی برای توسعه دهندگانی است که بر روی سرعت زبان های پویا همچون پایتون کار می کنند و میخواهند از مزایای کارایی و امنیت در زبان هایی همچون C و ++C بهره ببرند. زبان برنامه نویسی GO سریع و کامپایلری است.

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

مدیریت و نگهداری کد های زبان برنامه نویسی GO بسیار ساده است

قاعده نوشتاری زبان GO بسیار شسته و رفته بوده و درک آن آسان است. زبان GO در مقایسه با دیگر زبان های برنامه نویسی بسیار متفاوت است . زبان GO همچون زبان های C و ++C بسیار کارآمد بوده و نوشتن کد در آن به سادگی زبان های Ruby/Python است. در زیر به برخی از ویژگی‌های اشاره خواهم کرد که در زبان GO وجود ندارد :

  • در این زبان کلاس وجود ندارد. هر چیزی در این زبان در پکیج ها تقسیم بندی می شود. زبان GO به جای کلاس ها تنها شامل ساختار هاست.
  • این زبان از وراثت پشتیبانی نمی کند، این ویژگی باعث می شود ویرایش کدها آسان تر شود. در زبان های دیگر برنامه نویسی همچون جاوا و پایتون اگر کلاسی به نام ABC از کلاسی دیگر به نام XYZ ارث بری کند و بخواهید تغییراتی را در کلاس XYZ ایجاد کنید. این تغییرات باید در کلاس هایی که از این کلاس ارث بری کرده‌اند نیز اعمال شود. با حذف قابلیت ارث بری فهم زبان GO آسان تر شده است.
  • در این زبان سازنده وجود ندارد.
  • در این زبان جنریک لیست ها وجود ندارند.
  • در این زبان استثناها وجود ندارند.

زبان برنامه نویسی GO بسیار قدرتمند است

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

زبان برنامه نویسی GO دارای واژگان کلیدی مشخصی است

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

زبان برنامه نویسی GO دارای قوانین محدوده ای ساده است

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

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

زبان برنامه نویسی GO دارای مدیریت کننده زباله درونی است

مدیریت زباله های حافظه کاری سخت و پیچیده است. مدیریت دستی حافظه وقت و انرژی زیادی را از توسعه‌دهندگان می‌گیرد و به همین دلیل است که توسعه دهندگان زبان GO به یک مدیریت کننده ی زباله درونی در این زبان نیاز داشتند. زبان GO دارای یک garbage collection است که می تواند در هزینه ها صرفه جویی قابل توجهی انجام دهد.

منبع: لرن سورس
شهربانو دوستی