Программная инженерия

68
Это правильное использование метода сброса Mockito?

У меня есть закрытый метод в моем тестовом классе, который создает часто используемый Barобъект. BarКонструктор вызывает someMethod()метод в моем издевались объекта: private @Mock Foo mockedObject; // My mocked object ... private Bar getBar() { Bar result = new Bar(mockedObject); // this calls...

68
Как функциональные языки обрабатывают случайные числа?

То , что я имею в виду , что это то , что в почти каждом уроке я читал о функциональных языках, является то , что одна из самых больших вещей , о функциях, в том , что при вызове функции с теми же параметрами в два раза, вы будете всегда в конечном итоге с тот же результат. Как же тогда вы создаете...

68
Написание тестов для существующего кода

Предположим, у кого-то была относительно большая программа (скажем, 900k SLOC на C #), все тщательно прокомментированы / задокументированы, хорошо организованы и работают хорошо. Вся база кода была написана одним старшим разработчиком, который больше не работает в компании. Весь код тестируется как...

68
Почему есть частные статические методы?

Я просто хотел прояснить вопрос, который у меня есть. Какой смысл иметь приватный статический метод в отличие от обычного метода с приватной видимостью? Я бы подумал, что преимущество статического метода состоит в том, что он может быть вызван без экземпляра класса, но, поскольку его закрытый...

68
Является ли хорошей практикой объявлять переменные экземпляра как None в классе в Python?

Рассмотрим следующий класс: class Person: def __init__(self, name, age): self.name = name self.age = age Мои коллеги имеют тенденцию определять это так: class Person: name = None age = None def __init__(self, name, age): self.name = name self.age = age Основная причина этого заключается в том, что...

68
Должны ли мы включить папку Nuget PACKAGE в систему контроля версий?

я бы хотел знать В проекте C # или VB.NET мы должны включить папку PACKAGE (папку пакета nugget, которая создается в корне моего проекта, содержащего файлы nupkg и другое содержимое) в наш репозиторий контроля версий (например,...

68
Проблемы с именами: следует ли переименовать «ISomething» в «Something»? [закрыто]

В главе «Дядя Боб» об именах в « Чистом коде» рекомендуется избегать кодировок в именах, главным образом в отношении венгерских обозначений. Он также особо упоминает удаление Iпрефикса из интерфейсов, но не показывает примеров этого. Давайте предположим следующее: Использование интерфейса в...

68
Должен ли я записать ошибку, которую я обнаружил и исправил?

Я предполагаю, что это обычная ситуация: я тестирую некоторый код, обнаруживаю ошибку, исправляю ее и фиксирую исправление ошибки в хранилище. Предполагая, что над этим проектом работает много людей, я должен сначала создать отчет об ошибке, назначить его себе и сослаться на него в сообщении о...

68
Было бы плохой идеей периодически запускать средства форматирования кода в хранилище?

Я подумываю о создании задания cron, которое проверяет код, запускает на нем средства форматирования кода и, если что-то изменяется, фиксирует изменения и возвращает их обратно. Большинство проектов, использующих автоформаторы, помещают их в ловушку git, но выполнение этого автоматически каждые...

68
Что я могу сделать для разработчиков, которые не могут изучать Git? [закрыто]

контекст Моя команда из 8 инженеров в настоящее время переходит на Git (из Subversion) для нашей следующей большой вещи. У нас есть горстка «более опытных» инженеров, которым очень трудно подобрать Git. Мне задают одни и те же тривиальные вопросы, несмотря на то, что я предоставил руководства...

68
Что такое правильное использование downcasting?

Понижение означает преобразование из базового класса (или интерфейса) в подкласс или листовой класс. Примером снижения может быть, если вы приведете System.Objectк другому типу. Даункастинг непопулярен, может быть, пахнет кодом: доктрина объектно-ориентированного подхода предпочитает, например,...

68
Предотвращение компиляции устаревшего кода после достижения крайнего срока [закрыто]

В моей команде мы убирали много старых вещей в большом монолитном проекте (целые классы, методы и т. Д.). Во время этих задач по очистке мне было интересно, есть ли какая-нибудь аннотация или библиотека более привлекательная, чем обычно @Deprecated. Это @FancyDeprecatedдолжно помешать успешной...

68
Почему менеджер пакетов предпочитает библиотеку?

Когда я думаю о плюсах и минусах папки статической библиотеки и менеджера пакетов, я чувствую, что папка библиотеки - лучший подход. Плюсы, которые я вижу с папкой библиотеки: Нет необходимости во внешнем инструменте для управления пакетами. Нет подключения к интернету требуется построить. Быстрая...

67
Чем IntelliJ лучше, чем Eclipse? [закрыто]

Я знаю, что были такие вопросы, как Ваш любимый редактор / IDE? , но никто из них не ответил на этот вопрос: зачем тратить деньги на IntelliJ, когда Eclipse бесплатен? Я лично большой поклонник IntelliJ, но я действительно не пробовал Eclipse. Я использовал IntelliJ для проектов, которые были Java,...

67
Зачем собирать мусор, если есть умные указатели

В наши дни так много языков собирают мусор. Это даже доступно для C ++ третьими лицами. Но в C ++ есть RAII и умные указатели. Так какой смысл использовать сборщик мусора? Это делает что-то дополнительное? И в других языках, таких как C #, если все ссылки обрабатываются как интеллектуальные...

67
Чистый читаемый код против быстрого трудно читаемого кода. Когда пересекать черту?

Когда я пишу код, я всегда стараюсь сделать мой код максимально чистым и читабельным. Время от времени наступает момент, когда вам нужно пересечь черту и перейти от красивого чистого кода к более уродливому коду, чтобы сделать его быстрее. Когда это нормально, чтобы пересечь эту...

67
Каковы некоторые шаблоны и анти-шаблоны ведения журнала приложений? [закрыто]

Недавно мне пришлось исследовать полевую проблему для нашего крупного корпоративного приложения. Я был в ужасе от журналов, которые мне приходилось прочесывать, пытаясь найти проблему, и в конце дня журналы не помогли вообще идентифицировать / изолировать ошибку. Примечание: я понимаю, что не все...

67
Почему в запросе SQL выбирается перед From? [закрыто]

Это то, что меня очень беспокоило в школе. Пять лет назад, когда я изучал SQL, я всегда задавался вопросом, почему мы сначала указываем поля, которые хотим, а затем, откуда мы их хотим. Согласно моей идее, мы должны написать: From Employee e Select e.Name Так почему же норма говорит следующее?...

67
Как я могу определить количество технической задолженности, существующей в проекте?

Кто-нибудь знает, есть ли какой-то инструмент для обозначения числа технических долгов кодовой базы, в качестве метрики кода? Если нет, кто-нибудь знает алгоритм или набор эвристики для него? Если ни одна из этих вещей не существует до сих пор, я бы заинтересовался идеями о том, как начать такую...

67
Как некоторые языковые сообщества (например, Ruby и Python) смогли предотвратить фрагментацию, в то время как другие (например, Lisp или ML) не смогли этого сделать?

Термин «Лисп» (или «Лисп-подобный») является зонтиком для множества разных языков, таких как Common Lisp, Scheme и Arc. В других языковых сообществах, как и в ML, наблюдается аналогичная фрагментация Тем не менее, и Ruby, и Python сумели избежать этой участи, когда инновации происходили чаще в...