Как стать автором
Обновить
49.92
Рейтинг

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга

Дизайн шахматной игры

Java *Разработка игр *Алгоритмы *ООП *
Recovery mode
Перевод

Перевод с английского с адаптацией

Ссылки на оригинал:
https://www.geeksforgeeks.org/design-a-chess-game/
https://massivetechinterview.blogspot.com/2015/07/design-chess-game-using-oo-principles.html

Уровень сложности: Сложный
Последнее обновление: 30 Сент., 2020

Постановка задачи:
Проблема состоит в том, чтобы разработать шахматную игру с использованием объектно-ориентированных принципов.

На вопрос: Adobe, Amazon, Microsoft и т. д.

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

Примечание автора перевода:
Хорошо было бы определиться со структурой кода и построить UML диаграмму.
Затем сформировав связи и отношения, строить классы. Такой подход к проектированию был бы более наглядным и написание кода отнимало бы меньше времени.

Далее в тексте: Прим. - примечание автора перевода.

*«Читать далее»

Основными классами будут:

Читать далее
Всего голосов 3: ↑0 и ↓3 -3
Просмотры 1.3K
Комментарии 3

Новости

Как работать с деньгами, или денежные суммы в бэкенд-разработке

Блог компании Газпромбанк Java *Kotlin *

Наша команда периодически пополняется новыми людьми, которые «приносят с собой» новые ошибки. Поэтому мы регулярно проводим семинары с их разбором. Это хороший повод напомнить всем о правилах работы с суммами, объяснить новичкам зачем они нужны и, возможно, пополнить наш чек-лист с помощью которого мы проверяем код на типовые ошибки. Вот один из примеров, который на таком семинаре разобрал Сергей Богданов — рукводитель разработки сервисной цифровой платформы Газпромбанка.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 3.5K
Комментарии 6

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

Java *Kotlin *

Меня зовут Аксёнов Вячеслав, я бэкенд разработчик и в последние годы пишу веб приложения на java/kotlin. Основная идея этой статьи описать основные технические задачи, которые ставятся перед современными веб приложениями, а также перечислить те библиотеки, которые чаще всего используются для решения этих задач.

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

Читать далее
Всего голосов 24: ↑13 и ↓11 +2
Просмотры 9.5K
Комментарии 44

Yet another JSON-парсер

Программирование *Java *
Tutorial

Здравствуйте, дорогие читатели. В данной статье описана реализация ещё одного, очередного, JSON-парсера, который способен извлекать целые JSON-объекты с содержимым из текста. Данный парсер использует стэки явно без рекурсии, для отслеживания контекста вложенности. Он основан на модели автоматов с магазинной памятью (МП-Автоматы). Данный парсер будет простым, без модели восстановления ошибок. Он рассматривает в качестве корневого элемента - JSON-объект. В случае массива, (или любого другого значения) массив можно обернуть в объект, и подать на вход к парсеру. В случае двух объектов, в файле, необходимо распарсить их отдельно. В конце статьи будет написано, как заставить парсер проверять вообще любое значение из JSON-текста.

Посмотреть реализацию
Всего голосов 5: ↑1 и ↓4 -3
Просмотры 2.8K
Комментарии 18

Интеграционное тестирование микросервисов Spring Boot в монорепозитории

Блог компании Домклик Java *Kotlin *Микросервисы *

Привет, Хабр! С ростом количества микросервисов и их взаимосвязей может возникнуть потребность комплексной проверки работоспособности системы. Со временем API сервисов и их поведение может дорабатываться и изменяться, при этом хочется иметь уверенность, что система микросервисов в совокупности ведёт себя согласно ожиданиям. Мы разберём простой пример написания интеграционных тестов, которые в дальнейшем можно встроить в CI/CD-процесс для решения подобной проблемы.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 1.8K
Комментарии 4

Java Stream API на простых примерах

Блог компании OTUS Программирование *Java *
Перевод

Стримы и коллекции чем-то похожи друг на друга, но у них разное назначение. Коллекции обеспечивают эффективный доступ к одиночным объектам, а стримы, наоборот, для прямого доступа и обработки отдельных элементов не используются. Стримы предназначены для параллельных и последовательных агрегаций, выполняемых через цепочку методов.

Читать далее
Всего голосов 14: ↑7 и ↓7 0
Просмотры 2.6K
Комментарии 3

Security микросервисов с помощью Spring, OAuth2, JWT и Service Account

Информационная безопасность *Java *Kotlin *Микросервисы *
Из песочницы

Не так давно я начинал свой первый проект с микросервисами и не знал как реализовать security. Сейчас информации по этому вопросу уже больше однако она не всегда актуальна и, как правило, не раскрывает проблему security межсервисного взаимодействия. Поэтому я решил написать как бы я решал эту задачу на сегодняшний день.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 3.2K
Комментарии 5

Сокрытие и затенение переменных в Java

Блог компании Издательский дом «Питер» Программирование *Java *Проектирование и рефакторинг *ООП *
Перевод

В Java можно объявлять переменные в классе, методе, блоке или конструкторе. В зависимости от варианта объявления, у переменной могут быть разные области видимости в программе, а сама переменная может относиться к статическому или нестатическому типу в зависимости от того, где она объявлена.

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 2.7K
Комментарии 5

Java 8: гид по классу Optional

Java *
Recovery mode
Перевод
Tutorial

Задачей этого класса является предоставление решений на уровне типа-обертки для обеспечения удобства обработки возможных null-значений

Читать далее
Всего голосов 17: ↑2 и ↓15 -13
Просмотры 3K
Комментарии 12

Из Excel в JSON. Универсальные методы для формирования тела запроса из Excel книги для API тестов (Java)

Java *API *Тестирование веб-сервисов *
Из песочницы

Недавно нужно было написать API автотесты - запросы Post с большим количеством параметров в теле, в том числе вложенные JSON объекты, массивы , массивы JSON объектов. Многие параметры не обязательные, а значит - большое количество наборов тестовых данных.

Дано: Датапровайдер - для многократного запуска тестов, тестовые данные в таблице Excel.

Что бы сформировать тело первого запроса пришлось создать несколько классов, через сеттеры присваивать значения переменным в классе и из базового класса формировать JSON, который и использовался как тело запроса. И вдруг оказалось, что все написанное никак не получится переиспользовать для других эндпоинтов. Тогда и решил написать метод, который будет превращать таблицу Excel в JSON объект без всяких там классов и правок в коде. Нужно только придерживаться некоторых правил при составлении таблицы.

Итак! Для получения данных из таблицы использовал, как обычно, Fillo. Название столбца будет ключом, значения в столбце, собственно, значениями ключа в запросе. Строка таблицы - один набор тестовых данных.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 4.4K
Комментарии 5

Пошаговое развитие RESTful API

Java *API *
Перевод

Разработка интуитивно понятного и удобного RESTful API — непростая задача. Она даже может оказаться весьма сложной задачей, если это ваша первая попытка. Планирование управления жизненным циклом вашего API, скорее всего, будет казаться второстепенным. Однако во всяком случае развитие вашего API весьма вероятно.

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 3.9K
Комментарии 0

«Чиним» OpenApi в springdoc-open-api

Java *
Tutorial

На смену springfox пришел springdoc. Он приносит нам в проект Swagger и поддерживает спецификацию OpenApi 3. Но есть еще некоторые шерховатости, а именно правильное отображение параметров запроса для сортировки и постраничного вывода.

Давайте посмотрим, можно ли их исправить и как это сделать.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.2K
Комментарии 6

Spring4Shell RCE — критическая уязвимость в Java Spring Framework

Блог компании Pentestit Информационная безопасность *Java *Apache *

Не успел мир отойти от Apache Log4j2, как в сети появились сообщения о новых 0-day уязвимостях. В Spring Framework для Java обнаружено сразу несколько уязвимостей "нулевого дня", позволяющих, в том числе, выполнять произвольный код (RCE).

Читать далее
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 11K
Комментарии 11

Spring: Жизненный цикл бинов, методы init() и destroy()

Java *
Перевод
Tutorial

Жизненный цикл любого объекта означает следующее: как и когда он появляется, как он себя ведет во время жизни и как и когда он исчезает.

Читать далее
Всего голосов 9: ↑4 и ↓5 -1
Просмотры 2.3K
Комментарии 2

Улучшаем комментарии с помощью плагина Comment Lint

Java *Софт
Из песочницы

Пишете ли вы комментарии в коде? Используете ли при этом русский язык? Сталкиваетесь ли вы с тем, что спустя несколько месяцев комментарии становятся нечитаемы даже вами?

Этот плагин расширит проверку орфографии и грамматики для Intellij IDEA.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 2.1K
Комментарии 10

Java: отличия Map и HashMap

Программирование *Java *Интерфейсы *ООП *
Из песочницы
Перевод

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

Читать далее
Всего голосов 26: ↑6 и ↓20 -14
Просмотры 8.4K
Комментарии 13

JPA-Buddy — избавляемся от рутины. Практические кейсы

Блог компании Reksoft Разработка веб-сайтов *Программирование *Java *

Совсем недавно мне под руку попался плагин, который помогает генерировать код при написании программ - это JPA Buddy. В этой статье я не буду транслировать официальную документацию проекта или показывать на примере видеороликов, как нужно с ним работать, а приведу примеры своих рабочих кейсов, где плагин действительно выручил и сэкономил мое время. Спойлер: в создании POJO-классов, репозиториев для тучи сущностей, DTO-классов.

Читать далее
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 3.7K
Комментарии 7

Необычная Java: StackTrace Extends Throwable

Java *
Перевод
Tutorial

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

Есть вещи, которые вы можете делать в Java, но вы их редко видите. В основном потому, что в них нет смысла. Однако в Java есть несколько необычных вещей, которые могут оказаться на удивление полезными.

Chronicle Software обычно использует ряд различных шаблонов в своих низкоуровневых библиотеках, с которыми большинство разработчиков вообще не сталкивается.

Один из них — это класс, который расширяет Throwable, но не является ошибкой или исключением.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 3.6K
Комментарии 1

Работа в Highload командах 1С сейчас: Java/С++/ C#/TS/JS  Hiring day

Блог компании 1С JavaScript *Java *C++ *C# *

Вечером 30 марта 2022 года (среда) в формате онлайн мы проводим Java/С++/ C#/TS/JS  Hiring day.

Приглашаем всех заинтересованных в разработке на Java, С++, C#, JS,  TS принять участие!

На митапе в течение часа мы расскажем:

О разработке различных механизмов платформы корпоративных и облачных приложений, их внутреннем устройстве и принципах работы

Опыте разработки highload-решений, которые ежедневно используют миллионы людей

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 4.3K
Комментарии 10

Вклад авторов

Работа

Java разработчик
522 вакансии