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

Вопросы о решении проблем и планировании решения посредством разработки программного обеспечения.

3
Как решить круговую зависимость?
У меня есть три класса, которые циклически зависят друг от друга: TestExecuter выполняет запросы TestScenario и сохраняет файл отчета, используя класс ReportGenerator. Так: TestExecuter зависит от ReportGenerator для создания отчета ReportGenerator зависит от TestScenario и параметров, установленных из TestExecuter. TestScenario зависит от TestExecuter. Не могу понять, как удалить эти зависимости. …

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

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

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

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

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

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

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

5
Является ли предпочтительным дизайн сверху вниз или снизу вверх?
Как я понимаю, нисходящий дизайн заключается в преобразовании абстрактной концепции высокого уровня в более мелкие конкретные и понятные части, пока не будет определен наименьший строительный блок. С другой стороны, снизу вверх определяются низкоуровневые части, затем постепенно накапливаются блоки более высокого уровня, пока не будет сформирована вся система. На практике говорят, …
31 design  c++  lisp 

15
Чему могут научиться программисты из строительной отрасли? [закрыто]
Говоря с коллегами о принципах проектирования и разработки программного обеспечения, я заметил, что одним из наиболее распространенных источников аналогий является строительная отрасль. Мы построить программное обеспечение , и мы рассмотрим дизайн и структуру быть архитектурой . Один из лучших способов учиться (или учить) - это анализ аналогий - какие другие …

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

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

9
Разработка класса, который будет принимать целые классы в качестве параметров, а не отдельные свойства
Например, у вас есть приложение с широко используемым классом, которое называется User. Этот класс предоставляет всю информацию о пользователе, его идентификаторе, имени, уровнях доступа к каждому модулю, часовом поясе и т. Д. Очевидно, что пользовательские данные широко используются во всей системе, но по какой-то причине система настроена таким образом, чтобы …
30 java  c#  design  solid 

5
Как эффективный способ записать обоснования решений о дизайне продукта?
В нашей компании мы не используем какие-либо проектные документы. У нас всего три сотрудника, поэтому все обсуждения дизайна продукта происходят лично или в Slack. (Мы также работаем над базовым пакетом Slack, который позволяет просматривать только самые последние сообщения.) Наш продукт все еще находится на ранних стадиях, и мы часто пересматриваем …

10
Учитывая табун лошадей, как мне определить среднюю длину рога всех единорогов?
Приведенный выше вопрос является абстрактным примером распространенной проблемы, с которой я сталкиваюсь в унаследованном коде, или, точнее, проблем, возникших в результате предыдущих попыток решить эту проблему. Я могу вспомнить хотя бы один метод .NET Framework, предназначенный для решения этой проблемы, например Enumerable.OfType<T>метод. Но тот факт, что вы в конечном итоге …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.