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

166
Я изменил одну сигнатуру метода, и теперь у меня более 25 000 ошибок. Что теперь?

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

52
Как избежать каскадного рефакторинга?

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

38
Почему плохая связь между функциями и данными плоха?

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

34
Где вы должны положить константы и почему?

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

32
Как инъекция зависимости увеличивает связь?

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

20
Как правильно отделить интерфейс от логики в приложениях Pyqt / Qt?

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

20
Почему тип связан с его строителем?

Недавно я удалил свой Java- ответ на Code Review , который начался так: private Person(PersonBuilder builder) { Стоп. Красный флаг. PersonBuilder будет строить Person; это знает о Человеке. Класс Person не должен ничего знать о PersonBuilder - это просто неизменный тип. Вы создали круговую связь...

19
Есть ли развязка козыря СУХОЙ в ОТДЫХЕ?

Я строю REST API, чтобы показать большую часть функциональности существующего Java API. Оба API предназначены для внутреннего использования в моей организации; Я не должен проектировать для внешнего использования. Я имею влияние на оба API, но я использую REST. Java API будет по-прежнему...

19
Программирование на основе событий: когда оно того стоит?

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

18
Связывание со строками «более слабое», чем с методами класса?

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

16
Модульное тестирование без привязки к деталям реализации

В своем выступлении TDD, где все это пошло не так , Ян Купер выдвигает первоначальное намерение Кента Бека за модульное тестирование в TDD (для тестирования поведения, а не методов классов в частности) и высказывается за недопущение связи тестов с реализацией. В случае поведения, подобного save X...

16
Слабая связь в объектно-ориентированном дизайне

Я пытаюсь изучить GRASP, и я нашел это объяснение ( здесь на странице 3 ) о низком соединении, и я был очень удивлен, когда обнаружил следующее: Рассмотрим метод addTrackдля Albumкласса, два возможных метода: addTrack( Track t ) и addTrack( int no, String title, double duration ) Какой метод...

14
Кодовая связь введена DRY и OOD

Я ищу руководство по соединению DRY vs Code. Я не люблю дублировать мой код, а также мне не нравится связывание кода между несвязанными модулями. Поэтому я реорганизую дублирующий код, если найду идентично дублирующий код через год после того, как дублирование было введено. Однако я все чаще...

14
Можно ли применять DRY без увеличения сцепления?

Предположим, у нас есть программный модуль A, который реализует функцию F. Другой модуль B реализует ту же функцию, что и F '. Есть несколько способов избавиться от дубликата кода: Пусть A использует F 'из B. Пусть B использует F из A. Поместите F в его собственный модуль C и позвольте A и B...

11
Когда Efferent / Afferent сцепление хорошо или плохо

На этой неделе у меня экзамен по программным паттернам, и одной из тем, которые мы должны изучить, является эфферентная и афферентная связь. Я понимаю, что пакет имеет высокий Ce (эфферентное связывание), если это зависит от ряда других типов. Например: class Car{ Engine engine; Wheel wheel; Body...

11
Связь. Лучшие практики

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

11
Как использовать внедрение зависимостей и избежать временной связи?

Предположим, у меня есть тот, Serviceкоторый получает зависимости через конструктор, но также должен быть инициализирован с пользовательскими данными (контекстом), прежде чем их можно будет использовать: public interface IService { void Initialize(Context context); void DoSomething(); void...

10
Использование пакетов (драгоценных камней, яиц и т. Д.) Для создания разделенных архитектур

Основная проблема Видя хорошую поддержку, которую оказывают большинство современных программных платформ для управления пакетами (думаю gem, npmи pipт. Д.), Имеет ли смысл проектировать приложение или систему, состоящую из пакетов, разработанных внутри компании, чтобы продвигать и создавать...

10
TDD: макетирование тесно связанных объектов

Иногда объекты просто должны быть тесно связаны. Например, CsvFileкласс, вероятно, должен будет тесно работать с CsvRecordклассом (или ICsvRecordинтерфейсом). Однако из того, что я узнал в прошлом, одним из основных принципов разработки, основанной на тестировании, является «Никогда не тестируйте...

9
В слабо связанной архитектуре микросервисов, как вы отслеживаете свои зависимости?

Популярный выбор архитектуры высокого уровня в современной программе - это система микросервисов на основе REST. Это имеет несколько преимуществ, таких как слабая связь, простота повторного использования, ограниченное ограничение на технологии, которые можно использовать, высокая масштабируемость и...