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

29
В чем разница между «сокрытием данных» и «инкапсуляцией»?

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

29
Я пишу о синтаксисе языка. Есть ли какой-нибудь язык, в котором параметры помещаются внутри имени метода?

в JavaScript: function getTopCustomersOfTheYear(howManyCustomers, whichYear) { // Some code here. } getTopCustomersOfTheYear(50, 2010); в C #: public List<Customer> GetTopCustomersOfTheYear(int howManyCustomers, int whichYear) { // Some code here } List<Customer> customers =...

29
Что происходит с тестами методов, когда этот метод становится приватным после перепроектирования в TDD?

Допустим, я начинаю разрабатывать ролевую игру с персонажами, которые атакуют других персонажей и тому подобное. Применяя TDD, я делаю несколько тестов для проверки логики внутри Character.receiveAttack(Int)метода. Что-то вроде этого: @Test fun healthIsReducedWhenCharacterIsAttacked() { val c =...

29
Репозитории DDD в приложении или доменном сервисе

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

29
Почему в Kotlin нет статического ключевого слова?

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

29
Как комитет по стандартам C ++ проверяет свои дизайнерские идеи?

Проверяет ли комитет по С ++ свои новые спецификации проекта с помощью своего рода компилятора прототипов, прежде чем выпускать новый стандарт? Или они выпускают стандарт, который, по сути, является только теоретическим, пока крупные компиляторы не реализуют...

29
Можете ли вы реализовать «объектно-ориентированное» программирование без ключевого слова класса?

Скажем, мы хотим предоставить абстракцию «счета» в банке. Вот один из подходов, использующий functionобъект в Python: def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10...

29
Новый нуль-условный оператор C # 6.0 противоречит Закону Деметры?

Закон Деметры гласит следующее: Каждый юнит должен иметь только ограниченные знания о других юнитах: только юниты, «тесно» относящиеся к текущему юниту. Каждый юнит должен разговаривать только со своими друзьями; не разговаривай с незнакомцами Поговорите только со своими непосредственными друзьями....

28
Как языки программирования определяют функции?

Как языки программирования определяют и сохраняют функции / методы? Я создаю интерпретируемый язык программирования в Ruby и пытаюсь понять, как реализовать объявление функций. Моя первая идея - сохранить содержание декларации на карте. Например, если я сделал что-то вроде def a() {...

28
Почему ключевое слово rec необходимо в F #?

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

28
Что можно сделать с языками программирования, чтобы избежать ошибок с плавающей запятой?

Неправильное понимание арифметики с плавающей запятой и ее недостатков является основной причиной удивления и путаницы в программировании (рассмотрим количество вопросов о переполнении стека, относящихся к «числам, которые не складываются правильно»). Учитывая то, что многим программистам еще...

28
Дизайн в одной команде, кодирование в другой

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

28
Простое и сложное (но эффективное по производительности) решение - какое выбрать и когда?

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

28
Что такое хорошая (аккуратная) архитектура в программировании простого веб-сайта, например, книги контактов?

Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 8 лет назад . Когда я создаю простой веб-сайт, например, книгу контактов, где я могу добавлять, удалять и обновлять контакты, я создаю index.phpфайл, в котором...

28
Есть ли названный анти-паттерн для исторически выросшего программного обеспечения? [закрыто]

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

28
Использование реляционной базы данных против объектов JSON для данных событий / действий

Я работаю над проектом, в котором я пытаюсь решить, использовать ли стандартную реляционную базу данных SQL или объекты JSON для хранения данных о событии или деятельности. Проект будет хранить данные о нескольких типах событий, поэтому я решил просто описать один тип событий для этого вопроса....

28
Объектно-ориентированная «нормализация»

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

28
Необязательные параметры или перегруженные конструкторы

Я реализую DelegateCommand, и когда я собирался реализовать конструктор (ы), я предложил следующие два варианта дизайна: 1: Наличие нескольких перегруженных конструкторов public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute,...

28
Как вы организуете высоко настраиваемое программное обеспечение?

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

28
Есть ли шаблон дизайна, который устраняет необходимость проверять флаги?

Я собираюсь сохранить некоторую полезную нагрузку строки в базе данных. У меня есть две глобальные конфигурации: шифрование компрессия Они могут быть включены или отключены с помощью конфигурации таким образом, что либо только один из них включен, либо включены, либо оба отключены. Моя текущая...