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

36
Почему все помещают контроллеры в одну папку, а представления в другую?

Я собираюсь взять изгиб asp и в инфраструктуру MVC, Asp.net MVC или Нэнси. Куда бы я ни пошел, я вижу папки для контроллеров / модулей и папки для представлений. Является ли это просто рефлексом Павлова, приводящим вещи в порядок по типу, или действует какая-то более глубокая мудрость? У меня есть...

36
RESTful API. Должен ли я вернуть объект, который был создан / обновлен?

Я разрабатываю веб-сервис RESTful с использованием WebApi, и мне было интересно, какие HTTP-ответы и тела ответов нужно возвращать при обновлении / создании объектов. Например, я могу использовать метод POST для отправки некоторого JSON в веб-сервис, а затем создать объект. Рекомендуется ли затем...

36
Должны ли возможности объекта идентифицироваться исключительно интерфейсами, которые он реализует?

isОператор C # и Javainstanceof позволяют вам ветвиться на интерфейсе (или, что еще более неуклюже, на его базовом классе), реализованном экземпляром объекта. Уместно ли использовать эту функцию для ветвления высокого уровня на основе возможностей, предоставляемых интерфейсом? Или базовый класс...

36
Каковы функциональные эквиваленты операторов обязательного разрыва и других проверок цикла?

Допустим, у меня есть логика ниже. Как написать это в функциональном программировании? public int doSomeCalc(int[] array) { int answer = 0; if(array!=null) { for(int e: array) { answer += e; if(answer == 10) break; if(answer == 150) answer += 100; } } return answer; } Примеры в большинстве блогов,...

36
Является ли «композиция над наследством» нарушением «сухого принципа»?

Например, предположим, у меня есть класс для расширения других классов: public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } и некоторые подклассы: public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { }...

36
Достаточно ли того, чтобы методы отличались только по имени аргумента (не по типу)?

Достаточно ли, чтобы методы отличались только по имени аргумента (не по типу) или лучше назвать его более явно? Так , например T Find<T>(int id)против T FindById<T>(int id). Есть ли веская причина называть его более явно (т.е. добавлять ById) вместо сохранения только имени аргумента? Я...

35
Действительно ли языки с динамической типизацией заслуживают всей критики? [закрыто]

Я прочитал несколько статей в Интернете о выборе языка программирования на предприятии. В последнее время популярными стали многие языки с динамической типизацией, например, Ruby, Python, PHP и Erlang. Но многие предприятия все еще используют статические типизированные языки, такие как C, C ++, C #...

35
Преимущества объектно-ориентированного программирования [закрыто]

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

35
Почему разработчики должны иметь частные офисы?

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

35
Программирование с дислексией [закрыто]

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

35
Исправлять ошибки или ждать, пока клиент их найдет?

Другие люди исправляют ошибки, когда видят их, или они ждут, пока не произойдет сбой / потеря данных / люди не умрут, прежде чем их исправлять? Пример 1 Customer customer = null; ... customer.Save(); Код явно ошибочен, и его нельзя обойти - он вызывает метод с нулевой ссылкой. Это не происходит...

35
Должны ли вы версия веб-приложений?

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

35
Лучший механизм для генерации лицензионных ключей [закрыто]

Какие методы / библиотеки / инструменты люди предложили бы для генерации лицензионных ключей (те замечательные вещи AAAAA-AAAAA-AAAAA-AAAAA-AAAAA, которые вы вставили при регистрации программного обеспечения)? Есть ли какие-либо ошибки, которые нужно учитывать при их реализации? (На данный момент...

35
Должен ли отладочный код всегда оставаться на месте или добавляться только при отладке и удаляться при обнаружении ошибки?

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

35
Как вы отвечаете на вопрос «где вы видите себя через 5 лет?» [Закрыто]

На что вербовщики ожидают, что вы ответите, когда они спросят: «Где вы видите себя через 5 лет?» Что-то типа: Я хочу улучшить свои технические навыки ... бла-бла-бла ... архитектор? Это просто для проверки ваших амбиций и если вы не собираетесь уходить через...

35
Должны ли новички использовать автозаполнение IDE (Intellisense)? [закрыто]

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

35
Методология документирования существующей кодовой базы

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