Light logo

ReArch

صفحه اصلی مستندات ReArch.

ReArch

بنر

ReArch = رویکرد بازتصور شده به طراحی و معماری اپلیکیشن‌ها

ما باید تعاریف رو بیان کنیم و اولویت‌ها و توضیحات داده‌ها رو فراهم کنیم.
ما باید روابط رو بیان کنیم، نه رویه‌ها.

-- گریس موری هاپر، مدیریت و کامپیوتر آینده (۱۹۶۲)


ویژگی‌ها

به‌طور خاص، ReArch یه راه‌حل جدید برای این‌هاست:

  • ⚡️ مدیریت حالت
  • 🧮 محاسبات افزایشی
  • 🧱 مهندسی نرم‌افزار مبتنی بر کامپوننت

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

  • واکنش‌پذیری از طریق کد اعلانی (declarative)
  • اتصال سست (loose coupling) و تست‌پذیری بالا
  • ترکیب‌پذیری در سطح اپلیکیشن از طریق رویکرد تابعی به وارونگی وابستگی
  • ترکیب ویژگی‌ها از طریق اثرات جانبی

به‌طور خلاصه

کپسول‌هات (قطعات کپسوله‌شده از حالت) رو توی سطح بالا تعریف کن:

تعریف کپسول‌ها
// کپسول‌ها به‌سادگی توابعی هستن که یه CapsuleHandle می‌گیرن.  
// CapsuleHandle بهت اجازه می‌ده داده‌های کپسول‌های دیگه رو بگیری،  
// و علاوه بر اون از یه سری اثرات جانبی متنوع هم استفاده کنی.  

// این کپسول خاص یه شمارش رو از یه اپلیکیشن نمونه شمارش کلاسیک مدیریت می‌کنه،  
// و از اثر جانبی state استفاده می‌کنه.  
(int, void Function()) countManager(CapsuleHandle use) {
  final (count, setCount) = use.state(0);
  return (count, () => setCount(count + 1));
}

// این کپسول مقدار فعلی شمارش رو به علاوه یک برمی‌گردونه.  
int countPlusOneCapsule(CapsuleHandle use) => use(countManager).$1 + 1;