رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

طراحی و توسعه

  • نوشته‌
    9
  • دیدگاه
    4
  • مشاهده
    1,537

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

درباره این وبلاگ

نوشته‌های این وبلاگ

 

۷ گام برای تبدیل شدن به یک طراح موفق UI/UX

«بخش اول» در این مطلب از تجربیات طراح موفق خانم Nicole Saidy استفاده خواهیم‌ کرد. ایشان بخاطر سوالات زیادی که از جانب برنامه‌نویسان متعدد، مدیران بازاریابی و افراد مختلف دیگری مطرح شده بود این مقاله را براساس تجربیات شخصی خود تنظیم کردند. ادامه‌ی مطلب را از زبان خودشان می‌شنویم. «چگونه شروع کنم؟» این سوال من را به زمانی می‌برد که برای اولین بار کار خود را آغاز کردم. 7 سال پیش، من در اولین روز اولین کار طراحی‌ام بودم. در مقابل یک فایل فتوشاپ خالی در iMac نشسته ام (در آن زمان یک کاربر ویندوز بودم) و سعی می‌کنم آنچه که مدیرم توضیح داد درک کنم. هیچ نظری ندارم که چگونه شروع کنم. خالی! قبل از رسیدن به این شغل، تازه از دانشگاه با مدرک چندرسانه‌ای فارغ التحصیل شده بودم. پس چرا چیزی در مورد طراحی نفهمیدم؟ خب، در دانشگاهها به ما طراحی عملی یاد نمی‌دهند. اکثر دورههای دانشگاه فقط ما را بصورت تئوری آموزش می‌دهند و گاهی اوقات به ما یاد می‌دهند که چگونه از ابزارهای طراحی مانند Adobe Suite استفاده کنیم. اما این کافی نیست - حتی نزدیک هم نیست. تمرین، یادگیری و خودآموزی تنها چیزی است که می‌تواند شما را به یک طراح بهتر تبدیل کند. 7 سال بعد از خودآموزی، من اکنون یک معلم طراحی و سخنران کنفرانس بین المللی هستم. اولین چیزی که باید بدانید این است: لازم نیست که با این استعداد متولد شوید. ما موجودات خارق العاده‌ای مانند تک‌ شاخ‌ها نیستیم. ما فقط قصد داشتیم طراح باشیم و هنرمندانه به دنیا آمدیم. طراحی، در مورد حل مشکلات است. این یک روند دائمی یافتن مشکلات و ایجاد راه حل برای آنهاست. حوزه‌های مختلفی برای طراحی وجود دارد: رابط کاربری، تجربه‌ی کاربری، طراحان محصول، طراحان گرافیکی، طراحان تعاملی، معمار ساختار اطلاعات و غیره. برای شروع تحقیق کنید که کدام حوزه شما را بیشتر جذب می‌کند. برای حال، روی رایج‌‌ترین حوزه تمرکز می‌کنیم: ترکیبی از رابط و تجربه: طراح رابط کاربری و تجربه‌ی کاربری. 1. خودتان را با اصول رابط کاربری آشنا کنید. قبل از شروع تمرین طراحی، اولین چیزی که نیاز دارید یادگیری برخی اصول طراحی است. در این مرحله، شما به دنیای طراحی قدم خواهید گذاشت و شروع به تفکر «خلاقانه» می‌کنید و جنبه‌های روانشناسی طراحی را خواهید آموخت: چرا این طرح می‌تواند خوب بنظر بیاید و یا شکست بخورد؟ برخی از اصول پایه‌ای که باید بدانید: 1. رنگ (Color) واژگان رنگ‌ها، اصول و روانشناسی رنگ را شامل می‌شود. ۲. تعادل (Balance) اصل تعادل به تقارن و عدم تقارن در مبحث طراحی می‌پردازد. 3. تضاد (Contrast) هدف از بکارگیری تضاد سازماندهی اطلاعات، ایجاد سلسله مراتب و ایجاد تمرکز است. ۴. تایپوگرافی (Typography)  انتخاب فونت مناسب و ایجاد متن قابل خواندن در وب با رعایت این اصل ممکن خواهد بود. ۵. ثبات و انطباق (Consistency) مهمترین اصل، جهت ایجاد طرح های بصری و قابل استفاده از ثبات شروع میشود.   ۲. فرآیند خلاقانه‌ی تجربه‌ی کاربری را فرا بگیرید. مورد بعدی درک فرآیند خلاقانه است. طراحی UI/UX فرآیندی متشکل از فازهای خاصی است که هر فرد خلاق از آن عبور می‌کند. این فرآیند شامل ۴ فاز مختلف کشف (Discover)، تعریف (Define)، توسعه (Develop) و تحویل (Delivery) است. فرآیند خلاقانه فاز کشف فاز کشف همان فاز شروع پروژه است که طراحان به جستجو، الهام گرفتن و جمع‌آوری ایده‌ها می‌پردازند. فاز تعریف در این مرحله، طراحان ایده‌ی حاصل از فاز کشف را تعریف و مشخص می‌کنند. در‌واقع خلاصه‌ای واضح از کاری که قرار است انجام بگیرد مشخص می‌شود. فاز توسعه فاز توسعه مرحله‌ای است که راه‌ حل‌ها یا مفاهیم ایجاد شده، نمونه‌سازی، تست و تکرار می‌شوند. این فرآیند آزمایش و خطا به طراحان کمک می‌کند تا ایده‌های خود را بهبود داده و اصلاح کنند. فاز تحویل فاز آخر فاز تحویل است که در آن پروژه‌ی پایانی، تولید و راه اندازی می‌شود. ۳. چشمان خود را برای طراحی تقویت کنید. دانستن اصول طراحی عالی است، اما گاهی اوقات کافی نیست. شما همچنین باید چشمان خود را آموزش دهید تا طراحی خوب و طراحی بد را ببینید و نقاط قوت و ضعف آن‌ها را مشخص کنید. موثرترین روش جهت آموزش چشم برای طراحی از طریق الهام است. قبل از باز کردن یک بوم خالی و تماشای آن برای نیم ساعت ، بدانید که تنها راه خلاق بودن از طریق تحقیق است. گاهی اوقات ذهن نمی‌تواند ایده‌های خودش را بسازد. ابتدا باید به طرح‌های دیگر نگاه کنید تا طرح خودتان را ایجاد کنید؛ مخصوصا زمانی که فعلا مبتدی هستید. در وب‌سایت‌های نمونه‌کار‌ها قدم بزنید:) بنابراین به آنچه که طراحان دیگر در سایت Dribbble انجام می‌دهند نگاه کنید و هر زمان که طرح‌های زیبا یا چیزی مربوط به پروژه‌ی خود را می‌بینید، آن را در یادداشت‌های خود ذخیره کرده و اشاره کنید که چه چیزی از آن طرح را پسندیده‌اید. همچنین می‌توانید با گرفتن اسکرین‌شات ذخیره‌سازی را دقیق‌تر انجام دهید. به این ترتیب، شما مجموعه‌ای از طرح‌های الهام بخش دارید که می‌توانید برای شروع کار از آن‌ها بهره ببرید. چند مورد از سایت‌های مفید جهت الهام گرفتن در زیر آورده‌شده‌اند:  onepagelove.com awwwards.com dribbble.com pttrns.com uimovement.com ۴. مطالعه‌ی مقالات طراحی را در برنامه‌ی روزانه‌ی خود بگنجانید. برای اینکه خودمان را با طراحی آشنا کنیم، بهترین راه این است که هر روز چند مقاله در این رابطه مطالعه کنیم. خواندن اخبار و وبلاگ‌های طراحی را عادت روزمره کنید. میلیون‌ها مقاله‌ بصورت آنلاین در دسترس ما هستند تا روند‌های جدید دنیا، مورد‌های کاربری (Use Cases) و آموزش‌های مختلف را فرا بگیریم. تمام کاری که باید انجام دهیم، پیدا کردن آنهاست. هیچ چیز بهتر از یادگیری از تجربه‌های دیگران نیست. خواندن مقالات را عادت روزمره کنید بنابراین روز خود را با یک فنجان قهوه و چند مقاله‌ی الهام‌ بخش در مجلات آنلاین Medium یا Smashing شروع کنید. یادگیری چیزهای جدید در صبح، ذهنتان را گسترش داده و در طول روز فرصت خلاقیت را برایتان فراهم میکند. بنابراین، هر چند وقت یکبار در طول روز، چندین بار به خود استراحت بدهید تا بتوانید بیشتر مطالعه کنید. استراحت کردن برای خلاقیت خیلی مهم است، به ویژه هنگامی که ذهن شما گیر کرده و احساس می‌کنید که بازدهی مطلوب را ندارید. از جمله کارهای قابل انجام دیگر می‌توانید وب‌سایتی را که به عنوان صفحه‌ی اصلی مرورگر خود دوست دارید، نشانه‌گذاری کنید و یا از یک خبرنامه‌ی طراحی اشتراک بگیرید. برخی از وبلاگ‌ها و سایت‌های خبری محبوب در زمینه‌ی طراحی عبارتند از: blog.marvelapp.com medium.com/design smashingmagazine.com webdesignernews.com sitepoint.com/design-ux 5. پروژه‌های غیرواقعی طراحی کنید. کار نیکو کردن از پر کردن است و همه می‌دانیم که نمی‌توانیم بدون تجربه، مشتری یا شغلی را بدست آوریم. اما بدون یک کار یا پروژه هم نمی‌توانیم تمرین کنیم و تجربه کسب کنیم، درست است؟ بنابراین می‌توانیم این چرخه را با تمرین کردن و ایجاد پروژه‌های غیر واقعی برای سرگرمی بشکنیم! Dribbble پر از این نمونه کارها است. طراحی فیسبوک توسط Kevin McCarthy زمانی را صرف طراحی مجدد وب‌ سایت یا اپلیکیشنی که قبلا استفاده کرده‌اید کنید. این کار را برای هر چیزی که فکر می‌کنید می‌تواند بهتر شود، انجام دهید. همچنین می‌توانید ایده‌ی برنامه‌ی خود را طراحی کنید. درواقع با طراحی نمونه‌ کارها تمرین کرده و تجربه کسب می‌کنید.   ۶. کار با آخرین ابزار طراحی وب را بیاموزید. هزاران ابزار طراحی وجود دارد، اما شما نیاز ندارید که کار با همه‌ی آنها را یاد بگیرید. بهترین آن‌ها را بیابید، ابزارهای مورد علاقه‌ی خود را انتخاب کنید و با بکار گیری جدیدترین ویژگی‌ها و روندها به‌ روز باشید. جدیدترین ابزارهایی که در فرآیند طراحی خود استفاده می‌کنم در زیر آورده‌ شده‌اند: Sketch برای طراحی رابط کاربری Figma برای طراحی رابط مشترک Balsamiq برای رسم وایرفریم‌های با جزيیات کم و ابتدایی (low fidelity wireframing) Adobe XD برای طراحی رابط کاربری و نمونه‌سازی Marvel App برای ساخت مدل‌های تعاملی Invision App برای نمونه‌سازی و همکاری   7. از مربی (mentor) کمک بگیرید. یکی دیگر از روش‌های عالی برای یادگیری طراحی، یافتن یک مربی طراحی یا دوست طراح است که مایل به کمک است. آنها به شما کمک میکنند که روند یادگیری خود را سرعت بخشید. طراح کار شما را بررسی و نظرات خود را هر زمان که ممکن باشد می‌دهد. این کار مثل یک میانبر عمل می‌کند. آنها همچنین راهنمایی‌ها و ترفندهایی به شما می‌دهند که از تجربیات خود آموخته اند. بنابراین پیش بروید و به یک طراح ایمیل بفرستید، سوالات و نگرانی‌های خود را با وی مطرح کنید. هنگامی که شما آماده‌ی صحبت در مورد طراحی با دیگران هستید، می‌توانید کسی را در مورد طراحی راهنمایی کنید و یا آموزش دهید. همچنین یاد خواهید گرفت که آن را  دیدگاه‌های مختلف ببینید و بازخورد و پاسخ سوالاتی را دریافت کنید که ممکن است هرگز در مورد آن‌ها فکر نکرده باشید. هنگامی‌که در مورد طراحی با افراد دیگری صحبت می‌کنید، ذهن شما همواره در‌حالت "طوفان فکری" قرار می‌گیرد و بیشتر از قبل به طراحی علاقه‌مند خواهید شد. منتظر بخش‌های بعدی با جزییات بیشتر در مورد اصول رابط کاربری باشید.

الهه انصاری

الهه انصاری

چگونه جریان کاری UI/UX را با استفاده از ابزار Figma ساده‌سازی کنیم؟

زمان همیشه به عنوان یک فاکتور اساسی و حساس در پروژه‌ها به حساب می‌آید. در این مقاله قصد داریم ببینیم که چگونه می‌توانیم 90 درصد از وقت خود را طی جریان پروژه صرفه جویی کنیم. یکی از ابزارهایی که برای این منظور وجود دارد، Figma است. با استفاده از این ابزار در طول فرآیند طراحی UI/UX می‌توانیم چندین ساعت در کارمان صرفه‌جویی داشته باشیم و جریان طراحی را عمیقا متحول کنیم. Figma علاوه بر بصری بودن، یک پکیج کامل است که قابلیت کار بر روی تمامی مراحل فرآیند طراحی را برای ما فراهم می‌سازد: رسم وایرفریم‌ها، طراحی، طراحی سیستم‌ها، نمونه‌سازی و طراحی مشارکتی. هدف از این مقاله آموزش نحوه‌ی استفاده از Figma نیست؛ بلکه می‌خواهیم به شما نشان دهیم که چگونه می‌توانید چندین ساعت زمان را در پروژه‌ی بعدی خود با یک ترفند ساده ذخیره کنید. این امر به خاطر وجود ویژگی‌ای از Figma  به نام اجزا یا مولفه‌ها (Components) تحقق می پذیرد.    components in Figma اجزا در Figma شباهت زیادی به نمادها (Symbols) در Sketch دارد. اما اجزای موجود در ابزار Figma بسیار انعطاف پذیر و استفاده از آن‌ها آسان‌تر است. اگر در مورد اجزا اطلاعات زیادی ندارید، توصیه می‌کنم این مقاله را با دقت مطالعه کنید. Figma‌ چگونه به ما در صرفه‌جویی زمان کمک می‌کند؟ حال ببینیم فرآیند طراحی سنتی در مقایسه با فرآیند طراحی در Figma چگونه به نظر می‌رسد.   فرآیند فرآیند سنتی یا کلاسیک  ساده‌ترین فرآیند کلاسیک، ساخت یک وایرفریم در برنامه‌ای مانند Balsamiq است. سپس می‌توان طرح را در یک برنامه‌ی دیگری مانند Sketch ساخت و در برنامه‌ای چون InVision نمونه‌‌ی اولیه را ایجاد کرد. این روند یک روند تعاملی نیست، زیرا علاوه‌ بر اتلاف وقت زیاد، باعث به وجود آمدن شکاف بزرگی بین وایرفریم و نمونه‌سازی می‌شود. فرآیند طراحی در Figma با استفاده از Figma، شما از 2 مرحله پرش کرده، وایرفریم‌های تعاملی خود را رسم و هم زمان یک کتابخانه‌ی رابط کاربری ایجاد می‌کنید. سپس اجزا رIبط کاربری را به‌روز می‌کنید که قبلا وقت ارزشمندتان را برای ایجاد یک نمونه اولیه هدر می‌کردید! در واقع شما وایرفریم‌های خود را با استفاده از اجزا از ابتدا می‌سازید. پس از تایید وایرفریم‌ها، تنها چیزی که نیاز دارید به‌روز کردن اجزا است. این کار اشکال سفید و سیاه پایه‌ای شما را به اجزای طراحی شده‌ی دقیق تبدیل می‌کند. به بیان دیگر وایرفریم‌های شما به یک نمونه‌ی اولیه با وضوح و جزییات بیشتر تبدیل می‌شوند.   چگونه کار می‌کند؟ این کار در ۴ مرحله انجام می‌شود که در زیر آورده شده است. مرحله‌ی۱. وایرفریم‌های خود را بسازید. قبل از این مرحله، شما باید طرح خود را روی کاغذ کشیده باشید. حال زمان آن فرا رسیده که آن‌ها را ب‌‌‌ م‌های دیجیتال منتقل کنید. پیش از شروع طراحی، اولین کاری که باید انجام دهید ایجاد یک قالب کتابخانه‌ی رابط کاربری (UI library frame) است. تمام اجزای رابط کاربری قابل استفاده‌ی مجدد و دستورالعمل های شما در این قالب قرار می‌گیرند. اولین مولفه‌هایی (Components) که باید ایجاد کنید سبکهای متن شماست. برای هر سبک (H1، H2، H3، H4، P، کوچک، و غیره) یک جز ایجاد کنید. از فونت‌ها همان گونه که هستند استفاده کنید و فعلا در مورد طراحی فکر نکنید. هر سبک متن یک جز است حال، هر زمان که می‌خواهید متنی را به صفحه اضافه کنید، یک نمونه از مولفه‌ی متن در کتابخانه‌ی رابط کاربری را می‌گیرید. چرا؟ هنگامی که شما به مرحله‌ی طراحی ‌‌‌‌‌می‌روید و می‌خواهید سبک فونت را برای تمامی صفحه‌های خود تغییر دهید، آن را یک بار از همین جا تغییر می‌دهید و در همه جا به‌روز می‌شود. کمی بعد کاملا متوجه خواهید شد. این مفهوم به تمامی مولفه‌های دیگر شما قابل تعمیم است. یک نمونه کتابخانه‌ی رابط کاربری تمامی اشیا (Objects) از جمله Buttons، Inputs، Dropdowns، Navbars، Cards، Labels، Footers را هم دقیقا مانند اجزا ایجاد کنید. همچنین می‌توانید ابتدا شی را روی صفحه‌ی نمایش ایجاد کنید سپس آن را به کتابخانه‌ی خود بکشید و به یک جز تبدیل کنید و سپس دوباره در صفحه کپی کنید. نمونه‌ای از وایرفریم‌ها در پایان پروژه، تقریبا هر شی‌ای که در طرح‌ها‌ ایجاد می‌کنید، باید یک جز باشد. این کار نه تنها در صرفه‌جویی زمان به شما کمک می‌کند، بلکه هماهنگی را در محصول شما حفظ می‌کند که یک نکته‌ی کلیدی مهم در طراحی رابط کاربری و تجربه‌ی کاربری است. مرحله‌ی۲. وایرفریم‌های خود را تعاملی کنید. پس از رسم وایرفریم‌ها و ایجاد کتابخانه، زمان تعاملی کردن وایرفریم‌ها رسیده است. خوشبختانه، وجود Figma انجام این کار را بسیار ساده کرده است. تمام چیزی که نیاز دارید کشیدن هر شی به صفحه مرتبط با خود در حالت نمونه‌ی اولیه است. همان طور که در زیر می‌بینید، اتصال مولفه‌های اصلی همان لینک را به تمام نمونه های آن اعمال می‌کند. تعاملی ساختن وایرفریم‌ها گام بعدی این است که وایرفریم‌های تعاملی خود را با ذینفعان به اشتراک بگذارید و نظرات خود را با اضافه کردن در نمونه‌ی اولیه به طور مستقیم دریافت کنید. پس از چندین دوره‌ی تکرار، وایرفریم‌های شما باید تایید شوند. مرحله‌ی 3. سبک سیستم طراحی خود مشخص کنید. هنگامی که وایرفریم‌های تعاملی شما تایید شدند، اکنون می‌توانید سبک سیستم طراحی خود را تعیین کنید. در این مرحله، شما دستورالعمل طراحی برند، رنگ و جزییات طراحی را به اجزای ساخته شده در کتابخانه اضافه می‌کنید. این مرحله به طور کامل وایرفریم‌های شما را به یک نمونه‌ی اولیه‌ی طراحی با وضوح و جزییات بالا تبدیل می‌کند. تغییر سبک در یک جز در همه‌ی نمونه های آن اعمال میشود  بهتر است ابتدا راهنمای سبک را به ذینفعان نشان دهیم تا بازخوردی در مورد حالت و سبک طراحی قبل از نمایش همه‌ی صفحات به دست آوریم. اضافه کردن تعدادی مولفه در حضور آن‌ها می‌تواند به درکشان از چگونگی طراحی هر مولفه کمک کند. یک کتابخانه‌ی رابط کاربری پایه‌ای مرحله‌ی 4. نمونه‌ی اولیه‌ی خود را نهایی کنید. 
هنگامی که راهنمای سبک تایید شد، تنها چیزی که باقی می‌ماند، بهتر کردن نمونه‌ی اولیه است. در این مرحله می‌توانید مطمئن شوید که همه چیز در جای خود قرار دارد. ممکن است اشیایی وجود داشته باشند که اجزایی نیستند که باید طراحی شوند  یا اجزا مورد نیاز باشند. حتما نمونه‌ی اولیه را اجرا کرده و لینک‌ها را امتحان کنید تا مطمئن شوید که تمامی پیوندها به درستی کار می‌کنند. نمونه‌ی اولیه نمونه‌ی اولیه آماده است! اکنون می‌توانید یک لینک را با سهام‌دار برای گرفتن تایید نهایی به اشتراک بگذارید. سپس، این نمونه‌ی اولیه را به توسعه‌دهندگان ارسال کنید و به آن‌ها نشان دهید که چگونه می‌توانند تصاویر را در Figma بررسی و استخراج کنند. همچنین توسعه‌دهندگان می‌توانند هر گونه سوال مستقیمی که از نمونه‌ی اولیه دارند بپرسند. اضافه کردن نظر در نمونه‌‌ی اولیه شما همچنین می‌توانید یک لینک عمومی برای تست نمونه‌ی اولیه‌ی خود با دیگر کاربران به اشتراک بگذارید و یک بازخورد کلی به دست آورید. امیدوارم به کمک این ابزار بتوانید با سرعت بیشتری فرآیند طراحی را خود را پیش ببرید.

الهه انصاری

الهه انصاری

 

تکنولوژی REST

تکنولوژی REST (REpresentational State Transfer)، یک سبک معماری برای توسعه‌ی وب سرویس‌ها است. معماری REST به دلیل سادگی و استواری بر پایه سیستم‌های موجود و ویژگی‌های HTTP به منظور دستیابی به اهداف آن، بر خلاف ایجاد استانداردها، چارچوب‌ها و فناوری‌های جدید، محبوب است. مزایای معماری REST یکی از مزیت‌های اصلی استفاده از این معماری، هم از جنبه‌ی سرویس گیرنده و هم از جنبه‌ی سرور، تعاملات مبتنی بر REST است که برای هر فردی که با پروتکل HTTP آشنایی دارد، بسیار ساده است. برای مثال، تعاملات مبتنی بر REST وضعیت خود را با استفاده از کدهای وضعیت HTTP استاندارد اعلام می‌کنند. بنابراین، 404 به معنای «منبع درخواست شده یافت نشد»، کد 401 به معنای «درخواست مجاز نیست»، کد 200 به این معنی است که «همه چیز خوب است» و کد 500 بدان معنی است که «یک خطای نرم افزار غیر قابل برگشت در سرور وجود دارد». به طور مشابه اعمالی مانند رمزنگاری و یکپارچگی انتقال داده بدون اضافه کردن چارچوب یا تکنولوژی خاصی و صرفا با رمز نگاری SSL و TLS پیاده سازی می‌شوند. معماری REST همچنین یک معماری مستقل از زبان است. برنامه‌های مبتنی بر REST می‌توانند به کمک هر زبانی از جمله Java، Kotlin، AngularJS و یا JavaScript نوشته شوند. تا زمانی که یک زبان برنامه نویسی می‌تواند درخواست‌های مبتنی بر وب را با استفاده از HTTP انجام دهد، این زبان قادر خواهد بود که برای فراخوانی RESTful API یا وب سرویس استفاده شود. به طور مشابه، وب سرویس‌های RESTful می‌توانند با استفاده از هر زبانی نوشته شوند، بنابراین توسعه دهندگان با اجرای آن‌ها می‌توانند تکنولوژی‌هایی را انتخاب کنند که بهترین کارایی را در شرایط موجود داشته باشند. مزیت دیگر استفاده از این معماری، فراگیر بودن آن است. در سمت سرور، انواع چارچوب‌های مبتنی بر REST از جمله RESTlet و Apache CXF وجود دارد که به توسعه دهندگان برای ایجاد وب سرویس‌های RESTful کمک می‌کنند. در سمت سرویس گیرنده، تمام چارچوب‌های جدید جاوا اسکریپت، مانند JQuery، Node.js، Angular و EmberJS، همه‌ی کتابخانه‌های استاندارد در API های خود ساخته شده‌اند که وب سرویس‌های RESTful را فراخوانی کرده و از داده‌های XML یا JSON استفاده می‌کنند. معایب معماری REST مزایای استفاده از REST با استفاده از ساختارهای HTTP همچنین محدودیت‌هایی را ایجاد می‌کند. بسیاری از محدودیت‌های HTTP نیز به نقص سبک معماری REST تبدیل می‌شوند. به عنوان مثال، HTTP اطلاعات مبتنی بر وضعیت را بین چرخه‌های درخواست - پاسخ ذخیره نمی‌کند، که بدین معنی است که برنامه‌های مبتنی بر REST باید بی‌ثمر باشند و تمام وظایف مدیریت وضعیت باید توسط خود سرویس گیرنده انجام شوند. به طور مشابه، از آن جا که HTTP هیچ مکانیزمی برای ارسال اعلان‌ها از سرور به سرویس گیرنده ندارد، پیاده سازی هر نوع سرویسی که سرور، کلاینت را بدون رای‌ گیری از جانب آن (client-side polling) و یا انواع مختلف قلاب وب (web hook) به روز رسانی کند سخت است. از دیدگاه پیاده سازی، یک مشکل رایج با REST این واقعیت است که توسعه دهندگان با معنای دقیق REST-based مخالفت می‌کنند. برخی از توسعه دهندگان نرم افزار به اشتباه هر چیزی را که مبتنی بر SOAP نیست، RESTful در نظر می‌گیرند. چیزی که سبب این تصور غلط رایج می‌شود این واقعیت است که REST یک سبک معماری است، بنابراین هیچ پیاده سازی مرجع یا استاندارد قطعی وجود ندارد که تأیید کند آیا یک طراحی خاص، RESTful است یا خیر. در نتیجه، بر سر اینکه آیا یک API داده شده مطابق با اصول مبتنی بر REST است یا خیر بحث وجود دارد. جایگزین‌هایی برای REST فناوری‌های جایگزین برای ایجاد سیستم‌های مبتنی بر SOA (معماری مبتنی بر سرویس، Service-oriented architecture) و یا ایجاد API برای فراخوانی سرویس‌های میکرو از راه دور شامل XML روی HTTP (معروف به XML-RPC)، همچنین CORBA و پروتکل SOAP (پروتکل دسترسی ساده به object) است. هر تکنولوژی مجموعه‌ای از مزایا و معایب خود را دارد، اما ویژگی مهیج REST که آن را شاخص می‌کند، این است که به جای اینکه از یک توسعه دهنده بخواهد با مجموعه‌ای از پروتکل‌های سفارشی کار کند یا یک فرمت داده‌ی خاص برای تبادل پیام بین یک سرویس دهنده و یک سرور داشته باشد، REST باور دارد که بهترین راه برای پیاده سازی یک سرویس وب مبتنی بر شبکه این است که به راحتی از ساختار اصلی پروتکل شبکه‌ی خود استفاده کند که در مورد اینترنت، HTTP است. این یک نکته مهم است، زیرا REST فقط برای اعمال به اینترنت در نظر گرفته نشده است؛ بلکه هدف آن است که اصول آن به تمام پروتکل‌ها از جمله WEBDAV، FTP و غیره اعمال شود. REST در مقابل SOAP دو سبک رقیب برای اجرای خدمات وب REST و SOAP است. تفاوت اساسی بین این دو، رویکرد فلسفی است که باید به فراخوانی از راه دور بپردازند.  REST یک رویکرد مبتنی بر منابع را برای تعاملات مبتنی بر وب اتخاذ می‌کند. با REST، شما یک منبع را بر روی سرور قرار می‌دهید و انتخاب می‌کنید که این منبع را به روزرسانی کنید، پاک کنید یا اطلاعاتی را در مورد آن دریافت کنید. در SOAP، کلاینت تصمیم نمی‌گیرد به طور مستقیم با یک منبع ارتباط برقرار کند، بلکه به جای آن یک سرویس را فراخوانی می‌کند و این سرویس دسترسی به اشیا و منابع مختلف پشت صحنه را کاهش میدهد. SOAP همچنین تعداد زیادی از چارچوبها و APIها را در بالای لایه‌ی پروتکل HTTP را ایجاد کرده است، از جمله زبان توصیف سرویس وب (Web Services Description Language, WSDL)، که ساختار داده‌هایی را که بین کلاینت و سرور رد و بدل می‌شوند، تعریف می‌کند. گاهی بهترین نتیجه با تعریف دقیق فرمت پیام حاصل می‌شود و یا میتوان از APIهای مرتبط با SOAP مانند WS-Eventing، WS-Notification و WS-Security بهره برد. در بعضی مواقع شرایطی پیش می‌آید که HTTP نمی‌تواند سطح کارایی را که یک برنامه ممکن است نیاز داشته باشد، فراهم کند. در این موارد، استفاده از SOAP ترجیح داده میشود. REST URIها و URLها اکثر مردم با شیوه‌ی عملکرد URLها (Uniform Resource Locator) و URIها (Uniform Resource Identifier) در وب آشنا هستند. رویکرد RESTful برای برنامههای کاربردی ادعا میکند که درخواست اطلاعات در مورد یک منبع باید به اندازه‌ی فراخوانی URL آن ساده باشد. به عنوان مثال، اگر یک کلاینت بخواهد یک سرویس وب را که تمام آزمونها را در TechTarget در دسترس قرار داده است، به URL مراجعه کند. URLای که به سرویس وب خواهد رسید بدین ترتیب است: www.techtarget.com/restfulapi/quizzes هنگام فراخوانی، سرویس وب ممکن است با رشته JSON زیر، لیست تمام آزمون‌های موجود را پاسخ دهد که یکی از آن‌ها درباره‌ی DevOps است: { "quizzes" : [ "Java", "DevOps", "IoT"] } برای دریافت آزمون DevOps، سرویس وب ممکن است با استفاده از URL زیر فراخوانی شود: www.techtarget.com/restfulapi/quizzes/DevOps     با فراخوانی این URL یک رشته‌ی JSON که لیستی از سوالات در آزمون DevOps را فهرست کرده است، بازگردانده می‌شود. برای دریافت یک سوال مشخص از آزمون، شماره‌ی سوال به URL اضافه خواهد شد. بنابراین، برای دریافت سوال سوم در آزمون، URL RESTful زیر استفاده می‌شود: www.techtarget.com/restfulapi/quizzes/DevOps/3 فراخوانی این URL ممکن است یک رشته‌ی JSON مانند زیر را برگرداند: { "Question" : {"query":"What is your DevOps role?", "optionA":"Dev", "optionB":"Ops"} } همان طور که می‌بینید، URLهای REST در این مثال به گونهای منطقی و معنی دار هستند که منابع دقیق درخواست شده را مشخص می‌کنند. فرمتهای داده‌ی JSON و XML REST مثال بالا نشان میدهد JSON به عنوان فرمت تبادل اطلاعات برای تعامل RESTful استفاده می‌شود. رایج ترین فرمت تبادل دادهها JSON و XML هستند و بسیاری از خدمات وب RESTful میتوانند تا زمانی که کلاینت بتواند تعامل را در XML یا JSON انجام دهد، از هر دو فرمت به طور متناوب استفاده کنند. توجه داشته باشید با وجود اینکه JSON و XML فرمتهای رایج تبادل داده هستند، خود REST هیچگونه محدودیتی در مورد آنچه که فرمت باید باشد قرار نمیدهد. در واقع، برخی از خدمات وب RESTful به منظور بهره وری، دادههای باینری را مبادله می‌کنند. این یکی دیگر از مزایای کار با خدمات وب مبتنی بر REST است، زیرا معمار نرم افزار از نظر نحوه‌ی اجرای بهترین خدمات، از آزادی زیادی برخوردار است. REST و رویه‌های HTTP مثال بالا فقط دسترسی به داده‌ها را بررسی می‌کند. عملیات پیش فرض HTTP، رویه‌ی GET است که در هنگام دریافت داده‌ها از سرور مورد استفاده قرار می‌گیرد. با این حال، HTTP تعدادی از رویه‌های دیگر از جمله PUT، POST و DELETE را تعریف میکند.REST ادعا می‌کند که برای حذف داده‌ای در سرور، به سادگی از URL برای دسترسی به منبع استفاده کنید و روش DELETE از HTTP را اعمال کنید. برای ذخیره‌ی داده‌ها در سرور، یک URL و رویه‌ی PUT استفاده میشود. همچنین برای عملیاتی که فراتر از ذخیره سازی، خواندن و یا حذف اطلاعات هستند، می توان از روش POST استفاده کرد. تاریخچه‌ی REST REST برای اولین بار توسط دانشمند علم کامپیوتر Roy Fielding در طول انجام پایان‌ نامه‌ی تحصیلات دوره‌ی دکترای وی در دانشگاه کالیفرنیا با عنوان «سبک‌های معماری و طراحی معماری نرم افزار مبتنی بر شبکه» ابداع شد. فصل 5 پایان نامه ادعاهای Fielding در مورد چگونگی بهینه سازی معماری سیستمهای توزیعی hypermedia را توصیف می‌کند. وی تعدادی از شرایط مرزی را توصیف می‌کند که سیستم‌های مبتنی بر REST باید چگونه رفتار کنند. این شرایط به عنوان محدودیت‌های REST یاد می‌شوند. چهار مورد از محدودیت‌های کلیدی در زیر شرح داده شده اند: استفاده از رابط کاربری یکنواخت (Uniform Interface, UI): همانطور که قبلا ذکر شد، منابع در سیستم‌های مبتنی بر REST باید از طریق یک URL قابل شناسایی باشند و تنها با استفاده از روشهایی مانند DELETE، PUT و GET در HTTP با منبع در تعامل باشند. سیستم‌های مبتنی بر رابطه‌ی کلاینت، سروری: در سیستم‌های مبتنی بر REST، باید تعریف مشخصی از کلاینت و سرور داشته باشیم. UI و نگرانی‌های حاصل از درخواست‌ها، در حوزه‌ی کلاینت هستند. در همین حال، دسترسی به داده‌ها، مدیریت بار کاری و امنیت، در دامنه‌ی سرور است. این جداسازی‌ها اتصال بین کلاینت و سرور را برقرار می‌کند و هر کدام میتوانند مستقل از دیگری توسعه یابند. عملیات مجزا (Stateless operations): تمام عملیات بین کلاینت و سرور باید مجزا و مستقل از هم باشند و هر مدیریت حالتی (State) که مورد نیاز است نه بر روی سرور، بلکه باید بر روی کلاینت پیاده سازی شود. کَش کردن منابع RESTful: توانایی کَش کردن منابع بین فراخوانی‌های انجام شده توسط کلاینت نسبت به کاهش تاخیر و بهبود عملکرد اولویت بالاتری دارد. علاوه بر این تمامی منابع باید اجازه ی کَش کردن را داشته باشند، مگر اینکه یک نشانه‌ی صریح برای عدم امکان انجام این عمل یافت شود. توسعه‌ی APIهای REST‌ در جاوا در راستای محبوبیت رو به رشد سیستمهای مبتنی بر REST، تعدادی از چارچوبها برای کمک به توسعه دهندگان در ایجاد خدمات وب RESTful به وجود آمده اند. برخی از چارچوب‌های منبع باز محبوب برای ایجاد سرویسهای وب مبتنی بر جاوا عبارتند از Apache CXF، Jersey، Restlet، Apache Wink، Spring Data و JBoss' RESTeasy. رویکرد کلی هر یک از این چارچوبها این است که به توسعه دهندگان کمک کنند تا خدمات وب RESTful خود را با استفاده از الگوهای معنایی جاوا که با آن آشنا هستند، از جمله Java Platform (نسخه سازمانی)، Servlet API بسازند، در عین حال که کلاس‌های از پیش آماده و روش‌هایی به آن‌ها ارائه‌ می‌شوند تا با شروط اساسی REST بیشترین مطابقت را داشته باشند.   پی‌نوشت: مطلبی تحت عنوان فریم ورک REST‌ در زبان سی پلاس پلاس نیز به طور مجزا به این مقاله اضافه خواهد شد. 
 

فرایند UX: این فرایند چیست و چرا مهم است؟

در این مقاله، ما یک فرایند طراحی UX و همچنین ترتیبی را که در آن مراحل خاص این فرایند باید انجام شود، تعریف می‌کنیم و خواهیم دید که چه روش‌هایی می‌تواند توسط طراحان UX در هر فاز استفاده شود. فرایند UX چگونه فرایندی است؟ پاسخ این سوال به برخی مسائل بستگی دارد. فرایند طراحی UX چیزی است که تمام فعالان حوزه‌ی طراحی آن را انجام می‌دهند البته هر کسی به شیوه‌ی متفاوت! چراکه فرایند UX به شدت به خود پروژه بستگی دارد. پروژه‌های مختلف نیاز به رویکرد‌های متفاوت دارند؛ رویکرد یک وبسایت شرکتی متفاوت از شیوه‌ی طراحی یک چت‌ روم است. علاوه‌بر برخی شیوه‌ها (مانند تحقیق محصول قبل از آماده شدن نمونه‌ی اولیه) که طراحان UX برای هر پروژه دنبال می‌کنند، اصولی نیز در هر بخش از این فرایند وجود دارد که باید به صورت سفارشی برای هر پروژه به طور خاص طراحی شوند.  مرور کلی بر فرایند  UX هر فرایند UX باید شامل ۵ مرحله‌ی کلیدی زیر باشد: ۱. تعریف محصول  (Product Definition) یکی از مهم‌ترین مراحل طراحی UX در واقع قبل از آغاز طراحی انجام می‌شود. قبل از این‌ که بتوانید یک محصول بسازید، باید زمینه را برای وجودش درک کنید. مرحله‌ی تعریف محصول، زمینه‌ی موفقیت آن را مهیا می‌کند. در این مرحله، طراحان UX محصول را در بالاترین سطح انتزاع (اساسا مفهوم محصول) با ذینفعان به اشتراک می‌گذارند. این مرحله معمولا شامل موارد زیر است: مصاحبه با ذینفعان: مصاحبه با ذینفعان کلیدی در یک پروژه برای جمع آوری اطلاعات در مورد اهداف آن انجام می‌شود. تعریف اهداف و ارزشهای محصولی که می‌خواهید ایجاد کنید، یک عامل کلیدی برای فرایند هدایت یافته است. ایجاد گزاره‌ی ارزش: گزاره‌ی ارزش، جنبه‌های کلیدی محصول را مشخص می‌کند؛ چیست، برای چه کسی طراحی شده‌است، چه زمانی و چه جایی از آن استفاده خواهد شد. گزاره ارزش به تیم و ذینفعان کمک می‌کند که در مورد محصول توافق حاصل شود. طرح مفهومی: ایجاد یک مدل اولیه از آنچه که تیم به دنبال ساخت آن است. جلسه ی kick-off پروژه: این نشست همه‌ی عاملان و بازیکنان کلیدی را جهت تعیین انتظارات مناسب برای تیم و سهامداران گرد هم می‌آورد. نتایج این جلسه شامل طرح سطح بالایی از هدف محصول، افراد دخیل در طراحی و توسعه‌ی محصول، چگونگی مشارکت و انتظارات ذینفعان (مانند KPI و چگونگی اندازه گیری موفقیت محصول) است. ۲. تحقیقات محصول (Product Research) هنگامی که ایده‌ی محصول تعریف شد، تحقیقات محصول (که به طور طبیعی شامل تحقیقات کاربر و بازار است) نیمه‌ی دیگر پایه و اساس کار را برای طراحی عالی فراهم می‌کند. تحقیقات خوب، اطلاعات مفید و ارزنده‌ای جهت آینده ی هر چه بهتر محصول شما می‌دهد و صرفه جویی زیادی در استفاده از منابع مالی و زمانی می‌شود. فاز تحقیق محصول در بین بیش‌تر پروژه‌ها متغیر است و به عوامل مختلفی از جمله پیچیدگی محصول، زمان بندی، منابع موجود و بسیاری از موارد  دیگر بستگی دارد. این مرحله می‌تواند شامل موارد زیر باشد: مصاحبه‌های عمیق فردی (Individual in-depth Interviews, IDI) : تجربه‌ی تولید یک محصول عالی با درک درست از کاربران میسر می‌شود. طراحان UX نه تنها می‌خواهند بدانند که کاربران چه کسانی هستند، بلکه می‌خواهند عمیق‌تر به نیازها، ترس‌ها، انگیزه‌ها و رفتار آن‌ها واقف باشند.. تحقیقات رقابتی: تجزیه و تحلیل جامع محصولات رقیب، ویژگی‌های موجود در آن‌ها را با روش قابل مقایسه‌ای در ذهن طراحان ترسیم می‌کند. تحقیق به طراحان UX کمک می‌کند تا استانداردهای صنعت را درک کنند و فرصت‌های محصول را در حوزه‌ی مشخصی شناسایی کنند. ۳.‌ آنالیز هدف از مرحله‌ی تحلیل این است که دیدگاه‌های حاصل از اطلاعات جمع آوری شده در طول مرحله‌ی تحقیق را به دست آوریم. نگهداری، سازمان دهی و نتیجه گیری از آنچه که کاربران می‌خواهند، فکر می‌کنند و  نیاز دارند می‌تواند به طراحان UX کمک کند تا شروع  به درک "چرایی" این سوال‌ها کنند. در طی این مرحله، طراحان قرارداد می‌کنند که مهم‌ترین فرض‌هایی که انجام شده‌اند معتبر هستند. این مرحله معمولا شامل موارد زیر است: ایجاد شخصیت‌های فرضی: این کاراکترهای تخیلی برای نشان دادن انواع مختلف کاربرانی هستند که می‌توانند از یک محصول به همان شیوه‌ی مشابه استفاده کنند. هدف از این شخصیت‌های فرضی ایجاد بازخوردهای قابل اعتماد و واقع بینانه از بخش‌های اصلی مخاطبان برای مرجع است.     ایجاد نقشه‌های تجربه (Experience maps) : این نقشه یک ابزار طراحی مهم برای درک تعاملات محصول یا سرویس از دیدگاه کاربران است. نقشه‌ی تجربه، اساسا یک نمایش بصری است که جریان کاربری را در یک محصول یا سرویس نشان می‌دهد. یک نقشه‌ی تجربه‌ی پایه‌ای مسیر واحدی (یک کاربر، یک هدف، یک سناریو) را دنبال می‌کند حتی زمانی که محصول یا سرویس اجازه‌ی تغییرات مسیر را می‌دهد.  ۴. طراحی هنگامی که انتظارات کاربر از محصول ایجاد شد (که اهداف آن‌ها چیست و چگونه می‌خواهند با محصول کار کنند)، طراحان UX به سمت مرحله‌ی طراحی حرکت می‌کنند. فاز طراحی موثر، همکاری زیاد و تکرار شونده‌ای می‌طلبد بدین صورت که نیاز است تا از تمامی عاملان و تیم درگیر در توسعه‌ی محصول ورودی بگیریم و به صورت عقب گرد به ابتدا برگردیم تا ایده‌ها و مفروضات خود را اعتبار سنجی کنیم. مرحله‌ی طراحی شامل موارد زیر است: طرح بندی (Sketching) : طرح بندی ساده‌ترین راه برای تجسم ایده‌های ما است. رسم دستی نیز سریع‌ترین راه برای تجسم یک مفهوم است. طرح بندی به طراح اجازه می‌دهد تا طیف گسترده‌ای از راه حل‌های طراحی را قبل از تصمیم گیری نهایی تصور کند.   ایجاد Wireframeها: وایرفریم راهنمای بصری است که نشان دهنده‌ی ساختار صفحه (سلسله مراتب و عناصر کلیدی) است. این کار  به عنوان ستون فقرات محصول عمل می‌کند و طراحان اغلب از آن‌ها به عنوان اسکلت برای مدل سازی استفاده می‌کنند.   ایجاد نمونه‌های اولیه: همان طور که گفتیم وایرفریم‌ها بیش‌تر مربوط به ساختار و سلسله مراتب بصری هستند و نمونه‌های اولیه نتیجه‌ای از تجربه‌ی متقابل حس و نمایش بصری (Feel and Look) به صورت همزمان هستند. نمونه‌ی اولیه در واقع شبیه سازی محصول است و معمولا با استفاده از وایرفریم‌های قابل کلیک (Clickable Wireframe) پیاده سازی می‌شود.     ایجاد مشخصات طراحی: مشخصات طراحی معمولا شامل نمودار جریان کاربری (User Flow Diagram) و نمودار جریان کار (Task Flow Diagram) است که ویژگی‌های عملکردی و الزامات سبک محصول را مشخص می‌کند. مشخصات طراحی، فرایندها و ابزارهای مورد نیاز گرافیکی را برای ایجاد یک محصول قابل اجرای موفق توصیف می‌کند. ۵. اعتبار سنجی (تست) مرحله‌ی اعتبارسنجی معمولا زمانی شروع می‌شود که طراحی با جزییات و وضوح بالایی انجام شده باشد و محصول توسط سهامداران و کاربران نهایی طی مجموعه ای از جلسات آزمون کاربر تایید شده باشد. همانند مرحله‌ی تحقیق محصول، این مرحله نیز بین پروژه‌های مختلف متغیر است. مرحله‌ی اعتبار سنجی می‌تواند شامل موارد زیر باشد: اصطلاح «Eat your own dogfood»: این اصطلاح زمانی به کار می‌رود که تیم طراحی کار را تا زمان رسیدن به یک محصول قابل استفاده تکرار کند و آن کمپانی محصولش را آماده اعلام کند. آزمایش محصول با تیم یک روش خوب کم هزینه برای اعتبارسنجی به حساب می‌رود. جلسات تست کاربر: جلسات تست کاربر، به عنوان اعتبار طراحی، مانند انجام آزمایش با کاربران واقعی عمل می‌کند. جلسات آزمون کاربر روش‌های زیادی دارد. برخی از محبوب‌ترین این تست‌ها شامل تست‌های قابلیت استفاده، گروه‌های تمرکز (Focus Groups)، آزمایش بتا، تست A / B و نظرسنجی‌ها است. ایجاد خاطرات کاربری: خاطرات کاربری در جمع‌ آوری اطلاعات از دنیای واقعی کاربران بسیار مفید هستند. با استفاده از Google Docs، طراحان UX می‌توانند یک قالب ساده ایجاد کرده و پس از آن سوالات پایان بازی ( Open-ended) مانند موارد زیر بپرسند: هنگام استفاده از محصول کجا بودید؟ چه کارهابی انتظار داشتید که انجام دهید؟ آیا موردی باعث ناراحتی شما شده است؟ آنالیز معیار‌ها: تجزیه و تحلیل اعداد ارائه شده توسط یک ابزار تحلیلی در مورد چگونگی تعامل کاربر با محصول شما است از جمله کلیک‌ها، زمان ناوبری (Navigation)، نمایش‌ها، جستجو و غیره. همچنین آنالیز این معیارها می‌تواند رفتار غیر منتظره‌ای را کشف کند که در آزمون کاربر به صورت صریح یافت نشده است. کار بر روی بازخوردهای دریافت شده از کاربران: اطلاعات بازخوردی از قبیل اطلاعات سیستمSupport Ticket، گزارش‌ باگ‌ها و دیگر تحلیل‌ها می‌توانند به رفع مشکلات محصول کمک شایانی کنند. چگونه فرایند طراحی UX را بهبود بخشیم؟ تا این جا متوجه شدیم که چگونه هر مرحله به یکدیگر متصل است. حال برخی نکات مفید برای بهبود فرایند طراحی UX را ذکر می‌کنیم: همپوشانی بین فازها و تکرارها (Iterations) را در نظر بگیرید. مهم است که بدانیم طراحی UX یک فرایند خطی نیست. فازهای فرایند UX اغلب دارای همپوشانی قابل ملاحظه‌ای هستند. چنانچه که طراح UX اطلاعات بیش‌تری درباره‌ی مشکل حل شده، کاربران و جزییات پروژه (به ویژه محدودیت‌ها) کسب کند، ممکن است لازم باشد بعضی از تحقیقات انجام شده را بازنگری کرده یا آزمایش‌های جدیدی را طراحی کند. اهمیت ارتباطات ارتباطات مهارت کلیدی طراحی UX است. همان طور که طراحی فوق العاده به خودی خود یک مسئله‌ی بزرگ است، وجود مهارت ارتباطات قوی نیز به همان اندازه مهم است، زیرا حتی بهترین ایده‌ها و راهکارها در صورتی که مورد قبول تیم یا سهامداران نباشند شکست خواهند خورد. به همین دلیل بهترین طراحان UX دارای مهارت ارتباطات عالی هستند. فرایند‌های متناسب با پروژه‌ها طراحان UX باید با هر پروژه انعطاف پذیر باشند و فرایند مورد استفاده‌ی کسب و کار و عملکردی باید متناسب با نیازهای خاص پروژه باشد. این فرایند باید به توانایی‌های کسب و کار متکی بوده و مشتریان به طور کلی در آن موثر باشند. نتیجه‌گیری وقتی که وارد فرایند طراحی UX می‌شویم، همه‌ی راه حل‌های یافت شده الزاما مناسب پروژه نیستند. ساده یا پیچیده بودن پروژه فرقی در هدف فرایند طراحی که ایجاد یک محصول عالی برای کاربران است، ندارد. بنابراین عاقلانه است که از بهترین گزینه برای پروژه‌ی خود بهره ببریم و بقیه‌ی موارد را نادیده بگیریم تا بدین ترتیب فرایند طراحی خود را تا رسیدن به یک محصول موفق تکامل بخشیم.

الهه انصاری

الهه انصاری

 

همه چیز درباره‌ی API

«بخش اول» API مخفف Application Programming Interface است. API یک واسط نرم افزاری است که به دو برنامه اجازه می‌دهد تا با یک دیگر صحبت کنند. هر بار که از برنامه‌ای مانند فیس بوک استفاده می‌کنید، یا یک پیام فوری ارسال می‌کنید، و یا آب و هوا را بر روی تلفن خود بررسی می‌کنید، در واقع از یک API‌کمک می‌گیرید. یک نمونه از کاربرد‌های API چیست؟ هنگامی که از یک برنامه‌ی کاربردی بر روی تلفن همراه خود استفاده می‌کنید، برنامه به اینترنت متصل می‌شود و داده‌ها را به یک سرور ارسال می‌کند. سپس سرور آن اطلاعات را بازیابی و تفسیر کرده، اقدامات لازم را انجام می‌دهد و آن را به تلفن شما ارسال می‌کند. پس از آن نرم افزار این دادهها را تفسیر می‌کند و اطلاعاتی را که می‌خواهید در یک روش قابل خواندن برای شما ارائه می‌دهد. تمام این اتفاقات توسط API انجام می‌گیرند. با یک مثال آشناتر با ما همراه باشید. تصور کنید که در یک رستوران پشت میزی با یک امنو از غذای مختلف نشسته‌اید. آشپزخانه بخشی از "سیستم" است که سفارش شما را تهیه می‌کند. موضوع مهم در این سناریو، پیوند حیاتی‌ای است که سفارش را به آشپرخانه ارسال کرده و سپس غذا را به میز شما تحویل می‌دهد. دقیقا همین جا است که پیشخدمت یا API وارد میشود که درخواست یا سفارش شما را می‌گیرد و به آشپزخانه می‌گوید سیستم باید چه کاری انجام دهد. سپس پیشخدمت پاسخ را به شما می‌فرستد؛ در این مورد، این غذا است. یک مثال دیگر از API در زندگی واقعی روند جستجوی پروازهای آنلاین آشنا است. درست مانند مثال رستوران، گزینه‌های گوناگونی برای انتخاب، از جمله شهرهای مختلف، تاریخ عزیمت و بازگشت و غیره وجود دارد. برای مثال شما قصد دارید که پروازی در یک وب سایت هواپیمایی رزرو کنید. بدین جهت یک شهر مبداء و تاریخ عزیمت، یک شهر مقصد و تاریخ بازگشت، کلاس کابین و همچنین سایر متغیرها را انتخاب می‌کنید. سپس برای رزرو پرواز خود، با وب سایت هواپیمایی ارتباط برقرار می‌کنید تا بتوانید به پایگاه داده خود دسترسی پیدا کنید و ببینید کدام صندلی در آن تاریخ وجود دارد و هزینه‌های ممکن چگونه است. در این مثال خدمات مسافرتی، با API هواپیمایی ارتباط برقرار می‌کند. API رابط کاربری است که می‌تواند توسط سرویس مسافرتی آنلاین درخواست شود تا اطلاعات پایگاه داده‌های هواپیمایی برای رزرو صندلیها و غیره دریافت شود. API همچنین یک لایه‌ی امنیتی برای ما فراهم می‌کند داده‌های تلفن شما هرگز به طور کامل در معرض سرور نیستند، و همچنین سرور هرگز به طور کامل در معرض تماس تلفن با شما نیست. در عوض، هر یک با بسته‌های کوچک داده ارتباط برقرار می‌کنند و تنها مواردی را که ضروری است نظارت می‌کنند. API ها چنان ارزشمند هستند که بخش زیادی از درآمد کسب و کار بسیاری را تشکیل می‌دهند. شرکتهای بزرگ مانند گوگل، eBay، Salesforce، Amazon و Expedia تنها تعدادی از شرکت‌هایی هستند که از API های خود پول میگیرند. این «بازار API» به قدری قوی است که می‌توان از آن به عنوان «اقتصاد API» یاد کرد. API مدرن در طول سالیان متمادی از API‌به عنوان یک رابط عمومی به برنامه یاد می‌شد. اخیرا علاوه بر این مفهموم، ویژگی‌های دیگری نیز به API تحت API مدرن اضافه شده است که بسیار ارزشمند و حایز اهمیت هستند. در زیر به برخی از این ویژگی‌ها اشاره می‌کنیم. APIهای مدرن به استانداردهایی چون HTTP و REST که توسعه دهنده پسند و به راحتی قابل دسترسی هستند، پایبند می‌باشند. آن‌ها بیشتر شبیه محصولات هستند تا کد که برای مصرف مخاطبان خاصی طراحی و مستند شده اند (به عنوان مثال، توسعه دهندگان تلفن همراه) و کاربران میتوانند انتظارات خاصی از نگهداری و چرخه زندگی آن‌ها داشته باشند. از آن جایی که بسیار استانداردتر هستند، نظم و انضباط بیشتری برای امنیت دارند و همچنین نظارت و مدیریت دقیق‌تری برای عملکرد دارند. به عنوان قطعه‌ای از نرم افزار تولید شده، API مدرن نیز دارای چرخه عمر توسعه‌ی نرم افزار (SDLC) شامل طراحی، آزمایش، ساخت، مدیریت و نسخه سازی است.  در بخش‌های بعدی بیشتر در رابطه با API‌ها صحبت خواهیم کرد، منتظر باشید.

الهه انصاری

الهه انصاری

 

اصول طراحی: تعادل

«بخش دوم» در پست ۷ گام برای تبدیل شدن به یک طراح موفق UI/UX به طور خلاصه به اصول طراحی رابطه‌ی کاربری اشاره کردیم. در این بخش قصد داریم در مورد اصل تعادل (Balance) صحبت کنیم. هر طرح با یک صفحه‌ی خالی یا فضای خالی آغاز میشود. هنگامی که یک عنصر اضافه میکنیم، قرار دادن آن میتواند تعیین کند که طراحی تا چه حد موفق خواهد بود. طراحی موثر ارتباطات و علاقه‌ی بیننده را بنا میکند؛ خواه این طراحی به صورت چاپ شده و یا به صورت صفحات وب باشد. در یک طرح وب معمولی، طراح باید لوگو، متن، عکس یا تصویر را جایگزین کند. با یک تلاش آگاهانه برای ایجاد ارتباط بین این عناصر می‌توان یک طراحی چشم نواز به وجود آورد. تعادل در طراحی بسیار شبیه به تعادل در زندگی است. نمونه ای که اغلب از تعادل در دنیای واقعی یاد می‌شود، الاکنگ است. وقتی فقط یک نفر روی آن نشسته است، تجربه‌ی بسیار سرگرم کننده‌ای نیست. تعادل زمانی حاصل میشود که دو نفر از افراد با وزن مشابه در هر طرف قرار گیرند. نمونه‌ای دیگر از تعادل را هنگامی می‌توان به دست آورد که یکی از افراد سنگین در یک طرف و دو نفر سبکتر در طرف دیگر نشسته ‍اند. اگر یک فرد سنگینتر به مرکز الاکلنگ نزدیکتر شود تعادل میتواند حاصل شود، در حالی که یک فرد سبکتر در انتهای طرف دیگر نشسته است. ما به عنوان انسان از لحاظ جسمی یک دست و پای در هر طرف ستون فقرات و سر داریم و قادر به ایستادن و حرکت با وجود اندازه و وزنهای مختلف هستیم. در طراحی سعی میکنیم به توازنی میان عناصر دست یابیم، زیرا در چشم نواز است. اما تعادل همیشه از طریق تقارن بدست نمیآید. نگاهی به جعبههای زیر کنید. خط سفید در جعبه‌ی 1 و 2 به طور متقارن متعادل است در حالی که در جعبه‌ی 3 و 4 خط به طور نامتقارن متعادل است. تقارن تعادلِ متقارن تعادلِ تصویر آینه است. اگر یک خط را از طریق مرکز صفحه بکشید، عناصر در یک طرف خط در سمت دیگر نیز به صورت آینه دیده میشوند. ما میتوانیم آن را با قرار دادن عناصر به طور نسبتا مساوی در طراحی دست یابیم. تقارن در طبیعت یک مثال معمول که در وب اتفاق میافتد، جایی است که بلوک های متن در سطر یا ستون به صورت آینه نگاشته می‌شوند. همچنین میتواند با استفاده از رنگ و تایپوگرافی به دست آید. برای مثال در وب سایت Mobile Web Book تصویر تلفن همراه این صفحه به دو بخش تقسیم می‌شود که با بلوکهای متن در هر طرف به صورت متعادل در مقابل هم قرار گرفته اند. در پوستر فیلم «The Day I Became A Woman»، بلوک متن سفید بزرگ در گوشه‌ی سمت راست بالا در گوشه‌ی پایین سمت چپ هم از لحاظ رنگ و هم از نظر شکل متقارن هستند. سایت پر طرفدار Florida Flourish تقریبا میتواند به نصف مرکز برسد که یک حس بسیار قوی از تعادلِ متقارن دارد. پوستر Havco که در زیر آورده شده است، قسمت چپ و راست پوستر با استفاده از اشکال مشابه و قطعات بدن متعادل است . متن قرمز در بالا و پایین عنوان در رنگ و اندازه‌ی متعادل قرار دارد. عدم تقارن طرح بندیهای متعادلِ نامتقارن دارای عناصری هستند که در یک خط مرکزی به صورت آینه‌ای جدا نمی‌شوند. این طرح بندی‌ها میتوانند طراحی را دشوارتر کنند، اما سبب جذابیت برای بیننده می‌شوند. میتوانیم با ایجاد چندین آیتم کوچک در یک طرف و یک آیتم بزرگ در طرف دیگر یک طرح متضاد نامتقارن ایجاد کنیم. اگر یک آیتم تیره در یک طرف دارید، میتوانید چندین آیتم روشن رنگی را در طرف دیگر قرار دهید. یک طراحی متعادلِ نامتقارن میتواند تنش ایجاد کند و بیننده را جذب کند. وب سایت MattWeb یک گرافیک بزرگ دارد که سمت چپ صفحه‌ی اصلی را پر کرده است. حس توازن نامتقارن در اینجا با استفاده از رنگهای تطبیق و یک فونت بدون سرصفحه مطابق با مارپیچ‌ها به دست می‌آید. سایت Dann Whitaker دارای چندین عنصر است که به صورت متقارن نیستند، اما از نظر رنگ، بافت و محتوا یکدیگر را متعادل میکنند.  عدم تعادل (Off-Balance) خوب، پس اگر تمام کارهای طراحی شما در تعادل باشند، خسته کننده میشود. اگر قوانین را میدانید، میتوانید آن‌ها را قطع کنید، و عدم تعادل میتواند جنبش و حرکت را به بیننده منتقل کند. البته این مسئله میتواند بیننده را به کمی ناراحت و آشفته کند. طراحی غیر متعادل میتواند مخاطب را به فکر کردن وادار کند. فقط اجازه ندهید که به طور تصادفی این اتفاق بیفتد. در مقاله‌ی آینده نگاهی به اصل مجاورت (Proximity) میکنیم. در عین حال توصیه می‌شود که در وب سایت‌های مختلف تعادل قوی، تقارن و عدم تقارن را بررسی کنید.

الهه انصاری

الهه انصاری

 

اصول طراحی: رنگ

از سری مقالات اصول طراحی رابط کاربری با موضوع مهم و کلیدی رنگ در خدمت شما هستیم. در این مقاله، نگاهی به نحوه‌ی استفاده از طرح‌های رنگی در ایجاد بازخورد مطلوب برای طراحی شما خواهیم داشت. رنگ بخش جدایی ناپذیر از زندگی ما است. طبیعت از رنگ برای هشدار دادن به شکارچیان بالقوه، جذب گرده افشان‌ها، جذب همسران و نشان دادن میوه‌ی آماده برای خوردن استفاده می‌کند. هر کسی که ماشینی را در یک شهر رانندگی می‌کند، قوانین ترافیکی را که توسط قرمز، سبز و نارنجی تعریف شده است دنبال می‌کند. همین رنگ ها کافی هستند و نیازی به نوشته‌ی متنی نیست. در تبلیغات و طراحی، رنگ برای جلب توجه و تحریک علاقه استفاده می‌شود که گرفتن همین نتیجه از طریق روش‌های دیگر سخت‌تر است. طی تاریخ نیز از رنگ برای نشان دادن موقعیت اجتماعی و اقتصادی استفاده شده است. به عنوان مثال، اشراف و افراد سلطنتی بیشتر از رنگ بنفش بهره می‌بردند. رنگ در بسیاری از کشورها یک منبع مهم نمادگرایی است. همان طور که در شکل بالا می‌بینیم یک حالت غیر طبیعی از تصویر حس می‌شود که بخاطر استفاده‌ی رنگ غیر معمول در علامت ایست است. پس چگونه از رنگ‌ها در طراحی خود بهترین استفاده را ببریم؟ هیچ قاعده‌ی سفت و سختی وجود ندارد اما چرخ رنگ نقطه‌ی مناسبی برای شروع یادگیری نحو‌ه‌ی استفاده‌ی صحیح از رنگ‌ها است. طیف رنگ‌های گرم و سرد سه رنگ اصلی اولیه قرمز، آبی و زرد هستند. هنگامی که شما این‌ها را ترکیب می‌کنید، سه رنگ ثانویه حاصل می‌شوند: نارنجی، بنفش و سبز. اگر هر رنگ ثانویه را با رنگ اصلی همسایه‌ی خود ترکیب کنید، سومین دسته از رنگ‌ها را ایجاد می‌کنید: (زرد، نارنجی)، (زرد، سبز)، (آبی، سبز)، (بنفش، آبی)، (قرمز، بنفش)، (قرمز، نارنجی). چرخ رنگ بدین روش بدست می‌آید. تصویر بالا نشان می‌دهد که رنگ‌ها به ترتیب طیف مرتب شده‌اند: قرمز، نارنجی، زرد، سبز، آبی و بنفش (در خلاف جهت عقربه‌های ساعت). قرمز گرمترین و آبی سردترین رنگ در این چرخ است. رنگ‌ های گرم در قسمت طیف‌های قرمز، نارنجی و زرد ظاهر می‌شوند و رنگ‌های سرد در طرف مقابل چرخ رنگ ظاهر می‌شوند. طرح‌های رنگی تک رنگ (monochromatic) طرح رنگی تک رنگ از تغییرات در نور و اشباع یک رنگ استفاده می‌کند. این طرح رنگ علاوه‌ بر تمیز و ظریف بودن یک اثر آرامش بخشی ایجاد می‌کند. رنگ اولیه می‌تواند با رنگ‌های خنثی مانند سیاه، سفید یا خاکستری یکپارچه شود. ناکامی در طرح‌های تک رنگ این است که گاهی اوقات می‌تواند تضاد داشته باشد و به نظر می‌رسد جنب و جوش کمتری از سایر طرح‌های رنگ داشته باشد. طرح تک رنگ با پایه‌ی آبی طرح تک رنگ با پایه‌ی قرمز طرح‌های رنگی مشابه (Analogous Color Schemes) طرح رنگی مشابه با رنگ‌هایی که در چرخ رنگی مجاور هستند، استفاده می‌شود. یک رنگ به عنوان رنگ غالب تنظیم شده است و رنگ دیگر وظیفه‌ی غنی سازی را دارد. ضعف این مورد مانند طرح قبل این است که گاهی اوقات ممکن است حالت عدم تضاد به وجود بیاید. طرح رنگی مشابه با پایه‌ی آبی طرح رنگی مکمل (Complimentary Color Scheme) طرح رنگ مکمل یا متقارن از دو رنگ ساخته شده است که در چرخ رنگ مقابل یکدیگر قرار دارند. این طرح جهت ایجاد تضاد قوی و برای جلب توجه بسیار موفق است. طرح رنگی مکمل با پایه‌ی سبز روشن طرح مکمل تقسیم شده (Split Complementary Scheme) طرح مکمل تقسیم نوعی از طرح مکمل استاندارد است. این طرح از اجتماع یک رنگ بر روی چرخ و دو رنگ مجاور آن تشکیل می‌شود. مزیت این طرح بیش از یک طرح مجرب این است که میتواند کمی پیچیدهتر باشد در حالی که هنوز هم یک تضاد تصویری قوی وجود دارد. در تصاویر زیر نمونه‌ای از این مورد می‌بینیم. طرح‌های رنگ سه‌گانه این طرح از سه رنگ به طور یکنواخت در اطراف چرخ رنگ استفاده می‌کند. این روش برای ایجاد تعادل، غنی سازی و تضاد بسیار مناسب است؛ اگرچه تضاد در این طرح به اندازه‌ی طرح مکمل مشهود نیست. طرح سه‌گانه‌ با پایه‌ی آبی نکاتی برای استفاده از این طرح‌های رنگی  یک رنگ را انتخاب کنید که بیشتر از رنگ‌های دیگر استفاده می‌شود. اگر سعی می‌کنید از مقادیر برابر هر رنگ استفاده کنید، یک محصول وحشتناک دریافت خواهید کرد. ابتدا در مورد رنگ اصلی یا پایه‌ی خود تصمیم بگیرید و سپس از رنگ‌های دیگر برای جذب علاقه استفاده کنید. سایت The Pond با استفاده از یک خاکستری با پایه‌ی آبی تیره با متن خردلی طراحی شده است که بسیار دلنشین است. اگر رنگ‌ها خیلی قاطی هم شده باشند، میزان استفاده‌ی خود را از رنگ‌ها کاهش دهید. برای ایجاد طرح‌های رنگی چندین ابزار آنلاین وجود دارد، Kuler یکی از ابزار‌های پر طرفدار است. این ابزار امکان بازی با چرخ رنگی را به شما می‌دهد و می‌توانید طرح‌های رنگی مورد نظر خود را با یک کلیک انتخاب کنید. انواع تناژهای مختلف رنگ سیاه و خاکستری می‌توانند در تمام طرح‌های رنگی مذکور استفاده شوند. این رنگ‌ها در واقع به عنوان رنگ‌های خنثی استفاده می‌شوند که با هر رنگ دیگری سازگاری دارند. تمام رنگ‌ها تحت تاثیر رنگ‌های قرار گرفته در اطراف آن‌ها هستند. نماد زیر همان سایه‌‌ی قرمز در سمت چپ و راست است، اما رنگ پس زمینه تغییر چشمگیری می‌دهد. طرح رنگی در سمت چپ چشم را اذیت می‌کند، در حالی که در تصویر سمت راست، رنگ‌ها به خوبی با یکدیگر همخوانی دارند و احساس بیننده را برانگیخته می‌کنند.  الهام از طبیعت اگر شما به دنبال الهام و راهنمایی برای انتخاب رنگ هستید، کامپیوتر را خاموش کنید و به خارج از منزل بروید. طبیعت بهترین ترکیب رنگ را برای شما فراهم می‌کند. به حیوانات، گیاهان، پرندگان نگاه کنید و از طرح‌ها و رنگ‌های شگفت انگیز الهام و ایده بگیرید. از آن‌ها عکس گرفته و آن‌ها را در یک فایل ذخیره کنید. مواردی که هنگام استفاده از رنگ در طرحهای خود مد نظر می‌گیریم به قرار زیر است:  آیا رنگ‌ها در طراحی شما به خوبی با هم هماهنگ هستند و یا زیبایی چندانی در کنار هم ندارند؟ آیا خواندن متن در پس زمینه دشوار است؟ آیا طراحی شما برای آنچه که میخواهید انتقال دهید بیش از حد سرد و یا بیش از حد گرم است؟ شما می‌توانید طرح‌های بیش از حد گرم را با نکات کوچک رنگ‌های سرد (و بالعکس) را خنک کنید. آیا طراحی شما فقط شامل رنگ‌های سیاه و سفید است؟ اگر اینطور است افزودن کمی رنگ واقعا می‌تواند طرح شما را به پتانسیل کامل خودش برساند. اگر شما برای وب یا برنامه‌های خود طراحی انجام می‌دهید، آیا در مورد اثر رنگ‌ها بر روی میزان قابلیت استفاده محصول تحقیق کرده‌اید؟ تئوری رنگ‌ها شامل حوزه‌ی بسیار بزرگی است که در این مقاله سعی کردیم به طور مختصر و مفید اطلاعاتی را در این مورد خدمت شما عرض کنیم. جهت تمرین و آشنایی کامل با انواع طرح‌های رنگی مشاهده‌ی این چرخ توصیه می‌شود. با تشکر از همراهی شما دوستان.

الهه انصاری

الهه انصاری

 

اصول طراحی: تضاد

تا کنون در مجموعه‌ی مقالات اصول طراحی، در مورد تعادل و رنگ صحبت کردیم. در این بخش این روند را با موضوع تضاد (Contrast) ادامه می‌دهیم.  تضاد هنگامی رخ می‌دهد که دو عنصر در یک صفحه متفاوت باشند. به عنوان مثال، تضاد می‌تواند خودش را در رنگ‌های متنوع بین متن و رنگ پس زمینه نشان دهد. یا یک عنوان بزرگ و درشت در کنار یک فونت sans-serif برای متن بدنه باشد. یا میتواند تفاوت بین یک گرافیک بزرگ و یک گرافیک کوچک باشد و یا ترکیب یک بافت خشن با بافت ظریف که یک تضاد قابل توجهی ایجاد می‌کند. چشمان ما علاقه‌مند به دیدن تضاد هستند. نکته‌ی حائز اهمیتی که در رابطه با تضاد وجود دارد این است که تضاد باید کاملا چشم‌گیر و غیر جزئی باشد. ۱. تضاد از نظر چشمان ما جذاب است. یکی از دلایل استفاده‌ی ما از تضاد، چه در چاپ و چه در وب، جلب کردن توجه مخاطب است. سایت Carsonified از تضاد جهت اثرگذاری استفاده می‌کند. این سایت از متن و عکس‌های درشت و بالعکس و ترکیب رنگ‌های متضاد بهره برده است. همانطور که در زیر می‌بینیم جلد مجله‌ی Proximity، از عکس چندین قایق شناور کوچک در درون دریای آبی تیره استفاده کرده است که تضاد زیبایی را به تصویر کشیده است. ۲. تضاد به سازماندهی اطلاعات کمک می‌کند. استفاده از تضاد نه تنها سبب جذابیت هر چه بیشتر طراحی می‌شود بلکه به هدف و سازماندهی اسناد وضوح بهتری می‌بخشد. در مجله‌ی منتشرشده در زیر، Studio8 از قوانین تضاد، تعادل (Balance) و مجاورت (Proximity) برای ایجاد صفحاتی غیر معمول و چشم‌گیر استفاده کرده است. عناوین درشت مشکی تضاد جالبی با متن ظریف روشن ایجاد کرده‌اند. در ادامه‌ی مجله، Studio8 صفحات را به دو قسمت تقسیم کرده است که از لحاظ ظاهری کاملا متضاد هم هستند. هر صفحه اطلاعاتی را در مورد محصول‌های جداگانه‌ای می‌دهد که به هم مرتبط هستند. مفهوم این ارتباط توسط علامت '&' ادا شده است.  ۳. تضاد سبب ایجاد تمرکز می‌شود. آگهی‌ها و تبلیغات مشهور  iPod از مفهوم تضاد به صورت کاملا حرفه‌ای برای متمرکز ساختن توجه بینندگان به پخش‌کننده‌ی موسیقی استفاده کرده است. در این تبلیغات یک شخصیت تیره رنگ بر روی زمینه‌ی رنگی قرار گرفته است. iPod و هدفون‌ به رنگ سفید هستند که در مقابل شخصیت تیره رنگ و زمینه‌ی رنگی خود را به خوبی نشان می‌دهند.  طراحی برای این بطری سفارشی بر پایه‌ی تضاد بین متن سفید  و رنگ قرمز تیره‌ی نوشیدنی است که به عنوان یک کادوی کریسمس، منحصر به فرد است. مواردی که هنگام افزودن تضاد به طرح‌های خود باید به آن‌ها فکر کنید: ۱. چگونه تضاد را ایجاد میکنید؟ از طریق بافت، تایپوگرافی، رنگ یا شکل؟ ۲. اگر می‌خواهید از طریق تایپوگرافی تضاد ایجاد کنید، کدامیک از فونت‌ها را استفاده می‌کنید؟ آیا آن‌ها بسیار متفاوت هستند یا فقط کمی با هم تفاوت دارند؟ گزینههای فونت خود را با دقت بررسی کنید اما به خاطر داشته باشید که متن قابل خواندن باشد. ۳. آیا تضاد به کار رفته، ایده‌ی طراحی شما را تقویت می‌کند؟ پی‌نوشت: مقالات و دوره‌های سایت Sitepoint پیشنهاد می‌شوند. با ایجاد حساب کاربری امکانات جذابی در اختیارتان قرار خواهد گرفت.  

الهه انصاری

الهه انصاری

×