Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Вакансия Middle Java-разработчика в Swag Masha

Устал от работы в "кровавом энтерпрайзе"? Веришь, что язык Java достоин лучшего, чем бесконечные вайринги банковских фабрик и страховых синглтонов? Думал о том, чтобы поработать в геймдеве на бэкэнде?

Если да, то в компании Swag Masha есть отличная вакансия специально для тебя! Gamedev, Java, Spring, Postgres, автотесты, зп в $ (от 2100 до 2800 на руки по результатам собеседования), официальное оформление, удалёнка (если хочешь видеть коллег, милости просим в наш офис в Минске). Без тонн бумаги, без бюрократии!

Подробнее о вакансии читай здесь: https://hh.ru/vacancy/38284124
- Можно ли использовать строки в конструкции switch?

- Да, начиная с Java 7 в операторе switch можно использовать строки, ранние версии Java не поддерживают этого. При этом:

☕️участвующие строки чувствительны к регистру;
☕️используется метод equals() для сравнения полученного значения со значениями case, поэтому во избежание NullPointerException стоит предусмотреть проверку на null.
☕️согласно документации, Java 7 для строк в switch, компилятор Java формирует более эффективный байткод для строк в конструкции switch, чем для сцепленных условий if-else.
Напоминаем, что мы проводим конкурс (с увеличенным призовым фондом) во ВКонтакте для самых креативных из вас на лучший мем для статьи с нашего сайта. Правила простые:

1. Вы берете произвольную статью с сайта, не утратившую свою актуальность
2. Делаете для нее мем
3. Отправляете в предложенные новости ссылку и вашу картинку
4. Мы оформляем и публикуем.

Автор картинки с публикацией с наибольшим охватом среди всех нам отправленных получит 15 тысяч рублей. Количество мемов, которые может отправить один человек, не ограничено. Поехали: https://vk.com/proglib

Срок окончания конкурса — 18 августа 2020 года.
🐍 Тест на знание языка Python

Пришло время узнать, как хорошо вы разбираетесь в Python. Проверьте свои знания в нашем тесте из 15 вопросов по различным аспектам языка. Сможете правильно ответить на все вопросы?

https://proglib.io/w/4b520a21
Модульное/компонентное тестирование (unit testing) - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.

Модульные тесты можно условно поделить на две группы:

☕️ тесты состояния (state based), проверяющие, что вызываемый метод объекта отработал корректно, проверяя состояние тестируемого объекта после вызова метода.

☕️ тесты взаимодействия (interaction tests), в которых тестируемый объект производит манипуляции с другими объектами. Применяются, когда требуется удостовериться, что тестируемый объект корректно взаимодействует с другими объектами.
👆Что выведет этот код?

1. Hi, World!
2. Hello, World!
3. Код не скомпилируется
#вопросы_с_собеседований
Что представляет собой «обмен сообщениями»?
Хотите начать карьеру в IT, но не знаете, какое направление выбрать? Станьте веб-разработчиком на Java в Skillfactory за год. Вы научитесь программировать на Java — самом востребованном языке программирования, освоите бекенд и DevOps. Технические знания не важны — мы учим с нуля. Устроиться на работу с помощью нашего карьерного центра вы сможете уже через год, и продолжите обучение до middle-уровня в рамках этой же программы. Круто?

Программа курса:

— Освоите Java на тренажерах и напишете 50 программ.
— Изучите Backend, фреймворки, научитесь тестировать приложения.
— Познакомитесь с DevOps и разработаете первые микросервисы
— Создадите 3 финальных проекта для портфолио.

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

🚀Получите курс со скидкой 40%: https://clc.to/6rUcUw
Что представляет собой «обмен сообщениями»?
Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия. В ООП посылка сообщения (вызов метода) — это единственный путь передать управление объекту. Если объект должен «отвечать» на это сообщение, то у него должен иметься соответствующий данному сообщению метод. Так же объекты, используя свои методы, могут и сами посылать сообщения другим объектам. Обмен сообщениями реализуется с помощью динамических вызовов, что приводит к чрезвычайно позднему связыванию (extreme late binding).
Айтишники, хорошая новость! 👾

Появился канал с удалёнными вакансиями в IT: @theyseeku_it

Здесь ищут девелоперов, разработчиков, проект-менеджеров, UX/UI-дизайнеров, SEOшников и других специалистов.

• Вакансии от известных IT-компаний;
• Заработная плата от 30 до 500 тысяч рублей;
• Должности для опытных и начинающих специалистов;
• Только удалённая занятость.

Присоединяйся и стань частью IT-индустрии!
Шаблон (паттерн) проектирования (design pattern) — это проверенное и готовое к использованию решение. Это не класс и не библиотека, которую можно подключить к проекту, это нечто большее - он не зависит от языка программирования, не является законченным образцом, который может быть прямо преобразован в код и может быть реализован по разному в разных языках программирования.

Плюсы использования шаблонов:

☕️ снижение сложности разработки за счёт готовых абстракций для решения целого класса проблем.
☕️ облегчение коммуникации между разработчиками, позволяя ссылаться на известные шаблоны.
☕️ унификация деталей решений: модулей и элементов проекта.
☕️ возможность, отыскав удачное решение, пользоваться им снова и снова.
☕️ помощь в выборе наиболее подходящего варианта проектирования.

Минусы:

☕️ слепое следование некоторому выбранному шаблону может в особых случаях привести к усложнению программы.
​​Готовим востребованных разработчиков на Java с личным ментором online. У нас ты получишь опыт в бизнес проекте и поддержку до первого рабочего дня. Оплата за обучение только после успешного трудоустройства на позицию разработчика.

Пройти тестовое задание 🙋‍♂️👉 https://clck.ru/Q7nrk

👇Что ждет студента:
1. Подготовка с личным ментором online по индивидуальной программе
2. Жесткий контроль знаний на каждом этапе
3. Обучение востребованному на рынке стеку технологий: Java Core, Maven, Git, Tomcat, Spring MVC, Core, Security, Hibernate
4. Отработка знаний в настоящем бизнес проекте, который дает опыт и строчку для резюме
5. Общение с одногруппниками и студентами-разработчиками в групповом чате slack (более 1500 человек)
6. Быстрое карьерное и финансовое развитие за счет программы поддержки на 2 года: митапы, мастер-классы, закрытые лекции со спикерами и offline интенсивы
7. Гарантированное трудоустройство и первая зарплата от 100 000 рублей

Требования к кандидату:
• Обучение минимум 25 часов в неделю
• Проживание или готовность к переезду в Москву для трудоустройства
XML, eXtensible Markup Language (расширяемый язык разметки) - язык с простым формальным синтаксисом, хорошо приспособленный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком.

XML расширяем, он не фиксирует разметку, используемую в документах и разработчик волен создавать разметку в соответствии с потребностями конкретной области, будучи ограниченным лишь синтаксическими правилами языка.
Generics - это технический термин, обозначающий набор свойств языка, позволяющих определять и использовать обобщенные типы и методы. Обобщенные типы или методы отличаются от обычных тем, что имеют типизированные параметры.

Примером использования обобщенных типов может служить Java Collection Framework. Так, класс LinkedList<E> - типичный обобщенный тип. Он содержит параметр E, который представляет тип элементов, которые будут храниться в коллекции. Создание объектов обобщенных типов происходит посредством замены параметризированных типов реальными типами данных. Вместо того, чтобы просто использовать LinkedList, ничего не говоря о типе элемента в списке, предлагается использовать точное указание типа LinkedList<String>, LinkedList<Integer> и т.п.