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

32
Хорошо разработанное / высококачественное программное обеспечение с открытым исходным кодом [закрыто]

Я учусь на уроке дизайна программного обеспечения, где мне следует выбрать программное обеспечение с открытым исходным кодом для анализа с точки зрения дизайна программного обеспечения. Это должен быть большой проект: не менее 100 000 строк кода. Я действительно хотел бы выбрать программное...

32
Использование GUID в качестве первичного ключа

Я обычно использую идентификаторы автоинкремента как первичные ключи в базах данных. Я пытаюсь узнать о преимуществах использования GUID. Я прочитал эту статью: https://betterexplained.com/articles/the-quick-guide-to-guids/ Я понимаю, что эти GUID используются для идентификации объектов на уровне...

32
Моделирование имени и фамилии отдельно

Какие аргументы следует учитывать при проектировании новой системы и нужно ли хранить имя человека как одно поле или отдельно как имя / фамилию? Плюсы для одного поля: Упрощенный интерфейс Нет двусмысленности при попытке ввести имя человека, у которого очень длинное имя (часто неясно, какая фамилия...

32
Как разработать масштабируемую систему уведомлений? [закрыто]

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

32
Должен ли разработчик спорить с ненужными или вредными функциями?

Что такое хорошее отношение разработчиков при обсуждении новых функций, а именно некритических / сомнительных функций? Скажем, вы разрабатываете какой-то Java-подобный язык, и босс говорит: «Нам нужны указатели, чтобы разработчики могли напрямую манипулировать объектной памятью! Должен ли...

32
Каков принцип наименьшего удивления?

В программировании то, что называется принципом наименьшего удивления? Как эта концепция связана с разработкой хороших API? Это применимо только к объектно-ориентированному программированию или оно проникает и в другие методы программирования? Связано ли это с принципом «делать что-то в своем...

32
Что делать, если у меня нет хороших идей для реализации функции? [закрыто]

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

31
Реализация интерфейса, когда вам не нужно одно из свойств

Довольно просто. Я реализую интерфейс, но есть одно свойство, которое не нужно для этого класса и, фактически, не должно использоваться. Моей первоначальной идеей было сделать что-то вроде: int IFoo.Bar { get { raise new NotImplementedException(); } } Я полагаю, что в этом нет ничего плохого, но...

31
Есть ли разница между компонентом и модулем

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

31
Является ли предпочтительным дизайн сверху вниз или снизу вверх?

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

31
Является ли «StringBuilder» приложением шаблона проектирования Builder?

Ограничен ли шаблон «Строитель» обращением к анти-шаблону «телескопический конструктор», или можно сказать, что он также решает более общую проблему сложного создания неизменяемых объектов? У StringBuilderкласса есть слово «строитель» в его имени, но он не имеет ничего общего с телескопическими...

31
Чему могут научиться программисты из строительной отрасли? [закрыто]

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

31
Разумно ли предположить, что любая физическая величина может быть представлена ​​64-разрядным целым числом без переполнения или переполнения?

Исходный алгоритм двоичного поиска в JDK использовал 32-разрядные целые числа и имел ошибку переполнения if (low + high) > INT_MAX( http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html ) , Если мы переписали тот же алгоритм двоичного поиска с использованием...

31
Почему языки программирования позволяют скрывать / скрывать переменные и функции?

Многие из самых популярных языков программирования (такие как C ++, Java, Python и т. Д.) Имеют концепцию скрытия / теневого копирования переменных или функций. Когда я сталкивался с сокрытием или затенением, они стали причиной трудностей при поиске ошибок, и я никогда не видел случая, когда я...

31
Почему Math.Sqrt () является статической функцией?

При обсуждении статических методов и методов экземпляров я всегда думаю, что это Sqrt()должен быть метод экземпляров числовых типов, а не статический метод. Почему это? Это очевидно работает на значение. // looks wrong to me var y = Math.Sqrt(x); // looks better to me var y = x.Sqrt(); Типы...

31
Нет центральной базы данных

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

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

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

30
Разработка класса, который будет принимать целые классы в качестве параметров, а не отдельные свойства

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

30
Почему изучение lisp-интерпретатора в lisp так важно?

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

30
Интерфейсы на абстрактном классе

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