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

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

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

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

۱۱مرداد

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

آموزش برنامه نویسی با Online game

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

 

آموزش برنامه نویسی با Khan Academy

وب سایت Khan Academy که یکی از وب سایت های مورد نظر ما جهت یادگیری برنامه نویسی با ترفند بازی آنلاین (Online game) است از زبان فارسی هم پشتیبانی می کنم.(لینک نسخه فارسی) خان آکادمی موسسه ای غیر انتفاعی با هدف بهبود آموزش می باشد. با توجه به اینکه این وب سایت از زبان فارسی هم پشتیبانی می کند آموزش برنامه نویسی با بازی کردن از طریق Khan Academy بسیار ساده خواهد بود.

این سازمان غیرانتفاعی در سال ۲۰۰۶ به دست سلمان خان که خود دانش آموخته موسسه فناوری ماساچوست (MIT) است بنیان نهاده شد. در خان آکادمی بیش از ۷۰۰ دوره آموزشی وجود داره که علاوه بر دوره های برنامه نویسی، دوره های دیگری نظیر ریاضیات، فیزیک، شیمی، زیست شناسی، اقتصاد، تاریخ، پزشکی و… به رایگان ارائه شده است که در وب‌گاه یوتیوب نیز قابل دستیابی است. در این وب سایت میتوانید کلیه زبان های برنامه نویسی مانند C – HTML4 – HTML5 – CSS3 – PHP – JAVASCRIPT – JAVA – PYTHON و… را با روش های مختلف آموزش ببینید.

آموزش برنامه نویسی با Khan Academy

آموزش برنامه نویسی با Khan Academy

خان آکادمی موسسه ای غیر انتفاعی با هدف بهبود آموزش می باشد. آرمان این موسسه فراهم کردن آموزش رایگان و با کیفیت برای همه، در هر مکان می باشد. علاوه بر ویدیوهای ترجمه شده که در زیرآمده است، شما می توانید ویدیوهای انگلیسی خان آکادمی را که به فارسی ترجمه شده اند در سایت اصلی مشاهده کنید. برای مشاهده این که چه ویدیوهایی ترجمه شده اند می توانید از فیلتر موجود در این صفحه استفاده کنید
www.khanacademy.org/contribute

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

https://www.khanacademy.org/computing

اگر شما هم علاقمند به همکاری با خان آکادمی در راستای گسترش دسترسی به آموزش با کیفیت می باشید. می توانید از این صفحه دیدن کنید
http://international.khanacademy.org

علاوه بر این صفحه ، برای مشاهده ویدیوهای فارسی و بحث و گفت وگو با سایر مخاطبین فارسی زبان همچنین می توانید به سایت کلاس درس مراجعه کنید
http://kelasedars.org

آدرس وب سایت اصلی

وب سایت Khan Academ

 

آموزش برنامه نویسی با Code Hunt

کمپانی مایکروسافت برای توسعه دهندگان نرم‌ افزاری، یک بازی رایانه‌ ای مبتنی بر مرورگرهای اینترنتی ارائه کرده است که با روش های جالب و سرگرم‌ کننده مهارت‌ های آنها را در امر برنامه‌ نویسی ارتقا می‌دهد. این بازی Code Hunt نام دارد که کار‌شناسان مرکز TheInquirer نیز اندکی آن را مورد بررسی قرار داده‌اند. کار‌شناسان می‌گویند که از بازی یاد شده چندان هم نمی توان به عنوان سرگرمی یاد کرد. در ابتدای بازی شما می‌ توانید یکی از دو زبان برنامه‌ نویسی Java یا #C را انتخاب کنید و پس از آن برای جلو بردن مراحل بازی باید مشکلات موجود در بخش های مختلف برنامه های نوشته شده را برطرف کنید یا تغییرات لازم را روی آنها انجام دهید.

Code Hunt یک پلت فرم جدی برای مسابقه برنامه نویسی و مهارت های برنامه نویسی است. بازیکنان باید برای اولین بار از الگویی استفاده کنند و سپس پاسخ را کد کنند. کد هانت توسط بیش از ۷۵۰،۰۰۰ بازیکن تا اوت ۲۰۱۸ مورد استفاده قرار گرفته است. داده های رقابت های اخیر برای تجزیه و تحلیل در جامعه آموزشی باز شده است.
آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها

آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها

آموزش برنامه نویسی با Code Hunt

آموزش برنامه نویسی با Code Hunt

 توضیحات بیشتر

Code Hunt

CodeHunt-sm.pngCode Hunt is a serious gaming platform for coding contests and practicing programming skills. It is based on the symbolic white box execution engine, Pex. Code Hunt is unique as an online coding platform in that each puzzle is presented with test cases only, no specification. Players have to first work out the pattern and then code the answer. Code Hunt has been used by over 350,000 players as of August 2016. Data from the recent contests has been open sourced for analysis in the educational community.

Links

Main publication to cite

Judith Bishop, R. Nigel Horspool, Tao Xie, Nikolai Tillmann, Jonathan de Halleux: Code Hunt: Experience with Coding Contests at Scale: in Proceedings of the 37th International Conference on Software Engineering (ICSE – JSEET Track), pp398-407, ACM, 2015

Mastering a complex skill like programming takes many hours. In order to encourage students to put in these hours, we built Code Hunt, a game that enables players to program against the computer with clues provided as unit tests. The game has become very popular and we are now running worldwide contests where students have a fixed amount of time to solve a set of puzzles. This paper describes Code Hunt and the contest experience it offers. We then show some early results that demonstrate how Code Hunt can accurately discriminate between good and bad coders. The challenges of creating and selecting puzzles for contests are covered. We end up with a short description of our course experience, and some figures that show that Code Hunt is enjoyed by women and men alike.

About the Hint Mechanism in Code Hunt

لینک شروع کار با Code Hunt

 

آموزش برنامه نویسی با CodeCombat

آموزش برنامه نویسی با CodeCombat

آموزش برنامه نویسی با CodeCombat

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

این بازی CodeCombat نام دارد و نوعی بازی اکشن و استراتژی میباشد که تفاوت این بازی با سایر بازی های کامبت اینه که کلیه حرکت ها با استفاده از زبان برنامه نویسی انجام می شود و با یادگیری این بازی میتوانید یک برنامه نویس حرفه ای شوید.

 

آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها

آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها

دوره های که در وب سایت CodeCombat برای یادگیری برنامه نویسی از طریق بازی موجود هستند شامل موارد زیر می باشد

  • یادگیری HTML از طریق بازی کردن
  • یادگیری CSS از طریق بازی کردن
  • یادگیری بوت استرپ از طریق بازی کردن
  • یادگیری برنامه نویسی جاوا اسکریپت از طریق بازی کردن
  • یادگیری برنامه نویسی جی کوئری از طریق بازی کردن
  • یادگیری برنامه نویسی پایتون از طریق بازی کردن

لینک شروع کار با CodeCombat

 توضیحات بیشتر

CodeComba

A classroom in-a-box for teaching computer science. CodeCombat is a platform for students to learn computer science while playing through a real game. Our courses have been specifically playtested to excel in the classroom, even for teachers with little to no prior programming experience. Watch how CodeCombat is transforming the way people learn computer science.

Why is learning through games important?

Gaming is a medium that encourages interaction, discovery, and trial-and-error. A good game challenges the player to master skills over time, which is the same critical process students go through as they learn.

Games excel at rewarding“productive struggle” -the kind of struggle that results in learning that’s engaging andmotivating,not tedious.

When game-based learning systems arecomparedagainst conventional assessment methods, the difference is clear: games are better at helping students retain knowledge, concentrate andperform at a higher level of achievement. Games also provide real-time feedback that allows students to adjust their solution path and understand concepts more holistically, instead of being limited to just “correct” or “incorrect” answers.

A great game is more than just badges and achievements – it’s about a player’s journey, well-designed puzzles, and the ability to tackle challenges with agency and confidence. CodeCombat is a game that gives players that agency and confidence with our robust typed code engine, which helps beginner and advanced students alike write proper, valid code.

لینک شروع کار با CodeCombat

 

آموزش برنامه نویسی با CheckiO

آموزش برنامه نویسی با CheckiO

آموزش برنامه نویسی با CheckiO

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

لینک شروع کار با CheckiO

 

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

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

شهربانو دوستی
۱۱مرداد

با سلام و عرض ادب. در خدمت دوستان عزیز هستیم با آموزش Workflow – آموزش کار با اکتیویتی InvokeMethod از وب سایت آموزش برنامه نویسی سورس باران. در این جلسه از آموزش کامل Workflow نحوه فراخوانی متدهای مختلف را با استفاده از اکتیویتی InvokeMethod آموزش دهیم.. لطفا با ما همراه باشید…

این دوره جهت حفظ حقوق نویسنده از سایت حذف شده، مطالب جدیدتری بزودی در سایت قرار میگیرد

گردش کار (Workflow)

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

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

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

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

نمونه هایی از گردش کار:

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

۱- گردش کار مدیریت مستندات:

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

۲- خدمات مشتریان (پیگیری سفارش)

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

۳- مدیریت تعطیلات

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

اجزای گردش کار:

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

۱- مقدار ورودی: شامل اطلاعات و مقادیری است که برای کامل شدن یک مرحله از گردش کار، مورد نیاز است.

۲- قوانین تغییر: الگوریتم هایی که توسط نقش های انسانی یا سیستمی یا ترکیبی از هر دو انجام می شود را قوانین تغییر گویند.

۳- مقدار خروجی: اطلاعات و مقادیری که توسط هر مرحله تولید شده و به عنوان ورودی به مرحله بعد داده می شود را گویند.

گردش ها کار به سه دسته تقسیم می شوند:

۱- ترتیبی: دراین گردش کار برگشت به مرحله قبل وجود ندارد.

۲- سیستمی: این گردش کارها پیچیده تر هستند و امکان بازگشت به مرحله قبل را نیز دارند.

۳- مبتنی بر قوانین: این دسته همانند گردش کارهای ترتیبی هستند اما با این تفاوت که قوانین هستند که پیشرفت در فرایند را تعیین می کنند.

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

۱- زمانبندی شده: با توجه به زمانی که برای شروع و تکرار آن در نظر گرفته شده است، شروع می شود.

۲- فرم: در واقع رایج ترین نوع شروع در گردش کار است که کاربر با پر کردن فرم و ارسال آن، گردش کار را به جریان می اندازد.

۳- API: سیستم های دیگر می توانند یک گردش کار را در قالب پیامک اعلان یا وب سرویس و به کمک API شروع کنند.

مزایای استفاده از سیستم ها با قابلیت گردش کار:

۱- افزایش تولید: گردش های کاری مکانیزه شده، زمان انجام کارها را کاهش داده و درنتیجه تولید و بهره وری را افزایش می دهند.

۲- شفافیت: به مدیران این امکان را می دهد که متوجه شوند که در فرایند های کاری آن ها در لحظه چه اتفاقاتی رخ می دهد.

۳- انعطاف پذیری بالا در تغییرات: گردش ها کار این اجازه را به سازمان ها می دهد که به راحتی و به سرعت در فرایند های خود تغییرات لازم را ایجاد کنند.

۴- مسئولیت پذیری بهتر: نظارت و پایش اجرای فرایند های کسب و کار امکان ایجاد معیار هایی را برای بهبود مستمر فرایند ها ایجاد می نماید.

منابع : Introduction-to-workflows

bpm-tutorial/workflow-tutorial

Workflow_Fundamentals

what-is-workflow

 

آموزش کار با اکتیویتی InvokeMethod

Greetings and admirable wisdom. In the service of your dear friends with the Workflow tutorial – Learn how to activate InvokeMethod from the Source for Raining Education website. Learn how to call different methods using InvokeMethod activation in this session. Please come along with us …

InvokeMethod Activity Training

The UsingInvokeMethodActivityInCode Workflow project includes the following 5 steps

Create a Project Workflow Console Application
Create a TestClass.cs file
Workflow design using InvokeMethod activation
Run the workflow
How does the UsingInvokeMethodActivityInCode workflow work?

Create a Project Workflow Console Application

Create a new Console workflow and name it using InvokeMethodActivityInCode.

Create a TestClass.cs file

Add a new file named TestClass.cs to the project and paste the following code into i

 

Workflow design and activation activation of InvokeMethod

Open the Workflow1.xaml file from the Solution Explorerr panel and design the Workflow as follows:

From the ToolBox panel, select Activate and drag the workflow drawing.
From the ToolBox panel, select Activation InvokeMethod and activate it, and design the Workflow as shown below.

The workflow
The workflow

Run the workflow

Use the InvokeMethodActivityInCode project as a StartUp project and then press Ctrl + F5 to run Workflow:

Workflow System UsingInvokeMethodActivityInCode

InvokeMethod’s proprietary asset is

MethodName: Using this property, we set the method name.
TargetObject: If the method we want to call is not Static, we must first create a new object of the type that constructed the method, using this Property.
TargetType: If the method we want to call is static, we must set the class type that contains the static method using this property.
GenericTypeArguments: If we call a method that we call a general method type, using this property we can specify a generic type.
Parameters: Using this feature, we set the parameters of the called method.
Result: If the value of the method returns, using this property we can change the value of the return value in each variable.

شهربانو دوستی
۱۱مرداد

سلام دوستان. در ادامه اشتراک گذاری نرم افزار و ابزار برنامه نویسی در این مطلب دانلود نرم افزار برنامه نویسی روبی- برنامه Ruby v2.4.2را از وب سایت آموزش برنامه نویسی سورس باران برای شما جهت دانلود قرار داده ایم. جهت دانلود و مشاهده توضیحات بیشتر لطفا با ما همراه باشید…

برنامه Ruby v2.4.2 نرم افزار برنامه نویسی روبی

Ruby یک زبان برنامه نویسی پویا و متن باز (open source) است که تمرکز خود را بر روی سادگی و بهره وری بالا قرار داده است و از سینتکس ظریفی استفاده می کند که برای درک و نوشتن بسیار راحت می باشد. روبی یک زبان انعطاف پذیر و شیء گراست که همه چیز در آن به عنوان یک شیء خواهد بود و هر بیت از اطلاعات و کد می توانند مشخصات (properties) و عملیات (actions) خود را داشته باشند. در زبان های شی گرا (Object-oriented) مشخصات با صدا کردن نام اشیا به آن ها نسبت داده می شود و عملیات به عنوان متد شناخته می شوند. ایده اصلی طراحی روبی علاوه بر پیروی از اصول طراحی خوب رابط کاربر، خوشنود کردن برنامه نویسان با کمتر کردن کارهای تکراری بود که آن ها بایستی انجام می دادند.

حتما بخوانید : Ruby چیست؟ بررسی زبان برنامه نویسی روبی و منابع آموزشی

 

منابع آموزش برنامه نویسی روبی

شهربانو دوستی
۱۱مرداد

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

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

باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

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

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

 

افزونه WooCommerce Waitlist چگونه کار می کند؟

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

باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

 

با Waitlist WooCommerce ، مدیران فروشگاه می توانند محصولات را بر اساس تعداد درخواست مشتریان در لیست انتظارشان مرتب کنند در نتیجه اولویت و تعداد موجودی یک محصول را می توانند دریابند.

باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

 

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

 

ویژگی های افزونه WooCommerce Waitlist

✔️مشتریان هنگام موجود شدن یک کالا از طریق ایمیل اطلاع می دهد.

✔️لیست کاربران و تعداد درخواست آن ها را پیگیری می کند

✔️تعداد کالا مورد نیاز را از کاربران می پرسد.

✔️برای انواع محصولات کار می کند

✔️امکان فعال کردن / غیرفعال کردن کاربران مهمان وجود دارد.

✔️امکان شخصی سازی فرم درخواست موجود شدن محصول پس از نصب و فعال سازی این افزونه وجود دارد.

 

راهنمای کار با افزونه WooCommerce Waitlist

پس از نصب افزونه یک بخش جدید با عنوان Wait List در پیشخوان وردپرس سایت اضافه می شود. این افزونه تنظیمات متعددی دارد که در زیر به آن می پردازیم.

 تنظیمات مربوط به قسمت Main

Enable Guest : با فعال کردن این بخش، امکان استفاده از باخبر شدن محصول برای کاربرانی که در سایت ثبت نام نکرده اند وجود دارد.

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

Allow Quantity : با استفاده از این گزینه برای محصولات که بیشترین درخواست دارند را زودتر از بقیه محصولات موجود کنید.

Shop Button : از طریق این دکمه گزینه ای را برای اطلاع دادن موجودی محصول را در سایت فعال کنید.

Waitlist Button Text : متن موردنظر خود را برای دکمه بالایی وارد کنید.

Modal Animation : مدل انیمیشن دکمه را در این بخش تنظیم کنید.

باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

 تنظیمات مربوط به قسمت Email

From:Email : ایمیل مورد نظر  را برای ارسال اطلاعیه ها در این بخش وارد کنید.

From:Name : یک عنوان مناسب برای ایمیل خود مشخص کنید.

Select Logo : لوگوی دلخواه برای درج در ایمیل وارد کنید.

Align Email : تنظیمات مربوط به نحوه قرار گیری متن ایمیل  در این بخش وجود دارد.

Preview Email : پیش نمایش ایمیلی که تنظیم کردید.

باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

صفحه افزونه WooCommerce Waitlist



شهربانو دوستی
۱۱مرداد

باسلام. در خدمت شما هستیم با کتاب آموزش محیط نرم افزار بازی سازی GameMaker از وب سایت آموزش برنامه نویسی سورس باران.  نرم افزار Game Maker که ساخت شرکت Yoyo Games است محیطی بسیار ساده دارد که مبتدیان می توانند با استفاده از آن بهتر از دیگر نرم افزار ها بازی بسازند.

این کتاب که در ۲۵ صفحه ارائه شده است و نویسنده آن آقای محمد مرادی می باشد به معرفی محیط این برنامه خواهد پرداخت.

کتاب آموزش GameMaker

  • آموزش محیط نرم افزار GAMEMAKER
  • سخن نویسنده
  • پیشگفتار
  • دریافت و نصب نرم افزار GameMaker
  • نوار منوها در GameMaker
  • نوار ابزار در GameMaker
  • پوشه ها در GameMaker
  • تنظیمات اصلی نرم افزار GameMaker
  • نکته ای در مورد بازی سازی GameMaker
  • تنظیمات اسپرایت GameMaker
  • تنظیمات صدا ها GameMaker
  • تنظیمات پس زمینه GameMaker
  • تنظیمات آبجکت GameMaker
  • مثال از یک رویداد و عکس العمل آن GameMaker
  • تنظیمات روم GameMaker
  • سخن آخر
شهربانو دوستی
۱۰مرداد

صنعت توسعه وب هر روز در حال پیشرفت و توسعه است. این موضوع میتواند برای فریلنسر ها مزایای داشته باشد، با این حال معایبی هم برای آنها به همراه خواهد داشت. اما معایب این توسعه هر روزه چیست؟

frelancer

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

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

برند شخصی چیست؟

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

چرا باید یک برند شخصی برای خود داشته باشید؟

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

1. یک برند شما را در جمعیت فریلنسر ها شاخص نشان میدهد

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

2. با یک برند، خودتان را یک متخصص جلوه میدهید

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

3. با یک برند، شما اعتماد به نفس بدست خواهید آورد

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

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

  • مشتریان ایده آل خود را بشناسید
  • مجموعه ای را به صورت آنلاین برای نمونه کار برای خود ایجاد کنید

مشتریان ایده آل خود را بشناسید

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

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

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

1.مهم‌ترین چالش‌های آنها کدامند؟

به عنوان یک توسعه دهنده وب مستقل (فریلنسر)، هدف شما ارائه یک راه‌حل برای مشتریان ایده‌آل است. دانستن چالش ها و نیاز های آنها به شما کمک میکند که بدانید بر روی کدام مهارت ها و توانایی خود در برندتان سرمایه گذاری کنید.

2.هدف  آنها چیست؟

علاوه بر تولید درآمد ، باید ارزش ها و اهداف آنها را برای تولید محصول درک کنید.

3.بدانید مشتریان تان اطلاعاتشان را از کجا میگیرند؟

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

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

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

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

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

برخی از مراحلی که در زمان ساخت این مجموعه باید انجام دهید، عبارت اند از :

1.درخواست های واقعی مشتریان واقعی خود را بشناسید

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

2.راه حل هایی را فراهم آورید

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

برای روی موارد زیر تمرکز کنید :

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

3.خدمات خود را ضروری کنید

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

مشتریان را از ارائه خدمات خود آگاه کنید و به آنها نشان دهید که با خدمات خود چطور از دیگران متمایز هستید...

ادامه دارد.....

#فریلنسر

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


شهربانو دوستی
۱۰مرداد

حتما شنیده اید که زبان‌هایی مانند C و ++C نسبت به زبان‌های مفسری همچون پایتون و Node.js بهینه تر هستند. در این مقاله سعی کردم که به شما نشان دهم که چرا زبان‌های کامپایلری مانند C و ++C دارای کارایی بالاتری نسبت به زبان‌های دیگر هستند. با این حال برای خواندن این مقاله باید پیش زمینه ای در مورد معماری کامپیوتر مدرن داشته باشید.

coding-for-adults

کارایی و قدرت یک پردازنده را می توان با نسبت تعداد اجرای دستورالعمل ها در هر سیکل ساعت سنجش کرد. دو روش اصلی برای اجرای دستورالعمل های موازی وجود دارد که می تواند IPC را ارتقا دهد.

عمق Pipeline 

Pipeline ها شبیه به شستن لباس ها هستند :

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

1_tgrjndZuYHCJhpO2In0m_g

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

می خواهید این کارها به صورت موازی انجام شود، به صورت مشابه وقتی دستورالعملی در حال اجراست می‌توانیم دستورالعمل بعدی را قبل از اتمام دستورالعمل قبلی اجرا کنیم، ما این دستورالعمل ها را روی Pipeline قرار می‌دهیم.

1_mflEusCcRDfu_jFAG-N09A

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

پهنای Pipeline 

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

1_gJk28LHXdvGpNAYGl90SDw

فرض کنید که برنامه اسمبلی زیر را داشته باشید :

1_uRz8fKCedPP_UXh0hPGn_g

به دلیل وابستگی ببین دستورالعمل‌ها، بهترین حالتی که می‌توانیم برای اجرای دستورالعمل ها انتظار داشته باشیم، به صورت زیر است :

1_anoVPTHdO0m_v6UOFCxqYw

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

باز کردن حلقه

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

1_caxXxTTAF5w1lRCre6OX1g

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

نتیجه

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

#کامپایلر #مفسر

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


شهربانو دوستی
۱۰مرداد

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

speed

برای دو روز تمام بر روی این برنامه کار کردم و تست های مختلفی را روی آن آزمایش کردم و منطق برنامه را بررسی کردم، اما نتوانستم چیزی را که این برنامه را کند کرده بود، پیدا کنم. دیگر ناامید شده بودم که روز سوم مشکل را پیدا کردم. مشکل دستور wait به مدت ۲۰ ثانیه بود، که در یکی از بارگذاری های صفحات لحاظ شده بود :

WAIT FOR 20 SECONDS.

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

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

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

انجامش ندهید

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

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

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

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

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

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

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

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

بهینه ساز کامپایلر را فعال کنید

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

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

#سریعتر کردن برنامه #بهینه کردن برنامه

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


شهربانو دوستی
۱۰مرداد

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

Header

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

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

چرخه رنگی مشهور

چرخه رنگی مشهوری که در دوران مدرسه یاد گرفته‌اید، را به خاطر بیاورید این شکل اساس انتخاب رنگ‌های شما را تشکیل می دهد :

colorwheel-1

همانطور که در چرخه رنگی بالا مشاهده می کنید، ترکیبات رنگی مختلفی برای انتخاب وجود دارد :

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

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

روانشناسی رنگ ها و ارزش برند

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

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

مخاطبان و یا جمعیت هدف

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

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

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

شناسایی برند

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

McDonalds-logo-in-different-colors

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

تاثیر رنگها بر احساسات

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

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

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

Color-emotion-gui

تعصبات را رها کنید

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

قانون 60-30-10 را رعایت کنید

از قوانین زیر برای ساخت پالت رنگی مناسب برای وب سایت خود استفاده کنید :

  • ۶۰ درصد از رنگ های dominant (غالب) استفاده کنید
  • ۳۰ درصد از رنگ های secondary (ثانویه) استفاده کنید
  • ۱۰ درصد از رنگهای accent استفاده کنید

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

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

#پالت رنگی #طرح های رنگی

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


شهربانو دوستی
۱۰مرداد

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

CleanCode

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

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

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

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

اما سوالی که ممکن است اکنون در ذهن شما باشد این است که به عنوان یک برنامه نویس تازه کار چطور باید کد های تمیز بنویسید؟

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

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

در زیر نمونه مثالی خوب و بد در این مورد آورده شده است.

یک نمونه مثال خوب :

function getStudents(id) {
    if (id !== null) {
        go_and_get_the_student();
    } else {
        abort_mission();
    }
}

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

یک نمونه مثال بعد :

function getStudents(id) {
if (id !== null) {


        go_and_get_the_student();} 
    else 
    {
        abort_mission();
    }
    }

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

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

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

  • در VS Code از پلاگین Prettier استفاده کنید
  • در Atom از پلاگین Atom Beautify استفاده کنید
  • در Sublime Text از پلاگین Prettify استفاده کنید

از متغیرهای واضح و نام‌های مناسب برای متد ها استفاده کنید

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

function changeStudentLabelText(studentId){
	const studentNameLabel = getStudentName(studentId);
}


function getStudentName(studentId){
	const student = api.getStudentById(studentId);
	return student.name;
}

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

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

از یک استایل خاص برای نام گذاری در کل برنامه خود استفاده کنید. از قاعده camelCase و یا under_scores بهره جوید(از یکی از آنها نه هر دو)

توابع متدها و متغیرها را با توجه به کاری که انجام می دهند، نام گذاری کنید اگر متن شما چیزی برمی گرداند از کلمه get در ابتدای نامگذاری آن استفاده کنیند

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

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

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

کامنت های مستند

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

/**
 * Solves equations of the form a * x = b
 * @example
 * // returns 2
 * globalNS.method1(5, 10);
 * @example
 * // returns 3
 * globalNS.method(5, 15);
 * @returns {Number} Returns the value of x for the equation.
 */
globalNS.method1 = function (a, b) {
    return b / a;
};

کامنت های  Clarification 

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

/*
This function calls a third party API. Due to some issue with the API vender, the response returns "BAD REQUEST" at times. If it does, we need to retry
*/
function getImageLinks(){
	const imageLinks = makeApiCall();
	
	if(imageLinks === null){
		retryApiCall();
	} else {
		doSomeOtherStuff();
	}
}

مثال هایی از کامنتهای بد

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

کامنت تکراری که ارزشی را ایجاد نمیکند :

// this sets the students age 
function setStudentAge();

کامنت گمراه کننده :

//this sets the fullname of the student
function setLastName();

کامنت مسخره و خنده دار :

// this method is 5000 lines long but it's impossible to refactor so don't try
function reallyLongFunction();

از تکرار کدها اجتناب کنید

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

بیش از حد به تمیز کردن کدها نپردازید

برخی توسعه‌دهندگان به صورت وسواس به تمیز کردن کدها ادامه می‌دهند، مراقب باشید این کار میتواند اثر عکس داشته باشد، در واقع این کار بر بهره وری شما اثر بدی خواهد داشت. 

#کد تمیز

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


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