Вопросы с тегом «patterns-and-practices»

Шаблоны проектирования (повторяемые решения часто возникающих проблем) и лучшие практики в разработке программного обеспечения

164
Что случилось с шаблоном «Хирургическая бригада» из «Мифического человека-месяца»?

Несколько лет назад, когда я читал «Мифический человеко-месяц», я обнаружил много вещей, которые я уже знал из других источников. Однако там были и новые вещи, несмотря на то, что книга 1975 года. Одним из них было: Хирургическая бригада Миллс предлагает, чтобы каждый сегмент большой работы решался...

108
Исключение по сравнению с пустым набором результатов, когда входные данные технически действительны, но не удовлетворяют

Я занимаюсь разработкой библиотеки, предназначенной для публичного выпуска. Он содержит различные методы для работы с наборами объектов - генерация, проверка, разбиение и проецирование наборов в новые формы. Если это уместно, это библиотека классов C # с включенными расширениями в стиле LINQ...

84
Это плохая практика для обеспечения порядка выполнения для модульных тестов?

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

79
Существуют ли какие-либо ОО-принципы, которые практически применимы для Javascript?

Javascript - это объектно-ориентированный язык на основе прототипов, но он может быть основан на классах различными способами: Написание функций для самостоятельного использования в качестве классов Используйте изящную систему классов в фреймворке (например, mootools Class.Class ) Создайте его из...

64
Разработка функции, единственная цель которой будет устранена? [закрыто]

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

59
Когда и для каких целей в C следует использовать ключевое слово const для переменных?

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

54
Термин (или «шаблон»?) Для «Сделай что-нибудь, если это еще не сделано» [закрыто]

Звучит довольно просто, я знаю, но недавно мой коллега сказал мне, что вызываемый метод startHttpServerслишком сложен для понимания, потому что он запускает сервер, только если он еще не запущен. Я обнаруживаю, что попадаю в неприятности, когда отвечаю: «Серьезно? Я занимаюсь этим десятилетиями -...

51
Разве «соглашение над конфигурацией» не нарушает основные принципы программирования?

Я смотрел на инфраструктуру WPF MVVM Caliburn.Micro и читал, что многие стандартные вещи основаны на соглашениях об именах . Например, автоматическое связывание свойств в представлении со свойствами в ViewModel. Хотя это кажется удобным (удаляет некоторый шаблонный код), моя первая реакция на...

44
Переменные ошибок - это анти-шаблон или хороший дизайн?

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

35
Каков наилучший способ инициализации ссылки ребенка на его родителя?

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

35
Это хорошая практика для создания ClassCollection другого класса?

Допустим, у меня есть Carкласс: public class Car { public string Engine { get; set; } public string Seat { get; set; } public string Tires { get; set; } } Допустим, мы создаем систему для парковки, я собираюсь использовать много Carклассов, поэтому мы создаем CarCollectionкласс, который может иметь...

35
Должна ли директива angularjs напрямую взаимодействовать со службами или она считается анти-паттерном?

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

32
Как представить (перечислить) типы в публичном API

Я работаю над простым API-интерфейсом, который хочу использовать для собственного клиента и который будет открыт для публики в будущем. У меня есть объекты «Предмет», которые могут иметь разные «типы». Тип является C "typedef enum", на данный момент у меня есть: typedef enum { ItemTypeBool,...

31
Должен ли я поместить функции, которые используются только в одной другой функции, в эту функцию?

Конкретно я пишу на JavaScript. Допустим, моя основная функция - это функция A. Если функция A делает несколько вызовов функции B, но функция B больше нигде не используется, то я должен просто поместить функцию B в функцию A? Это хорошая практика? Или я все еще должен поместить функцию B в ту же...

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

Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Для каждого проекта программирования менеджеры с прошлым опытом...

27
Как выбрать между использованием события домена или разрешением уровня приложения управлять всем

Я делаю свои первые шаги в дизайне, управляемом доменом, купил синюю книгу и все остальное, и я вижу три способа реализации определенного решения. Для записи: я не использую CQRS или Event Sourcing. Допустим, запрос пользователя поступает на уровень обслуживания приложений. Бизнес-логика для этого...

22
Преимущества и недостатки использования битовых масок в базе данных

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

21
Как называется идиома, использующая цепочку методов для построения объекта?

Я часто использую шаблон, в котором я использую цепочку методов для настройки объекта, аналогичного шаблону Builderили Prototype, но не создаю новые объекты при каждом вызове метода, вместо этого изменяя исходный объект. Пример: new Menu().withItem("Eggs").withItem("Hash...

20
Какие методы вы используете, чтобы избежать неправильных обновлений данных в больших базах данных?

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

19
Использование нового класса System.Tuple - плохой дизайн?

Мне нравится концепция System.Tuple в том смысле, что она позволяет мне возвращать несколько параметров в одном вызове функции без создания экземпляра нового класса, однако это игнорирует любые хорошие методы программирования, такие как Microsoft Patterns & Practices, SOLID Principles и т. Д. Я...