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

84
Богатые доменные модели - как именно вписывается поведение?

В дебатах моделей предметной области Rich против Anemic Интернет полон философских советов, но не хватает авторитетных примеров. Цель этого вопроса - найти четкие рекомендации и конкретные примеры правильных моделей проектирования на основе доменов. (В идеале в C #.) Для реального примера эта...

84
Почему числа с плавающей запятой по-прежнему являются частью языка Java, когда вместо них чаще всего используются двойные числа?

В каждом месте, где я смотрел, написано, что doubleоно превосходит floatпочти во всех отношениях. floatбыл сделан устаревшим doubleв Java, так почему он все еще используется? Я много программирую на Libgdx, и они вынуждают вас использовать float(deltaTime и т. Д.), Но мне кажется, что с ними...

84
Считается ли «плохой практикой» проверка содержимого / кодировки файла в модульных тестах?

Немного контекста: ранее сегодня мне пришлось обновить некоторый код SQL, предоставленный другим моим коллегой, и, поскольку это довольно большой скрипт, он хранится в виде отдельного файла (который затем читается и выполняется во время выполнения). При этом я случайно представил две ошибки,...

84
Это плохая практика для обеспечения порядка выполнения для модульных тестов?

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

83
Как быть хорошим гражданином при сканировании веб-сайтов?

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

83
Каковы недостатки упругих вкладок? [закрыто]

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

83
Что не так с Unlicense?

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

83
Я могу написать код ... но не могу хорошо спроектировать. Какие-либо предложения? [закрыто]

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

83
Вернуть магическое значение, выбросить исключение или вернуть ложь при неудаче?

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

83
Какую помощь я должен оказать во время технических интервью? [закрыто]

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

83
Как разработчики находят время, чтобы оставаться на вершине новейших технологий? [закрыто]

Я был внештатным веб-разработчиком до 2004 года, когда я начал идти по пути управления, но решил снова попытаться вернуться в разработку (в частности, веб-приложения для мобильных устройств на JavaScript и HTML5), и у меня сложилось впечатление, что я действительно хорош в этом. Этим и аналогичным...

83
Чистые комментарии к коду против документации класса

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

83
Является ли DRY врагом управления программными проектами?

Одним из самых основных и общепринятых принципов разработки программного обеспечения является СУХОЙ (не повторяйте себя). Также ясно, что большинство программных проектов требуют какого-то управления. Каковы задачи, которыми легко управлять (оценка, график, контроль)? Верно, повторяющиеся задачи,...

83
Разве юнит-тесты не должны использовать мои собственные методы?

Сегодня я смотрел видео " Основы JUnit ", и автор сказал, что при тестировании определенного метода в вашей программе вы не должны использовать другие ваши собственные методы в этом процессе. Чтобы быть более конкретным, он говорил о тестировании некоторого метода создания записи, который принимает...

82
Разве плохо использовать символы Юникода в именах переменных? [закрыто]

Недавно я пытался реализовать алгоритм ранжирования AllegSkill для Python 3. Вот как выглядит математика: Нет, правда. Это то, что я написал: t = (µw-µl)/c # those are used in e = ε/c # multiple places. σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5 Я действительно думал , что он...

82
Я не понимаю аргументы против перегрузки операторов [закрыто]

Я только что прочитал одну из статей Джоэла, в которых он говорит: В общем, я должен признать, что я немного боюсь языковых особенностей, которые скрывают вещи . Когда вы видите код i = j * 5; … В C вы знаете, по крайней мере, что j умножается на пять, а результаты сохраняются в i. Но если вы...

82
Выбор между двумя программистами: опыт против страсти [закрыто]

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

82
Как лучше всего найти отличного программиста на собеседовании?

В обстановке собеседования: Как лучше всего определить, когда кто-то является отличным программистом . Под этим я подразумеваю, что он один из тех, кто в 10-15 раз более эффективен / быстр / лучше, чем его сверстники по направлению к нижнему краю спектра. Многие из нас слышали о проблеме FizzBuzz...

82
Разработчики Java сознательно отказались от RAII?

Как давний программист на C #, я недавно узнал больше о преимуществах Resource Acquisition Is Initialization (RAII). В частности, я обнаружил, что идиома C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } имеет эквивалент C ++: { DbConnection dbConn(connStr); // do...