Skip to content

1. مقدمه

نسخه PDF سند در |ICI| موجود است.

نمونه‌های موجود در سند در |ICI| در دسترس هستند.

1.1. Contexte

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

  1. مستندات [Reactive Programming]؛
  1. بیان‌های لامبدا در جاوا ۸؛
  2. یادگیری برنامه‌نویسی واکنش‌گرا با جاوا ۸؛
  3. Java 8 in Action;

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

ReactiveX مجموعه‌ای از کتابخانه‌ها است که برنامه‌نویسی غیرهمزمان و استفاده از داده‌های به‌دست‌آمده به این روش را تسهیل می‌کند:

 
 
 

کتابخانه Rx در زبان‌های متعددی پیاده‌سازی شده است:

 

در اینجا، ما بر روی کتابخانه‌های زیر تمرکز می‌کنیم:

  • RxJava برای دنیای جاوا؛
  • RxAndroid، یک تخصص از RxJava برای محیط اندروید؛
  • RxSwing، یک تخصص از RxJava برای محیط Swing؛

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

1.2. ابزارهای مورد استفاده

مثال‌های زیر در محیط زیر آزمایش شده‌اند:

  • ماشین ویندوز ۱۰ پرو ۶۴ بیتی؛
  • JDK 1.8 (بخش 1);
  • IntelliJ IDEA Community Edition (بخش 10.4);

1.3. کد نمونه

کد مثال‌های زیر را می‌توانید در پوشه [dvp/exemples] بیابید |ICI|.

 

پوشه [dvp/exemples] [2] یک پروژه Gradle است که حاوی اکثر مثال‌های این سند می‌باشد. این پروژه را می‌توان با هر IDE که از مدیر پروژه Gradle پشتیبانی می‌کند، باز کرد. IntelliJ IDEA به‌طور بومی از آن پشتیبانی می‌کند. برای Eclipse یا NetBeans، به یک افزونه نیاز است. با نسخه Community Edition از IntelliJ IDEA می‌توانید به شرح زیر عمل کنید:

پروژه [exemples] توسط فایل [build.gradle] [4] زیر پیکربندی می‌شود:


buildscript {
    repositories {
        mavenCentral()
    }
}

apply plugin: 'java'

jar {
    baseName = 'exemples-01'
    version = '0.0.1-SNAPSHOT'
}

repositories {
    mavenCentral()
}

dependencies {
    compile('io.reactivex:rxswing:0.25.0')
    compile('io.reactivex:rxjava:1.1.3')
    compile('com.fasterxml.jackson.core:jackson-databind:2.7.3')
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.9'
}
  • خطوط ۱۸–۲۲: وابستگی‌های Gradle پروژه (کتابخانه‌هایی که باید دانلود شوند)؛
  • خط ۱۹: کتابخانه‌ای که برای مثال Swing مورد بحث در پاراگراف ۲ لازم است؛
  • خط ۲۰: کتابخانه RxJava؛
  • خط ۲۱: یک کتابخانه jSON؛
  • خطوط ۹–۱۲: ویژگی‌های آرشیو JAR تولید شده توسط کامپایل پروژه؛

برای دانلود وابستگی‌های مورد نیاز پروژه، برای [1-4] به شرح زیر اقدام کنید: