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

76
Должны ли мы разрабатывать программы, чтобы случайно убить себя? [закрыто]

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

76
Почему арифметическое переполнение игнорируется?

Вы когда-нибудь пытались суммировать все числа от 1 до 2 000 000 на вашем любимом языке программирования? Результат легко вычислить вручную: 2 000 001 000 000, что примерно в 900 раз превышает максимальное значение 32-разрядного целого числа без знака. C # распечатывает -1453759936- отрицательное...

74
Почему многие разработчики программного обеспечения нарушают принцип открытого / закрытого?

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

74
Как справиться со случайной сложностью в программных проектах

Когда Мюррея Гелл-Манна спросили, как Ричарду Фейнману удалось решить так много сложных проблем, Гелл-Манн ответил, что у Фейнмана есть алгоритм: Запишите проблему. Думай очень усердно. Запишите решение. Гелл-Манн пытался объяснить, что Фейнман был другим человеком, решающим проблемы, и не было...

73
Разработка REST API по URI против строки запроса

Допустим, у меня есть три ресурса, которые связаны следующим образом: Grandparent (collection) -> Parent (collection) -> and Child (collection) Выше показано отношение между этими ресурсами примерно так: каждый дедушка может сопоставить с одним или несколькими родителями. Каждый родитель...

73
Советы по разработке веб-приложения со сроком службы более 40 лет

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

73
Должен ли я идти по обычному пути или рано провалиться?

Из книги « Полный код» приводится следующая цитата: «Положите нормальный случай после, ifа не после else» Это означает, что в elseслучае должны быть указаны исключения / отклонения от стандартного пути . Но Прагматичный Программист учит нас «рано падать» (стр. 120). Какому правилу я должен...

72
SQL: пустая строка против значения NULL

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

72
Зачем использовать частичные классы?

В моем понимании partialключевое слово делает только то, что позволяет разделить класс между несколькими исходными файлами. Есть ли причина для этого, кроме как для организации кода? Я видел, как это используется в сгенерированных классах пользовательского интерфейса. Кажется, плохая причина для...

70
Когда использовать абстрактные классы вместо интерфейсов с методами расширения в C #?

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

69
Мой предложенный дизайн обычно хуже, чем у моего коллеги - как мне стать лучше? [закрыто]

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

69
«Все это карта», я делаю это правильно?

Я смотрел выступление Стюарта Сьерры « Мышление в данных » и использовал одну из идей в качестве принципа дизайна в этой игре, которую я делаю. Разница в том, что он работает в Clojure, а я работаю в JavaScript. Я вижу некоторые основные различия между нашими языками в этом: Clojure - идиоматически...

69
Почему коллекции Java были реализованы с помощью «дополнительных методов» в интерфейсе?

Во время моей первой реализации, расширяющей инфраструктуру Java-коллекции, я был очень удивлен, увидев, что интерфейс коллекции содержит методы, объявленные как необязательные. Ожидается, что разработчик выдаст исключение UnsupportedOperationException, если оно не поддерживается. Это сразу...

67
Как некоторые языковые сообщества (например, Ruby и Python) смогли предотвратить фрагментацию, в то время как другие (например, Lisp или ML) не смогли этого сделать?

Термин «Лисп» (или «Лисп-подобный») является зонтиком для множества разных языков, таких как Common Lisp, Scheme и Arc. В других языковых сообществах, как и в ML, наблюдается аналогичная фрагментация Тем не менее, и Ruby, и Python сумели избежать этой участи, когда инновации происходили чаще в...

66
Если функции должны выполнить нулевые проверки перед выполнением намеченного поведения, это плохой дизайн?

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

65
Программирование и повсеместный язык (DDD) в неанглийском домене

Я знаю, что здесь уже есть некоторые вопросы, которые тесно связаны с этой темой, но ни один из них не использует в качестве отправной точки вездесущий язык, поэтому я думаю, что это оправдывает этот вопрос. Для тех, кто не знает: Ubiquitous Language - это концепция определения (разговорного и...

65
EAV - это действительно плохо во всех сценариях?

Я подумываю использовать модель сущность-атрибут-значение (EAV) для некоторых вещей в одном из проектов, но все вопросы об этом в Stack Overflow заканчиваются ответами, называющими EAV анти-паттерном. Но мне интересно, так ли это во всех случаях? Допустим, сущность продукта магазина, у него есть...

65
Что такое инверсия управления, и когда я должен ее использовать?

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

65
Синтаксический дизайн. Зачем использовать круглые скобки, если аргументы не передаются?

Во многих языках синтаксис function_name(arg1, arg2, ...)используется для вызова функции. Когда мы хотим вызвать функцию без каких-либо аргументов, мы должны это сделать function_name(). Я нахожу странным, что компилятор или интерпретатор сценариев потребовал ()бы успешного обнаружения его как...

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

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