Fluent Interface
Fluent Interface (Текучий интерфейс) — это шаблон проектирования, который позволяет создавать код, читающийся как текст на естественном языке.
Он достигается путем создания методов, которые возвращают ссылку на this
объект, позволяя вызывать их в цепочке.
#для_продвинутых
Стирание типов
Стирание типов (type erasure) — это процесс, при котором информация о типах параметризованных типов (generic types) удаляется во время компиляции и не сохраняется во время выполнения программы.
#для_начинающих
dOOv
dOOv (Domain Object Oriented Validation) — это фреймворк для Java, который позволяет легко и удобно выполнять валидацию и отображение объектов предметной области. Он использует аннотации, генерацию кода и DSL с безопасной типизацией, что делает процесс валидации и отображения быстрым и простым.
#для_продвинутых
SonarJava
SonarJava — это плагин для статического анализа кода, который используется для проверки качества кода Java. Он может обнаруживать различные проблемы, такие как ошибки кода, дублирование кода, потенциальные уязвимости безопасности и т. д.
#для_продвинутых
Lanterna
Lanterna — это библиотека Java, которая позволяет создавать простые текстовые пользовательские интерфейсы (TUI). Она может быть использована для создания различных приложений,
включая игры, утилиты и даже простые текстовые редакторы.
#для_продвинутых
Bazel
Bazel — это инструмент сборки с открытым исходным кодом, который используется для сборки и тестирования программного обеспечения на разных платформах. Он может использоваться для сборки проектов Java, а также других языков программирования, таких как C++, Python и Go.
#для_продвинутых
HyperMinHash-java
HyperMinHash-java — это библиотека Java, реализующая алгоритм HyperMinHash, который используется для
приблизительного сравнения наборов данных. Библиотека позволяет cоздавать эскизы наборов данных, cравнивать эскизы, oбъединять эскизы,
#для_продвинутых
I like techno — подкаст о технологиях в сервисах Яндекса
Запустили подкаст, где специалисты Яндекса говорят о том, как устроены простые приложения в наших гаджетах.
Первый эпизод посвящен технологиям Фудтеха — узнайте, как алгоритмы Еды и Лавки помогают доставлять продукты пользователям, несмотря на погодные условия и другие неопределенности.
Слушать на Яндекс Музыке
Смотреть на Youtube
Mockito
Mockito — это фреймворк для создания заглушек (mocks) в Java. Заглушки — это имитаторы реальных объектов, которые используются при тестировании кода.
Зачем использовать Mockito?
С помощью Mockito вы можете легко создавать заглушки для сложных объектов, что позволяет вам сосредоточиться на тестировании конкретного фрагмента кода. Также заглушки Mockito позволяют вам имитировать различные сценарии, что помогает вам написать более надежные тесты.
#для_продвинутых
Jackson
Jackson — это популярная библиотека Java для сериализации и десериализации объектов Java в различные текстовые форматы, такие как JSON, XML, YAML и CSV.
Jackson имеет простой и понятный API, что делает его доступным для начинающих разработчиков. Он работает очень быстро, что делает его идеальным выбором для высокопроизводительных приложений.
Jackson поддерживает широкий спектр функций и возможностей, что позволяет настроить его под ваши конкретные нужды. А также его можно расширить с помощью модулей для поддержки дополнительных форматов данных и функций.
#для_продвинутых
Доступ к GigaCode — AI-ассистенту разработчика!
GigaCode – это AI-помощник*, который ускоряет работу с кодом. Он поддерживает 15 языков программирования и может предлагать полные конструкции функций, циклов и других элементов кода.
AI-ассистента можно использовать в любой привычной среде разработки, такой как IDEA, PyCharm, VSCode, Jupyter и других. Он генерирует варианты завершения кода в режиме реального времени, что ускоряет и упрощает процесс работы. По опыту команд в Сбере, GigaCode поможет писать код до 25% быстрее!
GigaCode развивается вместе c сервисом GigaChat. В AI-ассистенте есть нейросетевые модели, которые обучены на больших корпусах исходного кода и специализируются на определенных задачах разработки. А по опыту команд в Сбере, GigaCode может сокращать время для создания кода до 25%.
AI-ассистент доступен для раннего использования на площадке GitVerse — платформе для работы с исходным кодом от СберТеха. Здесь можно размещать проекты с открытым и закрытым кодом, вести совместную разработку и участвовать в жизни комьюнити.
Чтобы получить доступ к GigaCode, зарегистрируйтесь на GitVerse.
*AI, artificial intelligence — искусственный интеллект
Готовы улучшить свое владение Java?
Присоединяйся к нашему каналу - /channel/java_secrets 📲
Свежие советы, лучшие практики, примеры кода и обсуждения, чтобы стать настоящим профессионалом в программировании на Java.
🫡 Повышай свой уровень!
Apache Commons Lang3
Apache Commons Lang3 — это библиотека Java, предоставляющая набор утилит для работы с базовыми классами Java, такими как String, Object, Collection и др.
Она дополняет стандартную библиотеку Java, предоставляя дополнительные методы, которые часто используются в разработке.
#для_продвинутых
Fastjson
Fastjson — это высокопроизводительная библиотека Java, предназначенная для преобразования объектов Java в JSON и наоборот. Она легкая, быстрая и простая в использовании.
#для_начинающих
SLF4J
SLF4J (Simple Logging Facade for Java) — это библиотека для логирования, предоставляющая простой и унифицированный интерфейс для работы с различными системами логирования в Java.
Она позволяет разработчикам абстрагироваться от конкретной реализации системы логирования и легко переключаться между ними.
#для_продвинутых
«Миграция в облако: быстро и без ошибок»
Чтобы мигрировать в облако быстро, без простоев и лишних затрат, необходимо очень тщательно продумать все шаги и тщательно спланировать весь процесс. 26 апреля 16:00 МСК на вебинаре «Миграция в облако: быстро и без ошибок» команда Professional Services VK Cloud в прямом эфире расскажет:
• из каких этапов состоит миграция;
• как сделать процесс миграции прозрачным и простым;
• как мигрировать IaaS и PaaS в VK Cloud;
• что делать, если вы попали под «вендор лок»? Спойлер: «вендор лок» — не приговор. Выход есть!
• как локализовать данные и серверную инфраструктуру в России;
• как получить двойной бонус от чека Microsoft Azure, AWS и Google Cloud и бесплатно мигрировать в облако VK Cloud.
Спикеры проведут life-demo миграции наиболее популярных сервисов и инфраструктуры в VK Cloud, а также ответят на все вопросы во время Q&A-сессии.
Вебинар будет интересен специалистам ИT-подразделений компаний, разработчикам, инженерам и системным администраторам.
Зарегистрироваться
Новосибирск, 25 апреля приглашаем на митап IT Talk by Sber для Java- и DevOps-разработчиков! 🤩
Мы собрали экспертов из разных команд и городов, чтобы рассказать о технологиях и инструментах, которые увеличивают эффективность работы разработчика и всей команды.
На митапе обсудим интересные темы:
👉 Советы для оптимизации сборки Java-проектов, практики CI и автоматизации сборки приложений.
👉 Что такое код с точки зрения законодательства, кому он принадлежит и какие есть права у автора кода?
👉 Инциденты в проме: что делать и не делать, чтобы устранить инцидент, и что на самом деле происходит, когда вы видите «Сервис недоступен, повторите операцию через 5 минут или позже»?
Встречаемся 25 апреля с 17:30 до 22:00 в лофте FoodFactory: Новосибирск, ул. Коммунистическая, 14.
Регистрируйтесь по ссылке!
Жадный алгоритм
Жадный алгоритм (greedy algorithm) — это алгоритм, который на каждом шаге делает локально оптимальный выбор, в надежде, что итоговое решение будет оптимальным.
Алгоритм работает следующим образом:
Инициализируем minPrice
максимальным значением. Затем перебираем все цены акций. На каждом шаге обновляем minPrice
, если текущая цена меньше, чем minPrice
, и maxProfit, если разница между текущей ценой и minPrice
больше, чем maxProfit. Возвращаем maxProfit
.
Жадные алгоритмы могут быть очень эффективными для решения некоторых задач. Однако важно помнить, что жадный алгоритм не всегда приводит к оптимальному решению.
#для_продвинутых
RefactorFirst
RefactorFirst — это инструмент для Java-кода, помогающий определить и расставить по приоритетам классы, которые следует рефакторить в первую очередь. Он работает, сканируя код на наличие «божественных классов» (God Classes) и классов с высокой степенью связности.
«Божественных классов» — это классы, которые делают слишком много и, следовательно, являются плохо спроектированными. Они могут быть трудными для понимания, тестирования и сопровождения.
#для_продвинутых
Есть опыт backend-разработки на Java? Приглашаем принять участие в создании революционно новой core banking платформы.
ГК «Иннотех» входит в один из крупнейших* ИТ-Холдингов России. С 2020 мы разрабатываем инновации для цифровизации финансового сектора 📈.
👨🏼💻 Вместе нам предстоит работать над масштабным проектом по импортозамещению: высоконагруженные системы, передовой технологический стек (Spring Boot, Quarkus, Kotlin) и микросервисная архитектура.
Необходимые скилы:
🔹опыт работы с java от 3 лет,
🔹разработка на Java с использованием технологий SpringFramework (Cloud, Boot, AOP), Hibernate,
🔹знание и опыт применения: Stream, Optional, Collections и др., подробнее – на сайте.
Что предлагаем:
🔹интересные задачи на развитие hard-скилов
🔹быстрый оффер и фаст-трек
🔹удалёнка, ДМС и бонусы
🔹развитая культура и профессиональная команда
В нашей команде уже 13 000+ ИТ-профессионалов, и мы продолжаем расти.
📩 Успей подать заявку до 30.04!
*По версии CNews Analytics 2022, TAdviser 2021 и RAEX 2023
Реклама. ООО "ГК "ИННОТЕХ". ИНН 9703073496.
Telosys
Telosys — это генератор кода, который позволяет создавать код Java, JavaScript, Python, NodeJS, PHP, C#, JavaEE, Spring, JAX-RS, VueJS, Angular, JPA и других языков программирования. Он работает с двумя типами моделей:
— Модели баз данных: создаются на основе схемы базы данных.
— DSL-модели: проектируются с нуля с использованием текстовых файлов.
Telosys обладает возможностями создания каркасов, что позволяет генерировать CRUD-экраны или REST-бэкэнд в течение нескольких минут.
#для_продвинутых
Зачем нужны и какие бывают блоки инициализации?
Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.
• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в throws
всех конструкторов класса.
• Блок инициализации возможно создать и в анонимном классе.
Приглашаем в Гостиную к Алисе!
«Гостиная Алисы. Не один дома» — это митап от команды Яндекса для middle+ бэкендеров: доклады о том, как устроена Алиса, Умные устройства, Беспилотные технологии и нетворкинг в неформальной обстановка
🔸 Павел Капля, руководитель продуктовой разработки Алисы. Расскажет, как запускали Новые возможности — и что пришлось изменить в нашем помощнике, чтобы заставить её думать по новому
🔸 Марат Мавлютов, руководитель службы разработки роботов-доставщиков. Объяснит, как наши роботы-доставщики видят мир вокруг себя, строят маршрут, ориентируются в толпе и проезжают светофоры
18 апреля, 19:00
Москва
Зарегистрироваться можно здесь.
Реклама ООО "Яндекс"
ИНН 7736207543
Apache POI
Apache POI – это библиотека с открытым исходным кодом для работы с форматами файлов Microsoft Office в Java.
Она позволяет читать, создавать и редактировать файлы Excel, Word, PowerPoint и другие.
#для_начинающих
Библиотека Apache Commons BeanUtils
Apache Commons BeanUtils — это набор утилит для работы с Java-бинами в проектах на Java. Java-бин — это простой класс Java, который следует определенным соглашениям:
Он имеет поля (атрибуты) для хранения данных.
Он предоставляет методы доступа (геттеры и сеттеры) для чтения и записи значений этих полей.
Обычно он имеет пустой конструктор по умолчанию.
Библиотека BeanUtils упрощает работу с такими классами, избавляя вас от необходимости вручную вызывать методы доступа.
#для_продвинутых
Worker Thread
Worker Thread (рабочий поток) — это обычный поток, который выполняет задачи в фоновом режиме, отдельно от главного потока приложения.
Использование Worker Thread:
— Worker Threadы отлично подходят для выполнения длительных задач, которые не должны блокировать главный поток.
— Отделение длительных задач от главного потока позволяет сохранить отзывчивость интерфейса пользователя.
— Распределение задач между несколькими Worker Threadами может повысить производительность приложения, особенно на многоядерных процессорах.
#для_начинающих
Есть ли мемы на Марсе? Как вытянуть репку с помощью кода? Попробуйте разгадать все тайны Гиперкуба на Tinkoff CTF.
20 и 21 апреля пройдет ИТ-соревнование с призами до 420 000 ₽.
Выберите лигу по скиллам и участвуйте даже без опыта в спортивном хакинге. Задания будут интересны сильным разработчикам, QA- и SRE-инженерам, аналитикам и другим ИТ-специалистам.
Играйте как вам удобно: онлайн из дома или офлайн — в одном 16 городов России, Беларуси и Казахстана. В офлайне вас ждет общение с другими игроками, квизы, мерч и другие развлечения.
Узнайте больше о соревновании и зарегистрируйтесь до 19 апреля
erid:2VtzqwwyGS2
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
JPoint 2024 — крупнейшая в России Java-конференция для опытных разработчиков.
В программе доклады про архитектуру, фреймворки, языки, эксплуатацию, VM и Runtime. Лучшие практики Java-разработки, использование Spring Boot, работа JVM «под капотом», программирование на Kotlin и других JVM-языках, backend-архитектура и многое другое. Кроме докладов будут воркшопы, мастер-классы, интервью и круглые столы. В этом году будут выступать спикеры из Сбера, Яндекса, VK, Тинькофф, Huawei, Контур, Syntacore, Мир Plat.Form и OZON.
Билеты можно купить за счет компании. Для тех, кто покупает билеты сам, у нас есть промокод на скидку 10%: SENIORJAVIST
Реклама. ООО "Вайлдкард". ИНН 7801718607
OkHttp
OkHttp — это эффективная библиотека HTTP-клиента с открытым исходным кодом для Java и Kotlin, разработанная Square. Она обеспечивает простой и удобный API для выполнения HTTP-запросов, включая поддержку протоколов HTTP/1.1 и HTTP/2.
#для_продвинутых