Вопросы с тегом «code-smell»

Определение того, что является и не является «запахом кода», субъективно и зависит от языка, разработчика и методологии разработки. Прежде чем спросить, является ли какая-то техника «запахом кода», спросите себя, каковы будут последствия для вашего конкретного проекта, если вы будете использовать эту технику. Просто спросить, является ли что-то «запахом кода» или нет, слишком субъективно.

8
Есть ли лучший способ использовать словари C #, чем TryGetValue?
Я часто просматриваю вопросы в Интернете, и многие решения включают словари. Однако всякий раз, когда я пытаюсь реализовать их, я получаю этот ужасный запах в своем коде. Например, каждый раз, когда я хочу использовать значение: int x; if (dict.TryGetValue("key", out x)) { DoSomethingWith(x); } Это 4 строки кода, чтобы по …

9
Является ли слишком много утверждений кода запахом?
Я действительно влюбился в модульное тестирование и TDD - я заражен тестом. Тем не менее, модульное тестирование обычно используется для общедоступных методов. Хотя иногда мне приходится проверять некоторые предположения-утверждения и в частных методах, потому что некоторые из них «опасны», и рефакторинг не может помочь в дальнейшем. (Я знаю, что инфраструктуры …

7
Должны ли абстракции снижать читабельность кода?
Хороший разработчик, с которым я работаю, недавно рассказал мне о некоторых трудностях, с которыми он столкнулся при реализации функции в некотором коде, который мы унаследовали; он сказал, что проблема была в том, что за кодом было трудно следовать. Исходя из этого, я посмотрел вглубь продукта и понял, как трудно было …

4
Почему классы данных считаются запахом кода?
В этой статье утверждается, что класс данных - это «запах кода». Причина: Это нормально, когда недавно созданный класс содержит только несколько открытых полей (и, возможно, даже несколько получателей / установщиков). Но истинная сила объектов в том, что они могут содержать типы поведения или операции над своими данными. Почему для объекта …

7
Передача объекта в метод, который изменяет объект, является ли это обычным (анти) шаблоном?
Я читаю об общих запахах кода в книге Рефакторинга Мартина Фаулера . В этом контексте мне было интересно узнать о паттерне, который я вижу в кодовой базе, и можно ли объективно рассматривать его как анти-паттерн. Это шаблон, в котором объект передается в качестве аргумента одному или нескольким методам, каждый из …

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

9
Как я могу определить, сильно ли связано программное обеспечение?
Я знаком с термином «сильно связанные», но мне любопытно, есть ли признаки (запахи кода), которые могут указывать на то, что код тесно связан. В настоящее время я работаю с Java EE, но это может относиться к любому языку. Редактировать: Если кому-то интересно, эта статья звучит полезно: в поисках качества кода: …

3
Насмешка вводит обработку в производственный код
Предполагая интерфейс IReader, реализацию интерфейса IReader ReaderImplementation и класс ReaderConsumer, который потребляет и обрабатывает данные из считывателя. public interface IReader { object Read() } Реализация public class ReaderImplementation { ... public object Read() { ... } } Потребитель: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { …

3
Когда можно использовать параллельные массивы?
Я сталкивался с кодом (новым кодом), который использует то, что я называю 'Parallel Arrays' или Lists. Это означает, что есть 2 массива, которые содержат связанные данные и связаны их положением (индексом) в массиве. Я считаю это запутанным и подверженным всевозможным ошибкам. Решение, которое я обычно предлагаю, состоит в создании объекта …

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.