Messages

My pages

الگوی مقاله‌های بلاگ

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

seo-video

Discription.

seo-keyword

Discription.

widget-load-test

Discription.

تمام ویجت‌هایی که برای بلاگ استفاده شده، بر اساس تم سایت ۱۲۳

Discription.

seo-text

Discription.

seo-image

Discription.

تماس با ما

Discription.

template6

Discription.

ویراوب|آموزش ساخت صفحه جدید

Discription.

دامنه

Discription.

template3

Discription.

template2

Discription.

template5

Discription.

template4

Discription.

template7

Discription.

template1

Discription.

website-template

Discription.

seo-education

Discription.

editor-widget-slider

Discription.

seo-page

Discription.

شروع کار با گوگل انالاتیک

Discription.

editor-wedget-text

Discription.

صفحه اصلی سایت

Discription.

editor-widget-link

Discription.

editor-widget-image

Discription.

widget-button

Discription.

widget-group

Discription.

seo-widget-image

Discription.

حریم خصوصی

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

Pages

چطور حرف اول یک رشته را با حروف بزرگ یا کوچک در جاواسکریپت جایگزین کنیم

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

How to replace the First Letter of a String with upper/lower case in JavaScript

How to replace the First Letter of a String with upper/lower case in JavaScript. A small and practical tutorial on building code for this handy little function.

Pricing | ViraWeb123

Short description of the page

Benefits of SaaS in Hotel Management Software

SaaS Hotel Management Software has lowered the barrier to entry for small- to mid-size independent hotels, allowing them the opportunity to take advantage of ‘new’ technology that was once only available to large hotel brands with deep pockets. For small, independent hotel or a small B&B, cloud hotel software offers many advantages and opportunities – here are such benefits;

چرا به یک نقشه کسب و کار نیاز داریم؟

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

Why we need a business plan?

In this post, I share the most important reasons for cofounders and startups to design a business plan, and I hope that it will be useful to you. I sincerely welcome any comments or reviews from you.

The 11 Most Popular Hotel Management Software Solutions for Small Hotels Compared

Think about it: is there anything worse than buying the wrong size pants? You spend 15 minutes trying to squeeze into them, huffing and puffing the whole time. And even if you’re successful, you feel like you’re being strangled all day long. For hotels, finding the right software fit is especially important, because without a suitable software solution, you’re wasting time and money—big things that take you away from your customers and keep you from providing a stellar guest experience.

The 11 Most Popular Hotel Management Software Solutions

Think about it: is there anything worse than buying the wrong size pants? You spend 15 minutes trying to squeeze into them, huffing and puffing the whole time. And even if you’re successful, you feel like you’re being strangled all day long. For hotels, finding the right software fit is especially important, because without a suitable software solution, you’re wasting time and money—big things that take you away from your customers and keep you from providing a stellar guest experience.

Raspberry Pi

رزبری پای (Raspberry Pi) یک رایانه تک-برد (Single-board computer) در اندازه یک کارت اعتباری است که بنیاد Raspberry Pi آن را ساخته‌ است تا آموزش علوم رایانه را در مدرسه‌ها تشویق کند.

کنسول جستجوی گوگل (GSC) چیست و چگونه از آن استفاده کنیم؟

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

Introducing Google Marketing Platform

Of course, changes in technology have meant changes for digital marketers. There’s been an explosion of channels, formats and data. Consumers are also more aware of how they’re being marketed to and how their data is being used—and they want more control.

خبرنامه اردیبهشت | ویراوب

Short description of the page

May newsletter

Short description of the page

ویژگی‌های صفحه «درباره ما» درسایت

این مقاله به بررسی نکاتی می‌پردازد که در طراحی صفحه «درباره ما» در سایت اهمیت اساسی دارند.

آناتومی صفحات سایت: چگونه یک صفحه از سایت را طراحی کنیم؟

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

Does SaaS Save Money?

SaaS rescues money for new businesses and marketers appreciate the features and benefits of SaaS(Software as a Service) such as scalability, accessibility, and availability. But how much money does it save for a company? Teams which formed cloud-based infrastructures designate that, while they are so pleased with their decision to go to the cloud, there can be notable costs associated with SaaS. In this post, I`ll show you how much money does a customer saved in our SaaS.

10 top online marketing platforms

Each agency and online marketing professionals have their own techniques and tools. However, when you are in the online marketing business, at some point there are some software you have to you use or at least try.

ViraWeb123

Short description of the page

Why Would I Use A Digital Marketing System Instead Of A Digital Agency?

One of the current topics in hotel internet marketing is around the advancement of technology based solutions to manage online marketing. There are more than a few digital marketing agencies that are scrambling to protect a business that has been pretty lucrative for them over the year

6 راه برای بهبود بازاریابی محتوی

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

The effect of prerender services on modern website design & content marketing

Recently Google introduced a built-in capability to run javascript and render the pages in a crawler. Howe ever this is the same as Halt problem, and it is not possible to find out how long does it take to render the page completely.

Widgets used in blog

All blog widgets are designed and shared in this content. Do not use in any other application.

Blog post tempate

A template used to design a new post on the blog. Do not use in any other application.

Blog page template

All pages in blog is desigend based on this template

Widgets of site

All widgets used in main site is designed and shared in this content.

Site news templates

Template of news in our site. All news must use this template.

Site page template

The template of all site pages.

ویجت‌های سایت

تمام ویجت‌هایی که برای طراحی توی سایت اصلی استفاده شدن توی این صفحه هستن. این ویجت‌ها بین همه به اشتراک گذاشته شدن.

الگوی صفحه‌ها

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

الگوی خبرها

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

Home Login Logout

زمانی که برنامه نویسی واکنش‌گرا (Reactive programming - RP) به عنوان یک ابزار وارد محیط‌های توسعه شد، یک مفهوم جدید و یا لبه علم به حساب نمی‌آمد. این مفهوم در سال ۱۹۶۰ میلادی به بازار IT جهان وارد شد و از آن زمان تا کنون کارهای زیادی بر اساس آن به بازار معرفی شده است. اما متاسفانه مانند بسیاری از مفاهیم علمی دیگر، این مفهوم نیز از زمان ورود به بازار به بروز برداشت‌های نادرست منجر شده که تا کنون این برداشت‌ها از این نوع مدل توسعه نیز وجود دارد. این فضا تا جایی پیش رفته که حتی برخی از کارشناسان بر این باور هستند که اصول چهارگانه‌ای که در بیانیه واکنشگرا معرفی شده نیز حتی به این برداشت‌های اشتباه دامن زده.

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

فهرست موارد

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

در یک جمله کوتاه، برنامه نویسی واکنش‌گرا چیست؟

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

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

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

  1. با سرایدار هماهنگ کنم که اتاق جلسه را تمیز کند
  2. برای پذیرایی سفارش تنقلات بدم و آنها را روی میز بچینم
  3. تمام دوستان رو به اتقاق جلسه دعوت کنم
  4. و با دوستان در مورد این موضوع صحبت کنم

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

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

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

آیا برنامه نویسی و  سیستم‌های واکنش‌گرا یکی هستند؟

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

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

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

چرا به واکنش‌گرایی در برنامه نویسی نیاز داریم؟

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

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

چطور شروع به برنامه نویسی واکنش‌گرا کنیم؟

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

جاوا در آخرین نسخه‌هایی که ارائه کرده (از نسخه ۱.۸ به بعد) تلاش زیادی برای حمایت از برنامه نویسی واکنش‌گرا به صورت داخلی کرده است اما تلاش‌ها هنوز منجر به یک ساختار مناسب و همه پسند در برنامه نویسی واکنش‌گرا نشده است. اما در کنار این تلاش‌ها بسته‌های متفاوتی از برنامه نویسی واکنش‌گرا ارائه شده است که بسیار محبوب هستند و در برنامه‌نویس‌های واکنش‌گرا استفاده می‌شوند.

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

یکی دیگر از بسته‌های نرم افزاری Spring Reactor‌ است. این بسته نیز بسیار شبیه به API معرفی شده در RxJava طراحی شده و یک مفهوم انتزائی از برنامه نویسی واکنش‌گرا را ارائه می‌کند، اما بر خلاف آن بر اساس مدلهای معرفی شده در Java8 کار می‌کند.

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

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

  1. کارایی بهتر
  2. تجربه کاربری مناسب
  3. سادگی توسعه و به روز رسانی

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

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

مهم‌ترین دلیلی (که ریشه تمام قابلیت‌های واکنش‌گرایی است) سادگی توسعه و به روز رسانی سیستم است. مدل برنامه نویسی به گونه است که خوانایی کد را در حالی بالا می‌برد که پردازش‌ها به صورت غیر همزمان پیاده سازی شده‌اند. و این شاهکار برنامه نویسی واکنش‌گرا است.

چگونه یک سیستم موجود را به برنامه نویسی واکنش‌گرا تبدیل کنیم؟

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

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

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

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

  • شبکه‌های اجتمائی، پت
  • بازی‌ها
  • برنامه‌های ویدیو و صوتی

ماژولهای زیر از هر نوع نرم افزاری که شما در نظر داشته باشید محل مناسبی برای پیاده سازی با استفاده از راهکارهای برنامه نویسی واکنش‌گرا است:

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

چه زمانی نباید از برنامه نویسی واکنش‌گرا استفاده کنیم؟

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

چه چیز‌های برای شروع برنامه نویسی واکنش‌گرا لازم است؟

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

نتیجه گیری

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


LocalTheme

Help