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

64
Наличие флага, указывающего, должны ли мы выдавать ошибки

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

64
Данные конфигурации: таблица из одной строки в сравнении с таблицей имя-значение-пара

Допустим, вы пишете приложение, которое может быть настроено пользователем. Для хранения этих «данных конфигурации» в базе данных обычно используются два шаблона. Таблица однорядные CompanyName | StartFullScreen | RefreshSeconds | ... ---------------+-------------------+------------------+--------...

63
Почему побитовые операторы имеют более низкий приоритет, чем сравнения?

Может ли кто-нибудь объяснить обоснование, почему в группе самых популярных языков (см. Примечание ниже) операторы сравнения (==,! =, <,>, <=,> =) Имеют более высокий приоритет, чем побитовые операторы (&, |, ^ ~) Я не думаю, что я когда-либо сталкивался с использованием, где этот...

62
Разве MVC не против ООП?

Основная идея ООП заключается в объединении данных и поведения в единую сущность - объект. В процедурном программировании есть данные и отдельно алгоритмы, модифицирующие данные. В шаблоне Model-View-Controller данные и логика / алгоритмы размещаются в разных объектах, модели и контроллере...

61
Почему C # был создан с ключевыми словами «new» и «virtual + override» в отличие от Java?

В Java есть нет virtual, new, overrideключевые слова для определения метода. Таким образом, работа метода легко понять. Потому что, если DerivedClass расширяет BaseClass и имеет метод с таким же именем и тем же подписью BaseClass тогда наиважнейшим будет проходить время выполнения полиморфизма (...

61
Как мне справиться с анализом паралича?

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

61
Это преждевременная оптимизация для добавления индексов базы данных?

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

61
Разница между классом обслуживания и классом Helper [закрыто]

Я хотел бы знать, что отличает класс Service от служебного класса или вспомогательного класса? Класс только с базовыми методами вызывает dao's является службой? Разве использование классов Helper не нарушает...

60
Это плохая практика, чтобы пропустить экземпляры через несколько слоев?

При разработке моей программы я часто дохожу до того, что мне приходится передавать экземпляры объекта через несколько классов. Например, если у меня есть контроллер, который загружает аудиофайл, а затем передает его проигрывателю, а проигрыватель передает его в playerRunnable, который снова...

60
Почему языки не включают импликацию как логический оператор?

Это может быть странный вопрос, но почему во многих языках нет смысла в качестве логического оператора (Java, C, C ++, Python Haskell - хотя, как и в прошлом, пользовательские операторы добавили его тривиально, чтобы добавить его)? Я считаю, что логическое значение гораздо яснее писать (особенно в...

58
Действительно ли ловить общие исключения - это плохо?

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

57
Должен ли разработчик делать макеты пользовательского интерфейса, если в проекте нет дизайнеров?

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

57
Почему тип идет после имени переменной в современных языках программирования?

Почему почти во всех современных языках программирования (Go, Rust, Kotlin, Swift, Scala, Nim, даже последняя версия Python) типы всегда идут после имени переменной в объявлении переменной, а не раньше? Почему x: int = 42и нет int x = 42? Разве последнее не более читабельно, чем первое? Это просто...

56
Должен ли я возвращать статус HTTP 400 (неверный запрос), если параметр синтаксически правильный, но нарушает бизнес-правило?

Скажем, у меня есть конечная точка REST, которая принимает целое число в качестве параметра: /makeWaffles?numberOfWaffles=3 В этом случае я хочу, чтобы число было положительным, потому что я не могу сделать отрицательное число вафель (а запрос 0 вафель - пустая трата времени). Поэтому я хочу...

55
Является ли цикл обработки событий циклом for / while с оптимизированным опросом?

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

55
Почему использование MySQL для словарного сайта - плохая идея?

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

55
Что означает «пользователь не должен решать, является ли он администратором или нет. Привилегии или Система безопасности должны ».

В примере, использованном в этом вопросе, передается минимальное количество данных для функции, которая помогает определить, является ли пользователь администратором или нет. Один общий ответ был: user.isAdmin() Это побудило комментарий, который был повторен несколько раз и проголосовал много раз:...

55
В каких случаях меньше кода, а не лучше? [закрыто]

В последнее время я переработал некоторый код на работе, и я подумал, что хорошо поработал. Я опустил 980 строк кода до 450 и сократил вдвое количество классов. Показывая это моим коллегам, некоторые не соглашались, что это улучшение. Они сказали - «меньше строк кода не обязательно лучше» Я вижу,...

55
Должен ли получатель генерировать исключение, если его объект имеет недопустимое состояние?

Я часто сталкиваюсь с этой проблемой, особенно в Java, даже если я думаю, что это общая проблема ООП. То есть: поднятие исключения выявляет проблему дизайна. Предположим, что у меня есть класс, который имеет String nameполе и String surnameполе. Затем он использует эти поля, чтобы составить полное...

54
Хранение переупорядочиваемого списка в базе данных

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