TGViewer
Microfrontend.ir Microfrontend.ir @microfrontend_ir · 1.35K subscribers
Post #308 1.23K
Microfrontend.ir به عنوان مهندس گاهی تکنولوژی، متدلوژی یا رویکردی را برای حل مساله پیشنهاد می‌کنیم، نه به این دلیل که بهترین راه‌حل برای مساله است بلکه می‌خواهیم در رزومه‌مان باشد. چنین تصمیمی به ندرت نتایج خوبی در پی خواهد آورد. بهترین راه اینه که نیازمندی‌های بلندمدت مشتری…
ساده سازی پیچیدگی‌های ذاتی و کم کردن پیچیدگی‌های تصادفی
- پیچیدگی ذاتی، به دشواری‌های ذاتی یک مسئله اشاره دارد که بدون از دست دادن جزئیات مهم نمی‌توان آن را ساده‌تر کرد. برای مثال، کنترل ترافیک هوایی یک کشور به خودی خود یک مسئله پیچیده است، زیرا باید موقعیت دقیق، سرعت، جهت و مقصد هر هواپیما را در لحظه ردیابی کرد تا از برخوردها جلوگیری شود. همچنین، برنامه‌ریزی زمان‌های پرواز و مدیریت تغییرات آب و هوایی هم به پیچیدگی ذاتی این مسئله اضافه می‌شود.
    
- پیچیدگی اتفاقی به بار اضافی اشاره دارد که توسط سیستم‌ها یا چارچوب‌هایی که برای حل پیچیدگی ذاتی ساخته شده‌اند، اضافه می‌شود. در مثال ترافیک هوایی، سیستم‌های قدیمی کنترل ترافیک هوایی یک نمونه از پیچیدگی اتفاقی است. این سیستم‌ها که برای مدیریت پیچیدگی‌های ترافیک هوایی ایجاد شده‌اند، به مرور زمان قدیمی شده و انعطاف‌پذیری خود را از دست داده‌اند، به‌طوری‌که به‌روزرسانی آن‌ها بسیار دشوار شده است و لایه‌های غیرضروری به مشکل اصلی اضافه کرده‌اند.
    
 
گاهی اوقات، توسعه‌دهندگان به دلیل چالش‌برانگیز بودن مسائل پیچیده، به سمت پیچیدگی جذب می‌شوند، اما این میل می‌تواند باعث ایجاد سیستم‌های بیش از حد پیچیده و دارای پیچیدگی اتفاقی شود. چالش برای معماران سیستم این است که چارچوب‌ها و راه‌حل‌هایی را انتخاب کنند که این پیچیدگی اتفاقی را به حداقل برسانند و روی کدی تمرکز کنند که مستقیماً به حل مشکل اصلی کسب‌وکار کمک می‌کند، نه اینکه ساختار را با راه‌حل‌های بی‌جهت پیچیده کنند.
 
برای دستیابی به این هدف، توصیه‌ها عبارتند از:
 
1. انتخاب چارچوب‌هایی که در عمل موثر بودن خود را اثبات کرده‌اند به جای طرح‌های نظری صرف.
2. ارزیابی درصد کدی که فقط به ارتباط بین کاربر و سیستم می‌پردازد و مستقیماً مشکل اصلی را حل نمی‌کند.
3. با دقت انتخاب کردن راه‌حل‌های ارائه شده توسط فروشندگان، زیرا این راه‌حل‌ها گاهی بیشتر پیچیدگی اتفاقی را افزایش می‌دهند تا اینکه آن را برطرف کنند.
 
در نهایت، وظیفه معمار سیستم این است که پیچیدگی‌های ذاتی را به‌درستی مدیریت کند و از افزودن پیچیدگی اتفاقی جلوگیری کند تا راه‌حل‌های بهینه، قابل نگهداری و انعطاف‌پذیر ایجاد شوند.
 
"پیچیدگی ذاتی در هر مسئله وجود دارد، اما پیچیدگی اتفاقی از راه‌حل‌های اضافه و غیرضروری ناشی می‌شود. وظیفه معماران سیستم این است که بدون افزودن پیچیدگی غیرضروری، راه‌حل‌هایی ساده و کارآمد برای مسائل پیچیده طراحی کنند."
#TIP-02

〰️〰️〰️〰️〰️〰️
© @microfrontend_ir
  • 👍 10
  • ❤ 4
More from @microfrontend_ir
  1. Aug 10, 2026photo post
  2. Aug 10, 2026Post #363
  3. Aug 10, 2026قبلنا خیلی با قیاس مغز و سی پی یو مشکل داشتم و برداشتم این بود که اساسا قیاس درستی نیست. م…
  4. Aug 6, 2026اگر احیانا داشتید از مکتب خونه می‌دیدید از اونجا حذف شده و میتونید از درس افزار شریف ببینی…
  5. Aug 2, 2026اخیرا از این دوره مکتب خونه واقعا لذت بردم https://maktabkhooneh.org/course/خلاقیت-نوآوری-…
  6. Jun 8, 2026تازه شروعش کردم ولی به نظر باحال میاد Your Code as a Crime Scene, Second Edition Use Foren…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →