TGViewer
C# Short Posts 🔞 C# Short Posts 🔞 @dimasshortposts · 309 subscribers
Post #79 94
Не используйте Guard Clauses💂‍♀️
📺 Недавно посмотрел видос на канале Code Opinion про то что Guard Clauses это не очень круто. Тут я конечно озадачился (охуел) потому что я и не знал про такую штуку, а она оказывается уже говно! Поразительная результативность.
Выглядит она вот так:
 
Guard.Against.NullOrEmpty(userName, nameof(userName))

Ну и защищает понятно от чего – от вселенской пустоты текстовых полей. Похожа на Assert. Да и по факту это ассерт, что уж тут. Пихаете его в первых строках контроллера вместо ифчика для проверки ввода.
 
🅰️ Так вот автор предлагает так не делать. А предлагает более изящную конструкцию – создавать отдельный тип под каждое такое поле. То есть просто создаем класс Username со всеми проверками в конструкторе и пользуемся им. Если что-то не пошло, то система просто не сможет создать класс и выкинет ошибку – просто, понятно и сильнее типизированно.

✅Такой подход я уже видел в использовании. И он мне дико нравится, но я не до такой степени задрот – мне лень такие классы генерить.

Но если бы кто-то замутил кату, оттачивающую создание таких классов, было бы прям неплохо.
#libraries
YouTube Stop using trivial Guard Clauses! Try this instead. Guard clauses, on the surface, sound like a great idea. They can reduce conditional complexity by exiting a method or function early. However, I find how guard clauses are used in the real world to be of little value. Often polluting application-level code…
  • 🤔 2
More from @dimasshortposts
  1. Oct 2, 2026s
  2. Oct 2, 2026Post #503
  3. Sep 30, 2026🛤 Путь до Tier1: от чего он зависит В прошлый раз мы гоняли hello world в цикле и увидели…
  4. Sep 26, 2026🧵 Тредик для вопросов по докладу про MAF на дотнексте В докладе многие подробности опусти…
  5. Sep 23, 2026Даже самым хардкорным ребятам надо отдыхать, так что отдыхаем, мои чюваки 🕺 🧑‍💻dp🥁 #he…
  6. Sep 16, 2026🎯 Instrumented Tier0: профилирование кода В прошлый раз мы разобрали два уровня компиляци…
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 →