TGViewer
CleverDevs CleverDevs @cleverdevs · 10.9K subscribers
Post #1937 3.25K
-اصل Command Query Separation در کلین کد

این اصل میگه تابع شما یا باید کاری انجام بده یه به سوالی جواب بده اگه هردوتاش رو میکنه بدون که اشتباه میزنی مثلا یه تابع باید یه چیزی رو تو ابجکتی تغییر بده یا یه اطلاعاتی بگیره ازش اگه جفت کار هارو بکنه یکم گیج کننده میشه

مثلا این مثال رو در نظر بگیرید

public boolean set(String attribute, String value);


این کد میاد به یه اتریبیوتی مقداری رو ست میکنه و اگه موفقیت امیز بود ture بر میگردونه و اگه مشکل داشت false میده حالا اگه بیایم اینو توی شرط استفاده کنیم
if (set("username", "CleverDevs"))...

از نگاه خواننده کد ببینید : «این الان چک میکنه که یوزر نیم unclebob از قبل ست شده یا داره چک میکنه »

کلمه set یه فعله ولی وقتی توی شرط استفاده شده قید بنظر میاد و باعث نامفهموم شدن کد میشه
میتونیم به جای set از setAndCheckIfExists استفاده کنیم اما بازم ممکنه برای if statement جالب نباشه بهترین کار اینه که یچیزی مث کد زیر بزنیم :
if (attributeExists("username")) {
setAttribute("username", "CleverDevs");
x...
}


خلاصه این اصل این بود که تابعتون نباید هم کاری انجام بده هم چیزی بر گردونه

#CleanCode
@CleverDevs - @CleverDevsGp
  • 👍 22
  • 🔥 5
  • 💯 2
  • 🆒 1
More from @cleverdevs
  1. Sep 24, 2026شرکت کوالکام اعلام کرده قرار هست پشتیبانی رسمی لپتاپهای مجهز به چیپ Snapdragon X2 از لینوک…
  2. Sep 23, 2026توی کدای کرنل برای سیستم‌کال reboot شما باید دوتا magic value به تابع بدید تا کرنل برای ای…
  3. Sep 21, 2026یه نفر اومده و یه موزیک پلیر لینوکس به اسم sung با cpp و qt نوشته که طراحی زیبا و ویژگی ها…
  4. Sep 18, 2026خب اومدم یک پست شبانه بذارم و برم تا چند روز دیگه که با یک محتوای خوب برگردم :3 براتون سوا…
  5. Sep 14, 2026بیرجند لاگی ها توی روز برنامه نویس یه چلنج باحال دیگه داشتن: چلنج فشرده سازی! (: توی این ر…
  6. Sep 13, 2026روزتون مبارک https://en.wikipedia.org/wiki/Programmer%27s_Day @CleverDevs - @CleverDevsGp
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 →