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

44
Является ли дизайн, управляемый доменом, анти-SQL шаблоном?

Я погружаюсь в дизайн, управляемый доменом (DDD), и хотя я углубляюсь в это, есть некоторые вещи, которые я не понимаю. Насколько я понимаю, главное - это отделить доменную логику (бизнес-логику) от инфраструктуры (БД, файловая система и т. Д.). Что мне интересно, так это то, что происходит, когда...

44
Распространение исключений: когда я должен ловить исключения?

MethodA вызывает MethodB, который, в свою очередь, вызывает MethodC. Нет обработки исключений в MethodB или MethodC. Но в MethodA есть обработка исключений. В MethodC происходит исключение. Теперь это исключение всплывает в методе А, который обрабатывает его соответствующим образом. Что не так с...

44
Почему наихудший случай для этой функции O (n ^ 2)?

Я пытаюсь научить себя, как рассчитать нотацию BigO для произвольной функции. Я нашел эту функцию в учебнике. В книге утверждается, что функция O (n 2 ). Это объясняет, почему это так, но я изо всех сил стараюсь следовать. Интересно, сможет ли кто-нибудь показать мне математику, почему это так? По...

43
Как вы делитесь своим ремеслом с не программистами?

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

43
Самый читаемый способ форматирования длинных условий? [закрыто]

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

43
Как вы остаетесь мотивированными для хобби проектов? [закрыто]

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

43
Приводит ли использование выражений LINQ и Lambda к менее читаемому коду? [закрыто]

У меня беседа с коллегой по Linq, я напишу здесь: Сотрудник: Давайте будем честными здесь. Синтаксис Linq отстой. Это сбивает с толку и не интуитивно понятно. Я: да ладно, более запутанно, чем T-SQL? Сотрудник: да. Я: он имеет те же основные части, выберите, где и из Сотрудник: Linq, для меня,...

43
Есть ли причина использовать классы «старых данных»?

В унаследованном коде я иногда вижу классы, которые являются ничем иным, как обертками для данных. что-то типа: class Bottle { int height; int diameter; Cap capType; getters/setters, maybe a constructor } Мое понимание ОО состоит в том, что классы являются структурами для данных и методами работы с...

43
Твердые принципы против ЯГНИ

Когда твердые принципы становятся ЯГНИ? Как программисты, мы постоянно идем на компромиссы между сложностью, ремонтопригодностью, временем сборки и так далее. Среди прочего, два из самых умных руководящих принципов для выбора - это, на мой взгляд, принципы SOLID и YAGNI. Если вам это не нужно; не...

43
Является ли один объект конфигурации плохой идеей?

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

43
Можете ли вы быть менеджером и программистом одновременно? [закрыто]

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

43
Прототипирование против чистого кода на ранних стадиях

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

43
Каковы лучшие практики в отношении неподписанных целых?

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

43
Каково происхождение и значение фразы «лямбда-предельная»?

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

43
Безопаснее ли хешировать пароль несколько раз?

Я несколько раз читал, что при хранении паролей рекомендуется использовать двойное хеширование строк (например, с md5, затем с sha1, очевидно, с солями). Я предполагаю, что первый вопрос, "действительно ли это правильно?" Если нет, то, пожалуйста, отклоните остальную часть этого вопроса :) Причина,...

43
Соответствует ли шаблон ActiveRecord / поддерживает принципы проектирования SOLID?

Меня интересует, поощряет или не поощряет ли шаблон ActiveRecord, известный благодаря Ruby on Rails, использование принципов проектирования SOLID . Например, мне кажется, что объекты ActiveRecord содержат как доменную логику, так и логику персистентности, что является нарушением единой...

43
Триггеры SQL и когда или когда их не использовать.

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

43
Рекомендуемый код состояния HTTP REST для «достигнутого лимита запроса»

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

43
Это плохая практика собеседования, когда кандидаты пишут реализацию связного списка? [закрыто]

Читая этот сайт и ТАК, я видел много историй вопросов и ответов на собеседования, в которых говорилось, что кандидат должен был создать связанный список с нуля. Обычно это упражнение «дай мне» для кандидатов на роль в программировании, таких как написание FizzBuzz. Идея состоит в том, что если...

43
Дата как номер версии программного обеспечения

Разработчики программного обеспечения обычно не используют дату в качестве номера версии, хотя формат ГГГГММДД (или его отклонения) выглядит достаточно надежным для использования. Что-то не так с этой схемой? Или это применимо только к ограниченным «типам» программного обеспечения (например, для...