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

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

4
Найпростіший спосіб написати логічно процедурне програмне забезпечення мовою ОО
Я інженер-електромонтажник, і я не знаю, що, до біса, роблю. Будь ласка, збережіть майбутніх утримувачів мого коду. Останнім часом я працюю над низкою менших програм (в C #), функціональність яких логічно "процедурна". Наприклад, одна з них - це програма, яка збирає інформацію з різних баз даних, використовує цю інформацію для …

8
Увімкнення та вимкнення функцій інтерфейсу користувача (або інших) на основі дат - кодовий запах?
У нас в ASP.NET 2.0 написана жахлива система, якій потрібно додати деяку функціональність. Проблема полягає в тому, що певний продукт має функції інтерфейсу, які потрібно ввімкнути для бізнесу, розпочатого після певної дати (а інші вимкнено), тоді як сторінка має бути такою ж, як для існуючого бізнесу. Я наполягаю на перезаписі …

5
Написання Тестового кодексу проти уникнення умоглядної загальності
Я читав деякі повідомлення в блозі сьогодні вранці, і наткнувся на це : Якщо єдиним класом, який коли-небудь реалізує інтерфейс клієнта, є CustomerImpl, у вас насправді немає поліморфізму та замінюваності, оскільки на практиці нічого не можна замінити під час виконання. Це підроблена загальність. Це має сенс для мене, оскільки реалізація …

3
TDD Mock підтвердження дзвінків - це анти-шаблон?
Я займаюся TDD вже рік, відчуваю себе досить добре, люблю свої тестові набори та все. Однак я помітив, що останнім часом я багато робив знущання з перевірки дзвінків. Наприклад, у мене буде служба, в яку буде введено репозиторій - у своєму тесті на одиницю я передав би макет із сховища …

4
чи такий спосіб називати функцію поганою практикою?
У мене є такий код: public void moveCameraTo(Location location){ moveCameraTo(location.getLatitude(), location.getLongitude()); } public void moveCameraTo(double latitude, double longitude){ LatLng latLng = new LatLng(latitude, longitude); moveCameraTo(latLng); } public void moveCameraTo(LatLng latLng){ GoogleMap googleMap = getGoogleMap(); cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, INITIAL_MAP_ZOOM_LEVEL); googleMap.moveCamera(cameraUpdate); } Я думаю, що таким чином я усуваю відповідальність за те, …

4
Переробка функції, що повертає цілий код, який представляє багато різних статусів
Я успадкував якийсь жахливий код, до якого я включив короткий зразок нижче. Чи існує назва цього анти-шаблону? Які рекомендації щодо цього рефакторингу є? // 0=Need to log in / present username and password // 2=Already logged in // 3=Inactive User found // 4=Valid User found-establish their session // 5=Valid User …

3
Чистий код та гібридні об’єкти та особливість заздрості
Тому я нещодавно зробив деякі основні рефактори для свого коду. Однією з головних речей, які я намагався зробити, було розподіл моїх класів на об'єкти даних та робочі об'єкти. На це, серед іншого, надихнув цей розділ чистого коду : Гібриди Ця плутанина іноді призводить до нещасних гібридних структур даних, які є …

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

1
Якщо у вас є логіка, яку потрібно розділити між двома контролерами, де ви її зберігаєте?
У мене є набір функцій єдиного призначення, які мені потрібні в двох окремих контролерах. Зараз у мене просто є дублікат коду, і я хочу його позбутися. Цей код є частиною контролера і не належить до мого сервісного рівня. Куди б ви його поклали?
10 mvc  code-smell 

2
Тестування блоку: "Це запах коду, якщо ви рефакторинг і немає співробітників"?
Я читаю тестування мистецтва одиниці Роя Ошерове. Я в розділі 7.2 Писання ретельних тестів, де автор має цю примітку про запах коду: ПРИМІТКА: Коли ви переглядаєте внутрішній стан рефактора, який видно зовнішнім тестом, чи може це вважатися запахом коду (ознакою того, що щось може бути не так у дизайні чи …

2
Це кодовий запах, якщо об’єкт знає багато свого власника?
У нашому додатку Delphi 2007 ми використовуємо багато наступних конструкцій FdmBasic:=TdmBasicData(FindOwnerClass(AOwner,TdmBasicData)); FindOwnerClass переміщує ієрархію власника поточного компонента вгору, щоб знайти конкретний клас (у прикладі TdmBasicData). Отриманий об'єкт зберігається у змінній Field FdmBasic. Ми використовуємо це в першу чергу для передачі модулів даних. Приклад: Під час генерації звіту отримані дані стискаються …

4
Чому не рекомендується мати властивість лише для встановлення?
Сьогодні на роботі один з моїх колег переглянув мій код і запропонував я видалити властивість лише набору та використовувати метод замість цього. Оскільки ми обидва були зайняті іншими справами, він сказав мені переглянути Property Designрозділ із книги "Настанови рамкового дизайну". У книзі письменник просто сказав уникати: Властивості, у яких сеттер …

12
Оператор сумісного використання властивостей для C #
Оператор нульового поєднання в c # дозволяє скоротити код if (_mywidget == null) return new Widget(); else return _mywidget; Аж до: return _mywidget ?? new Widget(); Я постійно знаходжу, що корисним оператором, який я хотів би мати у C #, був би той, який дозволив вам повернути властивість об'єкта чи …
9 c#  code-smell  null 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.