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

Шаблон проектирования - это общее многократно используемое решение часто встречающейся проблемы в разработке программного обеспечения.

554
Значит синглтоны плохие, тогда что?

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

398
Насколько точна «бизнес-логика должна быть в сервисе, а не в модели»?

ситуация Ранее этим вечером я дал ответ на вопрос о StackOverflow. Вопрос: Редактирование существующего объекта должно быть сделано на уровне хранилища или в сервисе? Например, если у меня есть Пользователь, у которого есть задолженность. Я хочу изменить свой долг. Должен ли я сделать это в...

328
Почему Глобальное Государство так Зло?

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

214
Как можно управлять тысячами правил IF… THEN… ELSE?

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

209
Зачем нам нужно так много классов в шаблонах проектирования?

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

209
Мой босс просит меня прекратить писать небольшие функции и делать все в одном цикле

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

209
Есть ли название для (анти) шаблона передачи параметров, который будет использоваться только на нескольких уровнях в цепочке вызовов?

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

204
«Никогда не делайте в коде то, что вы можете сделать, чтобы SQL-сервер работал хорошо для вас» - это рецепт плохого дизайна?

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

202
Что такое MVC, на самом деле?

Как серьезный программист, как вы отвечаете на вопрос, что такое MVC? На мой взгляд, MVC - это своего рода туманная тема, и поэтому, если ваша аудитория - ученик, вы можете описать ее в общих терминах, которые вряд ли будут противоречивыми. Однако, если вы разговариваете с хорошо осведомленной...

162
Почему я должен использовать фабричный класс вместо прямого создания объекта?

Я видел историю нескольких проектов библиотек классов С # и Java на GitHub и CodePlex, и я вижу тенденцию перехода к фабричным классам в отличие от непосредственного создания объектов. Почему я должен широко использовать фабричные классы? У меня есть довольно хорошая библиотека, где объекты...

151
Что такое антикоррупционный слой и как он используется?

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

144
Банда Четырех тщательно исследовала «Пространство Образца»?

С тех пор, как я впервые узнал о шаблонах проектирования Gang of Four (GoF) , по крайней мере 10 лет назад, у меня сложилось впечатление, что эти 23 шаблона должны быть лишь небольшим образцом чего-то гораздо большего, что мне нравится называть Пространством шаблонов . Это гипотетическое...

135
Лучше ли возвращать NULL или пустые значения из функций / методов, где возвращаемое значение отсутствует?

Я ищу рекомендацию здесь. Я борюсь с тем, лучше ли возвращать NULL или пустое значение из метода, когда возвращаемое значение отсутствует или не может быть определено. Возьмите следующие два метода в качестве примера: string ReverseString(string stringToReverse) // takes a string and reverses it....

135
Шаблоны дизайна не одобряются?

У меня была беседа с одним из наших старших разработчиков, который работает в этом бизнесе уже 20 лет. Он очень хорошо известен в Онтарио по блогам, которые он пишет. Странная вещь состоит в том, что он сказал мне: он сказал, что есть кусок кода, с которым кошмарно работать, потому что он написан...

124
Когда не следует использовать шаблон внедрения зависимостей?

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

118
Критика и недостатки внедрения зависимости

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

107
Действительно ли шаблоны проектирования действительно важны в наши дни?

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

98
Существуют ли какие-либо шаблоны проектирования, которые не нужны в динамических языках, таких как Python?

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