Тимлид в команду разработки на Java
Гибридный формат в городах РФ, Сербии, Казахстана, Армении, Беларуси.
Инфраструктура Яндекса — это набор сервисных провайдеров, на основе которых строится runtime облака, хранилища, системы офлайн-вычислений и другие продукты компании. Все провайдеры объединены проектной, ресурсной и ролевой моделью — это позволяет быстрее запускать новые продукты и гарантировать стабильность работы уже существующих. Наша команда разрабатывает базовые сервисы, которые реализуют эти модели и связывают всю инфраструктуру воедино, позволяют группировать ресурсы по проектам, предоставлять к ним доступы.
Ищем опытного тимлида в команду разработки на Java, который поможет спроектировать и реализовать новые компоненты системы, будет руководить командой, нанимать новых инженеров и развивать их.
Наш стек: Java 11, Spring Boot, Reactor, HTTP и gRPC API, Kotlin, PostgreSQL.
Мы ждем, что вы:
- разрабатывали на Java больше трех лет;
- пишете эффективный и понятный код;
- управляли командой разработки; нанимали людей и знаете, как правильно развивать разработчиков;
- можете вести за собой младших участников команды, делиться с ними знаниями и опытом;
- знаете, как устроены веб-сервисы;
- работали с реляционными и нереляционными базами данных и понимаете их устройство, *nix-подобными ОС.
- знаете популярные Java-библиотеки и фреймворки (Spring Boot, jUnit, Netty, Reactor);
Условия:
- сильная команда, с которой можно расти;
- зарплата на уровне рынка и выше;
- премии каждые полгода для всех, кто успешно прошёл ревью;
- расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей;
- гибкий график работы.
Откликнуться: https://goo.su/hlTfAB или в ТГ: @Karm_Anna
Гибридный формат в городах РФ, Сербии, Казахстана, Армении, Беларуси.
Инфраструктура Яндекса — это набор сервисных провайдеров, на основе которых строится runtime облака, хранилища, системы офлайн-вычислений и другие продукты компании. Все провайдеры объединены проектной, ресурсной и ролевой моделью — это позволяет быстрее запускать новые продукты и гарантировать стабильность работы уже существующих. Наша команда разрабатывает базовые сервисы, которые реализуют эти модели и связывают всю инфраструктуру воедино, позволяют группировать ресурсы по проектам, предоставлять к ним доступы.
Ищем опытного тимлида в команду разработки на Java, который поможет спроектировать и реализовать новые компоненты системы, будет руководить командой, нанимать новых инженеров и развивать их.
Наш стек: Java 11, Spring Boot, Reactor, HTTP и gRPC API, Kotlin, PostgreSQL.
Мы ждем, что вы:
- разрабатывали на Java больше трех лет;
- пишете эффективный и понятный код;
- управляли командой разработки; нанимали людей и знаете, как правильно развивать разработчиков;
- можете вести за собой младших участников команды, делиться с ними знаниями и опытом;
- знаете, как устроены веб-сервисы;
- работали с реляционными и нереляционными базами данных и понимаете их устройство, *nix-подобными ОС.
- знаете популярные Java-библиотеки и фреймворки (Spring Boot, jUnit, Netty, Reactor);
Условия:
- сильная команда, с которой можно расти;
- зарплата на уровне рынка и выше;
- премии каждые полгода для всех, кто успешно прошёл ревью;
- расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей;
- гибкий график работы.
Откликнуться: https://goo.su/hlTfAB или в ТГ: @Karm_Anna
❤6👍6
Почему Map — это не Collection, в то время как List и Set являются Collection?
Collection представляет собой совокупность некоторых элементов. Map - это совокупность пар «ключ-значение».
Collection представляет собой совокупность некоторых элементов. Map - это совокупность пар «ключ-значение».
👍13❤7☃1
Локация следующего Tech talk by Sber — Новосибирск! 📍
Да-да, уже 27 июля IT-специалисты Новосибирска получат классную возможность узнать больше о том, как реализуются задачи в Сбере, пообщаться с топовыми экспертами и завести интересные знакомства.
В программе митапа — доклады только на актуальные темы:
✔️ Дмитрий Дрожжин расскажет о том, зачем Сбер изобрел свой язык программирования и как его используют в проектах.
✔️ Марат Юлдашев раскроет все секреты развертывания приложений на стенды с помощью ARGOCD.
✔️ А Владимир Медин поделится историей тернистого пути Jenkins в Enterprise и расскажет, как специалистам Сбера удалось найти решение даже при пиковой нагрузке.
В перерывах вас ждет неформальное общение и вкусный кейтеринг. Регистрируйтесь по ссылке — встречаемся 27 июля в 18:00 по адресу: Food Factory, ул. Коммунистическая, 14 👌
Да-да, уже 27 июля IT-специалисты Новосибирска получат классную возможность узнать больше о том, как реализуются задачи в Сбере, пообщаться с топовыми экспертами и завести интересные знакомства.
В программе митапа — доклады только на актуальные темы:
✔️ Дмитрий Дрожжин расскажет о том, зачем Сбер изобрел свой язык программирования и как его используют в проектах.
✔️ Марат Юлдашев раскроет все секреты развертывания приложений на стенды с помощью ARGOCD.
✔️ А Владимир Медин поделится историей тернистого пути Jenkins в Enterprise и расскажет, как специалистам Сбера удалось найти решение даже при пиковой нагрузке.
В перерывах вас ждет неформальное общение и вкусный кейтеринг. Регистрируйтесь по ссылке — встречаемся 27 июля в 18:00 по адресу: Food Factory, ул. Коммунистическая, 14 👌
👍6🔥2
В чем разница между классами java.util.Collection и java.util.Collections?
java.util.Collections - набор статических методов для работы с коллекциями.java.util.Collection - один из основных интерфейсов Java Collections Framework.👍17
В этом видео автор показывает, как создать приложение, похожее на Google Фото, с помощью Spring Boot. Кроме того вы узнаете много нового о Spring Dependency Injection и MVC frameworks, Validation and File Handling, Spring Data и базах данных, а также о том, как задеплоить свое приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Spring Boot Tutorial - Crash Course
Ever looked for a comprehensive intro to Spring Boot that is fun and entertaining at the same time? Then have a look at this brand-new episode of "Marco Codes": Spring Boot Tutorial [Crash Course].
In this video, we will build a tiny Google Photos-like clone…
In this video, we will build a tiny Google Photos-like clone…
👍7❤3🎉1
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Распараллеливаем вычисления на пуле потоков.
Разбираемся, как можно по простому ускорить вычисления с помощью параллельного выполнения на пуле потоков.
Исходные коды:
https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/multithreading/parallel2
Поддержать канал на Boosty:
https://…
Исходные коды:
https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/multithreading/parallel2
Поддержать канал на Boosty:
https://…
👍17❤7
Что такое «fail-fast поведение»?
В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают
Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (
• при изменении коллекции счетчик модификаций так же изменяется;
• при создании итератора ему передается текущее значение счетчика;
• при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение.
fail-fast поведение означает, что при возникновении ошибки или состояния, которое может привести к ошибке, система немедленно прекращает дальнейшую работу и уведомляет об этом. Использование fail-fast подхода позволяет избежать недетерминированного поведения программы в течение времени.В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают
ConcurrentModificationException, если после его создания была произведена модификация коллекции, т.е. добавлен или удален элемент напрямую из коллекции, а не используя методы итератора.Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (
modification count):• при изменении коллекции счетчик модификаций так же изменяется;
• при создании итератора ему передается текущее значение счетчика;
• при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение.
👍18❤5
В данном видео рассмотрен пример создания веб-сервиса с использованием следующих технологий:
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Создание веб-сервиса с использованием Spring Boot 3 и AWS SQS
В данном видео рассмотрен пример создания веб-сервиса с использованием следующих технологий:
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Дружное сообщество:
h…
- Spring Boot 3
- Spring Cloud
- Spring Cloud AWS
- Spring WebFlux
- Spring Data R2DBC
- MapStruct
- PostgreSQL
- Flyway
- Docker
Дружное сообщество:
h…
👍33❤6🔥1
Микросервисы. От архитектуры до релиза (2023) PDF
Микросервисная архитектура обеспечивает высокую скорость изменений и хорошую масштабируемость, а также позволяет создавать чистые эволюционирующие системы. Но реализовать свою первую микросервисную архитектуру непросто. Как сделать выбор из множества вариантов и обучить свою команду всем техническим деталям, чтобы максимально увеличить шансы на успех? В этой книге авторы, Ронни Митра и Иракли Надареишвили, предоставили пошаговое руководство для построения эффективной архитектуры микросервисов. Архитекторы и инженеры пройдут путь внедрения, основанный на методах и архитектурах, доказавших свою эффективность для микросервисных систем. Вы создадите операционную модель, проект микросервиса, инфраструктурную основу и два работающих микросервиса, а затем соедините эти компоненты в одну реализацию. Для любого, перед кем стоит задача создания микросервисов, руководство станет бесценным источником знаний.
Микросервисная архитектура обеспечивает высокую скорость изменений и хорошую масштабируемость, а также позволяет создавать чистые эволюционирующие системы. Но реализовать свою первую микросервисную архитектуру непросто. Как сделать выбор из множества вариантов и обучить свою команду всем техническим деталям, чтобы максимально увеличить шансы на успех? В этой книге авторы, Ронни Митра и Иракли Надареишвили, предоставили пошаговое руководство для построения эффективной архитектуры микросервисов. Архитекторы и инженеры пройдут путь внедрения, основанный на методах и архитектурах, доказавших свою эффективность для микросервисных систем. Вы создадите операционную модель, проект микросервиса, инфраструктурную основу и два работающих микросервиса, а затем соедините эти компоненты в одну реализацию. Для любого, перед кем стоит задача создания микросервисов, руководство станет бесценным источником знаний.
👍23❤6🔥3
Чем различаются Enumeration и Iterator.
Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:
• с помощью
• в
•
Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:
• с помощью
Enumeration нельзя добавлять/удалять элементы;• в
Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNext(), Enumeration.nextElement() соответствует Iterator.next() и т.д);•
Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.👍28❤5☃2
Как в JPA использовать AUTO_INCREMENT в MySQL?
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в структуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в структуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
YouTube
Как в JPA использовать AUTO_INCREMENT в MySQL?
#JPA #Spring #mysql
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в струтуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
Блог Vlad Mihalcea:
https://vladmihalcea.com/why-should…
AUTO_INCREMENT не только удобная штука, но иногда и фича поселившаяся в струтуре вашей таблицы задолго до вашего проекта.
Как использовать ее в MySQL и не лишиться прелестей JPA?
Блог Vlad Mihalcea:
https://vladmihalcea.com/why-should…
❤5👍5🔥2
Главное событие лета в Казани — IT Community Day Сбера 💻
Мы ждем вас 29 июля на первой большой ИТ конференции, которая пройдет в новом крутом технохабе Сбера и потрясающей крыше ИТ Парка им Б.Рамеева.
В программе:
👉 20 топовых спикеров Сбера на 3 параллельных сценах
👉 8 тематических стримов: от DS до DevOps, от Java до Soft Skills
👉 квиз и незабываемые активности на протяжении всего мероприятия
👉 нетворкинг, общение с крутыми спецами, HR Speed Dating
😎 After Party на крыше ИТ-парка
Встречаемся 29 июля в 12:00 по адресу: ул. Спартаковская, 2.
Обязательно зарегистрируйтесь по ссылке! 💚
Мы ждем вас 29 июля на первой большой ИТ конференции, которая пройдет в новом крутом технохабе Сбера и потрясающей крыше ИТ Парка им Б.Рамеева.
В программе:
👉 20 топовых спикеров Сбера на 3 параллельных сценах
👉 8 тематических стримов: от DS до DevOps, от Java до Soft Skills
👉 квиз и незабываемые активности на протяжении всего мероприятия
👉 нетворкинг, общение с крутыми спецами, HR Speed Dating
😎 After Party на крыше ИТ-парка
Встречаемся 29 июля в 12:00 по адресу: ул. Спартаковская, 2.
Обязательно зарегистрируйтесь по ссылке! 💚
👍10❤6🔥2
GraphQL with Java and Spring (2023) True PDF, ePUB
Learn first-hand from the founder of GraphQL Java and co-author of Spring for GraphQL how to build GraphQL services in Java.
This book is for anyone who wants to build a production GraphQL service with Java. By the end of this book, you will be confident building your own production GraphQL service with Spring for GraphQL, the official Spring integration built on top of the GraphQL Java engine. Spring for GraphQL makes it easier than ever to build a GraphQL service by eliminating boilerplate code and seamlessly integrating with the Spring ecosystem.
GraphQL Java is the dominant Java implementation of GraphQL, powering services at Twitter, AirBnB, Netflix, Atlassian, and many other companies. By the end of this book, you’ll be leveraging the same engine with Spring for GraphQL.
In this book, you’ll learn key GraphQL concepts, paired with practical advice from our experiences running production GraphQL services at scale.
Learn first-hand from the founder of GraphQL Java and co-author of Spring for GraphQL how to build GraphQL services in Java.
This book is for anyone who wants to build a production GraphQL service with Java. By the end of this book, you will be confident building your own production GraphQL service with Spring for GraphQL, the official Spring integration built on top of the GraphQL Java engine. Spring for GraphQL makes it easier than ever to build a GraphQL service by eliminating boilerplate code and seamlessly integrating with the Spring ecosystem.
GraphQL Java is the dominant Java implementation of GraphQL, powering services at Twitter, AirBnB, Netflix, Atlassian, and many other companies. By the end of this book, you’ll be leveraging the same engine with Spring for GraphQL.
In this book, you’ll learn key GraphQL concepts, paired with practical advice from our experiences running production GraphQL services at scale.
👍14❤6
Как создаются большие проекты
В данном видео концептуально разобран процесс создания "больших" проектов.
В данном видео концептуально разобран процесс создания "больших" проектов.
YouTube
Как создаются большие проекты
В данном видео концептуально разобран процесс создания "больших" проектов.
Дружное сообщество:
https://news.1rj.ru/str/pse_club
Материалы для разработчиков:
https://proselyte.net/
00:00:00 Введение
00:00:55 Бизнес, как основа проекта
00:02:12 Создание отдела разработки…
Дружное сообщество:
https://news.1rj.ru/str/pse_club
Материалы для разработчиков:
https://proselyte.net/
00:00:00 Введение
00:00:55 Бизнес, как основа проекта
00:02:12 Создание отдела разработки…
👍19🔥4🤩2
Фундаментальный подход к программной архитектуре: паттерны, свойства, проверенные методы (2023) PDF
Архитекторы ПО стабильно входят в десятку самых высокооплачиваемых профессий. Но до сих пор не было реального руководства, которое позволило бы разработчикам стать архитекторами. И вот наконец появилась книга, в которой дается всеобъемлющий обзор разнообразных аспектов архитектуры программного обеспечения. Начинающие и уже состоявшиеся архитекторы найдут в ней паттерны архитектур, определения компонентов, приемы построения эволюционных архитектур и множество других тем. Марк Ричардс и Нил Форд обладают бесценным практическим опытом, профессионально занимаются этой темой, уделяя особое внимание принципам построения архитектуры, применимым ко всем технологическим стекам. Они предлагают современный взгляд на архитектуру ПО с учетом всех нововведений последнего десятилетия.
Архитекторы ПО стабильно входят в десятку самых высокооплачиваемых профессий. Но до сих пор не было реального руководства, которое позволило бы разработчикам стать архитекторами. И вот наконец появилась книга, в которой дается всеобъемлющий обзор разнообразных аспектов архитектуры программного обеспечения. Начинающие и уже состоявшиеся архитекторы найдут в ней паттерны архитектур, определения компонентов, приемы построения эволюционных архитектур и множество других тем. Марк Ричардс и Нил Форд обладают бесценным практическим опытом, профессионально занимаются этой темой, уделяя особое внимание принципам построения архитектуры, применимым ко всем технологическим стекам. Они предлагают современный взгляд на архитектуру ПО с учетом всех нововведений последнего десятилетия.
👍17🤩4🔥3
Как между собой связаны Iterable и Iterator?
Интерфейс
Интерфейс
Iterable имеет только один метод - iterator(), который возвращает Iterator.👍21
Jakarta Bean Validation — это спецификация, описывающая API для валидации объектов в рамках Jakarta EE. Вы можете использовать данную спецификацию для валидации в проектах вне зависимости от используемого фреймворка или сервера приложений. Более того, вы можете использовать Jakarta Bean Validation в полностью самостоятельных проектах, не основанных на Jakarta EE или каком-либо фреймворке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Jakarta Bean Validation 3.0 - Jakarta EE
Jakarta Bean Validation — это спецификация, описывающая API для валидации объектов в рамках Jakarta EE. Вы можете использовать данную спецификацию для валидации в проектах вне зависимости от используемого фреймворка или сервера приложений. Более того, вы…
👍9🔥4
Java from EPAM: Учебно-методическое пособие, 2-е изд. (2021) PDF
Второе издание пособия предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и XML. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
Функциональное программирование (ФП) было добавлено в очередную версию Java и ориентировано на вычисления и обработку информации. Этот подход предполагает формирование функции как объекта и передачу этого объекта в метод для использования или, наоборот, сама функция есть возвращаемое методом значение.
Второе издание пособия предназначено для программистов, начинающих и продолжающих изучение технологий Java SE. В книге рассматриваются основы языка Java и концепции объектно-ориентированного и функционального программирования. Также изложены аспекты применения библиотек классов языка Java, включая файлы, коллекции, Stream API, сетевые и многопоточные приложения, а также взаимодействие с СУБД и XML. В конце каждой главы даются теоретические вопросы по изученной главе, тестовые вопросы по материалу главы и задания для выполнения. В приложениях приведены дополнительные материалы с кратким описанием технологий Log4J2 и TestNG.
Функциональное программирование (ФП) было добавлено в очередную версию Java и ориентировано на вычисления и обработку информации. Этот подход предполагает формирование функции как объекта и передачу этого объекта в метод для использования или, наоборот, сама функция есть возвращаемое методом значение.
👍18🔥3😁3
Сравните Iterator и ListIterator.
•
•
•
• При помощи
•
ListIterator расширяет интерфейс Iterator
• ListIterator может быть использован только для перебора элементов коллекции List;•
Iterator позволяет перебирать элементы только в одном направлении, при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();•
ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().• При помощи
ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.👍24🔥4❤1
Грокаем функциональное мышление (2023) PDF
Кодовые базы разрастаются, становясь всё сложнее и запутаннее, что не может не пугать разработчиков. Как обнаружить код, изменяющий состояние вашей системы? Как сделать код таким, чтобы он не увеличивал сложность и запутанность кодовой базы? Большую часть «действий», изменяющих состояние, можно превратить в «вычисления», чтобы ваш код стал проще и логичнее. Вы научитесь бороться со сложными ошибками синхронизации, которые неизбежно проникают в асинхронный и многопоточный код, узнаете, как компонуемые абстракции предотвращают дублирование кода, и откроете для себя новые уровни его выразительности. Книга предназначена для разработчиков среднего и высокого уровня, создающих сложный код. Примеры, иллюстрации, вопросы для самопроверки и практические задания помогут надежно закрепить новые знания.
Кодовые базы разрастаются, становясь всё сложнее и запутаннее, что не может не пугать разработчиков. Как обнаружить код, изменяющий состояние вашей системы? Как сделать код таким, чтобы он не увеличивал сложность и запутанность кодовой базы? Большую часть «действий», изменяющих состояние, можно превратить в «вычисления», чтобы ваш код стал проще и логичнее. Вы научитесь бороться со сложными ошибками синхронизации, которые неизбежно проникают в асинхронный и многопоточный код, узнаете, как компонуемые абстракции предотвращают дублирование кода, и откроете для себя новые уровни его выразительности. Книга предназначена для разработчиков среднего и высокого уровня, создающих сложный код. Примеры, иллюстрации, вопросы для самопроверки и практические задания помогут надежно закрепить новые знания.
👍26🔥3🤩2