Запитання з тегом «code-smell»

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

8
Чи є кращий спосіб використання словників C #, ніж TryGetValue?
Мені здається, що я часто шукаю запитання в Інтернеті, і багато рішень включають словники. Однак кожного разу, коли я намагаюся їх реалізувати, я отримую цей жахливий реек у своєму коді. Наприклад, кожен раз, коли я хочу використовувати значення: int x; if (dict.TryGetValue("key", out x)) { DoSomethingWith(x); } Це 4 рядки …

9
Занадто багато запаху коду?
Я дійсно закохався в тестування одиниць та TDD - я заражений. Однак одиничне тестування зазвичай використовується для публічних методів. Іноді, хоча мені доводиться перевіряти деякі припущення-твердження і в приватних методах, оскільки деякі з них "небезпечні", і рефакторинг не може допомогти далі. (Я знаю, тестування рамок дозволяє тестувати приватні методи). Тож …

7
Чи повинні абстракції зменшити читабельність коду?
Хороший розробник, з яким я працюю, нещодавно розповів мені про деякі труднощі, які він мав у реалізації функції в якомусь коді, який ми успадкували; Він сказав, що проблема полягає в тому, що коду було важко дотримуватися. З цього моменту я заглянув у продукт і зрозумів, як важко бачити шлях коду. …

4
Чому класи класів вважаються запахом коду?
У цій статті стверджується, що клас даних - це "запах коду". Причина: Це нормальна річ, коли новостворений клас містить лише декілька загальнодоступних полів (а може бути, ще й кількох геттерів / сеттерів). Але справжня сила об’єктів полягає в тому, що вони можуть містити типи поведінки або операції над своїми даними. …

7
Передача об'єкта методу, який змінює об'єкт, чи це загальна (анти-) модель?
Я читаю про поширені запахи коду в книзі "Рефакторинг" Мартіна Фаулера . У цьому контексті мені було цікаво про шаблон, який я бачу в кодовій базі, і тим більше можна об'єктивно вважати його антидіаграмою. Шаблон - це те, коли об’єкт передається як аргумент одному чи декільком методам, всі вони змінюють …

5
Чи нормально функція зміни параметра
У нас є шар даних, який обертає Linq в SQL. У цьому шарі даних у нас є цей метод (спрощений) int InsertReport(Report report) { db.Reports.InsertOnSubmit(report); db.SubmitChanges(); return report.ID; } Після подання змін ідентифікатор звіту оновлюється значенням у базі даних, яку ми потім повертаємо. З боку виклику це виглядає так (спрощено) …

9
Як я можу визначити, чи програмне забезпечення є сильно пов'язаним?
Мені знайомий термін "сильно пов'язаний", але мені цікаво, якщо є ознаки (запахи коду), які можуть вказувати на те, що код сильно пов'язаний. Зараз я працюю з Java EE, але це стосується будь-якої мови. Редагувати: У разі, коли когось цікавить, ця стаття звучить корисно: Домагаючись якості коду: Остерігайтеся тісної пари! (IBM)

3
Знущання вводить обробку у виробничий код
Припускаючи інтерфейс IReader, реалізацію інтерфейсу ReaderImplementation IReader та клас ReaderConsumer, який споживає та обробляє дані з читача. public interface IReader { object Read() } Впровадження public class ReaderImplementation { ... public object Read() { ... } } Споживач: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { …

3
Коли добре використовувати паралельні масиви?
Я зіткнувся з кодом (новим кодом), який використовує те, що я називаю "Паралельні масиви" або "Списки". Значить, є 2 масиви, які містять пов’язані дані та пов'язані їх позицією (індексом) у масиві. Я вважаю це заплутаним і схильним до різного роду помилок. Я зазвичай пропоную рішення створити об'єкт, який називається Companyполями …

3
Я втрачаю інформацію про потік свого веб-додатка PHP, з цим стає важко працювати
Я займаюся програмуванням кілька років, і з часом дуже добре ознайомився з C # та JavaScript. У мене є кілька великих проектів на C # та JavaScript, з якими у мене немає проблем із навігацією. Нещодавно я розпочав проект PHP & AngularJS для роботи без попереднього досвіду роботи з PHP. …

7
Це запах коду, якщо ви часто створюєте об'єкт просто для виклику методу на ньому
Я успадкував базу коду, де існує багато коду, який має щось подібне: SomeDataAdapter sda = new SomeDataAdapter(); sda.UpdateData(DataTable updateData); І тоді sda більше не використовується. Це запах коду, який вказує на те, що ці методи повинні бути замість цього статичними методами класу?

5
Чи викликає «Util» класи викликає занепокоєння? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

7
Який найгірший код ви виправили, чим ви пишаєтесь? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

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

5
Скільки надмірності / надійності має впроваджувати складне програмне забезпечення?
Основна увага в цьому питанні: Деякі програми виконують "додаткову роботу", щоб збільшити ймовірність "в кінцевому рахунку успішного / задовільного" результату, незважаючи на одну або кілька внутрішніх помилок у програмному забезпеченні, що вимагає більш тривалого часу виконання, коли ці помилки трапляються. Все це відбувається без відома користувача, якщо результат був успішним. …

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