Запитання з тегом «anti-patterns»

Анти-модель - це поведінка або практика, яка є загальною, незважаючи на те, що вона є неефективною або контрпродуктивною.

6
Хороша чи погана практика маскувати колекції Java значущими іменами класів?
Останнім часом я звик "маскувати" колекції Java під назви класів, зручних для людини. Деякі прості приклади: // Facade class that makes code more readable and understandable. public class WidgetCache extends Map<String, Widget> { } Або: // If you saw a ArrayList<ArrayList<?>> being passed around in the code, would you // …

8
Обслуговування коду: зберігати поганий зразок при розширенні нового коду на постійність, чи ні?
Я повинен розширити існуючий модуль проекту. Мені не подобається, як це було зроблено (багато анти-шаблону, як-от копіювати / вставляти код). Я не хочу виконувати повний рефактор з багатьох причин. Чи я повинен: створити нові методи, використовуючи існуючу умовність, навіть якщо я вважаю це неправильним, щоб уникнути плутанини для наступного технічного …

11
Чи є змінні помилки антидіаграмою чи хорошим дизайном?
Щоб обробити кілька можливих помилок, які не повинні зупиняти виконання, у мене є errorзмінна, яку клієнти можуть перевіряти та використовувати для викидання винятків. Це анти-шаблон? Чи є кращий спосіб впоратися з цим? Для прикладу цього в дії ви можете побачити API mysqli PHP . Припустимо, що з проблемами видимості (доступними, …

11
Чи називаються так званими "наскрізними проблемами" вагомим приводом зламати SOLID / DI / IoC?
Мої колеги люблять говорити, що "ведення журналів / кешування / тощо. Є суперечливою проблемою", а потім продовжують використовувати відповідний сингл. І все ж вони люблять IoC та DI. Це справді вагомий привід зламати принцип SOLI D ?

5
Чи вважається анти-зразком читати STDIN з бібліотеки?
Під час написання бібліотеки для великого проекту, над яким я працюю на роботі, виникла проблема, яка вимагала надсилання маркера на електронну адресу, а потім повернення назад у код, де він може бути використаний для подальшого використання. Мій колега каже просто прочитати з STDIN (використовуючи Python:), code = input("Enter code: ")а …

9
Чи є утиліти класів, що не мають нічого, крім статичних членів, анти-шаблон у C ++?
Питання, куди я повинен розміщувати функції, не пов'язані з класом , викликав певну дискусію щодо того, чи є сенс у C ++ поєднувати утилітні функції в класі чи просто вони існують як вільні функції в просторі імен. Я походжу з фону C #, де останнього варіанту не існує, і, природно, …

11
Підкласи, що стосуються лише конструктора: це антитіло?
Я мав дискусію з колегою, і у нас виникли суперечливі інтуїції щодо мети підкласифікації. Моя інтуїція полягає в тому, що якщо основною функцією підкласу є вираження обмеженого діапазону можливих значень його батьківського, то, ймовірно, це не повинно бути підкласом. Він заперечував протилежну інтуїцію: підкласинг представляє більш "специфічний" об'єкт, і тому …

9
Чи створення підкласів для конкретних випадків є поганою практикою?
Розглянемо наступну конструкцію public class Person { public virtual string Name { get; } public Person (string name) { this.Name = name; } } public class Karl : Person { public override string Name { get { return "Karl"; } } } public class John : Person { public override …

3
Чи антипатерн використовувати peek () для зміни елемента потоку?
Припустимо, у мене є потік Речей, і я хочу "збагатити" їх середнім потоком, я можу використовувати peek()це, наприклад: streamOfThings.peek(this::thingMutator).forEach(this::someConsumer); Припустимо, що мутація Речей у цьому пункті коду є правильною поведінкою - наприклад, thingMutatorметод може встановити поле "lastProcessed" на поточний час. Однак peek()у більшості контекстів означає "дивись, але не чіпай". Користуємося …

10
Які анти-шаблони іменування існують? [зачинено]
Є деякі імена, де, якщо ви виявите, що дотягуєтесь до цих імен, ви знаєте, що вже щось зіпсували. Наприклад: XxxManager Це погано, оскільки клас повинен описувати, що робить клас. Якщо найбільш конкретне слово, яке ви можете придумати для того, що робить клас, - це "керувати", то клас занадто великий. Які …

6
Код, який перетворює значення в інше представлення, а потім перетворює його туди, де воно почалося, погано, але як? [зачинено]
Я читав статтю про погану практику програмування . У ньому згадувалося - "Код Йо-Йо", який перетворює значення в інше представлення, а потім перетворює його туди, де воно розпочалося (наприклад: перетворення десяткової у рядок, а потім назад у десяткову або додавання рядка та обрізання) Я не розумію, чому той конкретний приклад, …

8
Чи кидання тут виключення є антидіаграмою?
Я просто обговорював вибір дизайну після огляду коду. Цікаво, що ваша думка. Є цей Preferencesклас, який є відрізком для пар ключ-значення. Нульові значення є законними (це важливо). Ми очікуємо, що певні значення ще не збережені, і ми хочемо обробляти ці випадки автоматично, ініціалізуючи їх із заздалегідь заданим значенням за замовчуванням, …

7
Чи неправильно моя компанія, що об'єднує філії?
Нещодавно я натрапив на статтю MSDN про розгалуження та злиття та SCM: Branching and Merging Primer - Chris Birmele . У статті вони говорять про те, що "велике злиття вибуху" є антипатерном: Злиття великого вибуху - відстрочка гілки, що зливається до кінця зусиль із розвитку, та спроба об'єднання всіх гілок …

2
Чи є названий анти-шаблон для історично вирощеного програмного забезпечення? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 5 років тому . Чи є анти-шаблон, який описує історично вирощену програмну систему, де кілька розробників просто додавали …

2
Як називається такий (анти) візерунок? Які його переваги та недоліки?
За останні кілька місяців я кілька разів наткнувся на наступну техніку / зразок. Однак я не можу знайти конкретне ім’я, і я не впевнений на всі 100 своїх переваг та недоліків. Схема має такий вигляд: В інтерфейсі Java набір загальних методів визначається як зазвичай. Однак, використовуючи внутрішній клас, екземпляр за …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.