TGViewer
کدهالیک | codehalic کدهالیک | codehalic @codehalics · 4.15K subscribers
Post #628 550
کدهالیک | codehalic ۳ تا مدل معروف برای reorder کردن لیست‌ها وجود داره، مخصوصا جاهایی مثل تسک‌های جیرا که مدام drag & drop انجام میشه: * ساده‌ترین و بدترین حالت اینه که هر آیتم یه عدد ترتیبی داشته باشه (۱،۲،۳،۴...). مشکلش اینه که اگر یه آیتم وسط لیست جابه‌جا بشه، باید position…
لکسو‌رنک دقیقا برای حل مشکل reorder کردن لیست‌های خیلی بزرگه. مثلا توی جیرا وقتی یه تسک رو drag میکنی بین دوتا تسک دیگه، نمیاد position صد هزار تا رکورد رو آپدیت کنه چون از نظر دیتابیسی فاجعه‌ست. به جاش هر تسک یه rank استرینگی داره که sortable ـه و الگوریتم میتونه همیشه بین دو تا rank یه rank جدید بسازه. مثلا اگه داشته باشیم:


ali_1210
ali_1211


و بخوای یه تسک بین این دوتا بیاد، میتونه یه چیزی مثل ali_1210V تولید کنه که وقتی sort الفبایی انجام بشه دقیقا بین اون دوتا بشینه، بدون اینکه بقیه آیتم‌ها reorder بشن.

اصل ایده‌ش اینه که به جای integer sequence از fractional string استفاده میکنه. یعنی همیشه میشه قبل یا بعد یه آیتم یه rank جدید ساخت و فقط همون رکورد آپدیت میشه. برای همین performance روی board های خیلی بزرگ عالی میمونه و drag & drop عملا O(1) میشه. فقط اگر سال‌ها هی بین دو آیتم insert انجام بشه، رشته‌ها ممکنه خیلی بلند بشن و سیستم هر از گاهی یه rebalance انجام بده تا rank ها normalize بشن.


@codehalics | کدهالیک
  • 👏 6
  • 👍 2
  • 🤯 2
  • ❤ 1
More from @codehalics
  1. Oct 7, 2026این نکته رو هم اضافه کنم که این مورد داره ۲ اصل از اصول SOLID رو رعایت میکنه ! اول DIP (مع…
  2. Oct 7, 2026توی NestJS اینکه چند تا پوشه مثل Orders و Payments بسازی معنیش کد ماژولار نیست. وقتی همه چ…
  3. Oct 7, 2026توی نسخه جدید 16.4 نکس‌جی‌اس، مهم‌ترین خبر اینه که مدل جدید Cache Components بالاخره کامل…
  4. Oct 5, 2026یه اتفاق جالب افتاده: یه برنامه‌‌نویس موقع ساخت پروژه دات‌نت با Claude متوجه شده هوش مصنوع…
  5. Oct 5, 2026دوره جامع معماری نرم‌افزار منتشر شد. در این آموزش ۴ ساعته و فشرده، مباحث Clean Architectur…
  6. Oct 4, 2026این پروژه خیلی جالب بود یه نفر نرم افزار مدیریت انبار رو از یه کار خشک و تکراری به یه بازی…
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 →