Вопросы с тегом «d»

410
Должен ли я намеренно прервать сборку при обнаружении ошибки в производстве?

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

265
Почему закрытые поля недостаточно защищены?

privateПолезна ли видимость полей / свойств / атрибутов класса? В ООП рано или поздно вы создадите подкласс класса, и в этом случае полезно понять и иметь возможность полностью изменить реализацию. Одна из первых вещей, которые я делаю, когда делаю подкласс класса, - это изменение набора...

250
Если неизменные объекты хороши, почему люди продолжают создавать изменяемые объекты? [закрыто]

Если неизменяемые объекты¹ хороши, просты и дают преимущества в параллельном программировании, почему программисты продолжают создавать изменяемые объекты2? У меня есть четыре года опыта в программировании на Java, и, как я понимаю, первое, что люди делают после создания класса, - это генерирование...

243
Должны ли мы избегать создания объектов в Java?

Коллега сказал мне, что в Java создание объекта является самой дорогой операцией, которую вы можете выполнить. Поэтому я могу только заключить, чтобы создать как можно меньше объектов. Кажется, это несколько противоречит цели объектно-ориентированного программирования. Если мы не создаем объекты,...

227
Должны ли имена пакетов быть единственными или множественными?

Часто, особенно в библиотеках, пакеты содержат классы, которые организованы вокруг единой концепции. Примеры: xml, sql, user, config, db . Я думаю, что мы все вполне естественно чувствуем, что эти пакеты правильны в единственном числе . com.myproject. xml. Элемент com.myproject. SQL .Connection...

210
Зачем нам нужны частные переменные?

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

199
При использовании принципа единой ответственности, что представляет собой «ответственность»?

Кажется довольно ясным, что «принцип единой ответственности» не означает «только одно». Вот для чего нужны методы. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID);...

178
Почему автоматическое тестирование не проходит в моей компании?

Мы несколько раз пытались внедрить автоматизированное тестирование для разработчиков в моей компании. Наша команда QA использует Selenium для автоматизации тестов пользовательского интерфейса, но я всегда хотел представить юнит-тесты и интеграционные тесты. В прошлом, каждый раз, когда мы пытались...

175
Когда оправдываются геттеры и сеттеры?

Геттеры и сеттеры часто критикуются за то, что они не являются правильными. С другой стороны, большая часть кода OO, который я видел, содержит обширные методы получения и установки. Когда получатели и установщики оправданы? Вы пытаетесь избежать их использования? Они чрезмерно используются в целом?...

168
Разница между REST и CRUD

Я изучил REST, и это очень похоже на CRUD (из того, что я читал о CRUD). Я знаю, что они разные, и мне интересно, если думать, что они похожи, значит, я их не понимаю. Это то, что REST - это «суперсет» CRUD? Все ли CRUD делает и...

150
SOLID Принципы и структура кода

На недавнем собеседовании я не смог ответить на вопрос о SOLID - помимо предоставления основного значения различных принципов. Это действительно беспокоит меня. Я потратил пару дней на то, чтобы покопаться и еще не нашел удовлетворительного резюме. Вопрос интервью был: Если бы вы посмотрели на...

147
Когда вы пишете «настоящий» код в TDD?

Все примеры, которые я читал и видел на обучающих видео, имеют упрощенные примеры. Но что я не вижу, как я делаю «настоящий» код после того, как я становлюсь зеленым. Это часть "Refactor"? Если у меня есть довольно сложный объект со сложным методом, и я пишу свой тест и минимальный минимум, чтобы...

143
Откуда взялась эта концепция «отдавать предпочтение композиции перед наследованием»?

В последние несколько месяцев, мантра «композиция благосклонности вместо наследования», кажется, возникла из ниоткуда и стала почти своего рода мемом в сообществе программистов. И каждый раз, когда я вижу это, я немного озадачен. Это как кто-то сказал: «Скорее тренируйся, чем молотки». По моему...

140
Являются ли плохие методы программирования типичными для индустрии программного обеспечения? [закрыто]

Я только начал свою первую работу в качестве разработчика программного обеспечения более месяца назад. Все, что я узнал об ООП, ТВЕРДОМ , СУХОМ , ЯГНИ, шаблонах проектирования, SRP и т. Д., Можно выбросить из окна. Они используют C # .NET Webforms и делают почти все внутри Code Behind с очень...

139
Есть ли такая вещь, как иметь слишком много юнит-тестов?

Мне было поручено написание модульных тестов для существующего приложения. После завершения моего первого файла у меня есть 717 строк тестового кода для 419 строк исходного кода. Будет ли это соотношение неуправляемым по мере увеличения покрытия кода? Мое понимание модульного тестирования состояло...

139
Когда уместно не проводить модульное тестирование?

Я работаю в небольшой компании в качестве индивидуального разработчика. На самом деле я единственный разработчик в компании. У меня есть несколько (относительно) крупных проектов, которые я написал и регулярно поддерживаю, и ни у одного из них нет тестов для их поддержки. Когда я начинаю новые...

135
Лучше ли возвращать NULL или пустые значения из функций / методов, где возвращаемое значение отсутствует?

Я ищу рекомендацию здесь. Я борюсь с тем, лучше ли возвращать NULL или пустое значение из метода, когда возвращаемое значение отсутствует или не может быть определено. Возьмите следующие два метода в качестве примера: string ReverseString(string stringToReverse) // takes a string and reverses it....

135
Шаблоны дизайна не одобряются?

У меня была беседа с одним из наших старших разработчиков, который работает в этом бизнесе уже 20 лет. Он очень хорошо известен в Онтарио по блогам, которые он пишет. Странная вещь состоит в том, что он сказал мне: он сказал, что есть кусок кода, с которым кошмарно работать, потому что он написан...

135
Что С ++ делает лучше, чем D?

Недавно я изучал D и начинаю знакомиться с языком. Я знаю, что он предлагает, я еще не знаю, как все использовать, и я не знаю много о D идиомах и так далее, но я учусь. Мне нравится D. Это хороший язык, который в некотором роде является огромным обновлением C, и все сделано хорошо. Ни одна из...