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

49
Много маленьких запросов против нескольких больших запросов (API Design)

В настоящее время я работаю над проектом с организацией следующим образом: Клиент - получает данные с главного сервера через REST API. Сервер - запрашивает данные с других серверов через сторонние API Сторонние API - не зависящие от меня сервисы, предоставляющие данные на сервер (Reddit,...

49
Почему все функции <алгоритма> принимают только диапазоны, а не контейнеры?

Есть много полезных функций <algorithm>, но все они работают с «последовательностями» - парами итераторов. Например, если у меня есть контейнер и мне нравится работать std::accumulateна нем, мне нужно написать: std::vector<int> myContainer = ...; int sum =...

49
Две структуры с одинаковыми членами, но разными именами, это хорошая идея?

Я пишу программу, которая включает в себя работу с полярными и декартовыми координатами. Имеет ли смысл создавать две разные структуры для каждого вида точек, одна с Xи Yчленами, а другая с Rи Thetaчленами. Или это слишком много, и лучше иметь только одну структуру с членами firstи в secondкачестве...

49
Каковы улучшения MVP по сравнению с MVC?

В течение трех дней я читал о шаблонах Model-View-Controller (MVC) и Model-View-Presenter (MVP) . И есть один вопрос, который меня очень беспокоит. Почему разработчики программного обеспечения изобрели MVP, когда уже был MVC? С какими проблемами они столкнулись, что MVC не решил (или решил плохо),...

49
Могут ли классы менеджера быть признаком плохой архитектуры?

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

49
Есть ли проблемы с использованием Reflection?

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

48
Помогает ли разделение потенциально монолитного приложения на несколько более мелких приложений предотвратить ошибки? [закрыто]

Другой способ спросить это; почему программы имеют тенденцию быть монолитными? Я думаю о чем-то вроде пакета анимации, такого как Maya, который люди используют для различных рабочих процессов. Если бы возможности анимации и моделирования были разделены на их собственное отдельное приложение и...

48
Что является лучшей практикой - вспомогательные методы как экземпляры или статические?

Этот вопрос субъективен, но мне было просто любопытно, как к этому подходит большинство программистов. Пример ниже приведен на псевдо-C #, но это также должно относиться к Java, C ++ и другим языкам ООП. В любом случае, когда я пишу вспомогательные методы в моих классах, я склонен объявлять их как...

48
Что может быть недостатком для определения класса как подкласса списка самого себя?

В моем недавнем проекте я определил класс со следующим заголовком: public class Node extends ArrayList<Node> { ... } Однако, после обсуждения с моим профессором CS, он заявил, что урок будет «ужасным для памяти» и «плохой практикой». Я не обнаружил, что первое особенно верно, а второе...

48
Насколько безопасны скрытые запросы AJAX, которые имитируют производительность?

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

48
Почему итераторы в Python вызывают исключение?

Вот синтаксис для итераторов в Java (несколько похожий синтаксис в C #): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Что имеет смысл. Вот эквивалентный синтаксис в Python: it = iter(sequence) while True: try: value = it.next() except StopIteration:...

48
Почему метод PATCH не идемпотентен?

Мне было интересно об этом. Предположим , у меня есть userресурс с idи nameполей. Если я хочу обновить поле, я мог бы просто сделать запрос PATCH к ресурсу, как это PATCH /users/42 {"name": "john doe"} И тогда приложение обновит имя пользователя 42. Но почему, если я повторю этот запрос, результат...

47
Как я могу убедительно спорить против дублирования столбцов базы данных?

Я начал работать в новой организации, и одним из шаблонов, которые я видел в базе данных, является дублирование полей, чтобы упростить написание запросов для бизнес-аналитиков. Мы используем Django и его ORM. В одном случае мы сохраняем объект MedicalRecordNumber с уникальной строкой,...

47
Прикладной уровень против доменного уровня?

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

47
Зачем разрабатывать современный язык без механизма обработки исключений?

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

47
Каковы преимущества ООП на основе прототипов перед ООП на основе классов?

Когда я впервые начал программировать Javascript после того, как в основном работал с ООП в контексте языков, основанных на классах, я был озадачен тем, почему ООП на основе прототипов когда-либо предпочтительнее ООП на основе классов. Каковы структурные преимущества использования ООП на основе...

47
Почему оператор присваивания присваивается левой стороне?

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

46
Почему цепные сеттеры нетрадиционны?

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

46
Почему старые языки программирования продолжают пересматриваться?

Этот вопрос не «Почему люди до сих пор используют старые языки программирования?» Я это прекрасно понимаю. Фактически, два языка программирования, которые я знаю лучше всего, это C и Scheme, оба из которых восходят к 70-м годам. Недавно я читал об изменениях в C99 и C11 по сравнению с C89 (который,...

46
Что случилось с ограничениями базы данных?

Когда я рассматриваю модели баз данных для RDBMS, я обычно удивляюсь, обнаружив, что ограничения практически отсутствуют (кроме PK / FK). Например, процент часто хранится в столбце типа int(хотя это tinyintбыло бы более уместно), и нет CHECKограничения для ограничения значения до диапазона 0..100....