Java Developer
6.45K subscribers
235 photos
8 videos
12 files
279 links
MAKE JAVA GREAT AGAIN

Мемы: @java_memes
加入频道
Подробный ответ в статье, которую сам недавно заюзал https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/
Что такое JSON

Полное название JavaScript Object Notation. Джейсон нужен для представления объекта в виде строки. Такое представление часто используют разработчики для передачи данных с фронта на сервер и в обратную сторону.

Структура Джейсона - это набор пар ключ: значение. Простой пример: { "firstName": "Иван" }.

Значениями могут быть:
— Объект { ... }
— Массив [ ... ]
— Строка в двойных кавычках
— Число
— Логическое значение true/false
null
Пример посложнее:

{
"orderID": 123,
"shopperName": "Ваня Ибрагимов",
"shopperEmail": "[email protected]",
"contents": [
{
"productID": 34,
"productName": "Boroda",
"quantity": 1
},
{
"productID": 56,
"productName": "Giroskuter",
"quantity": 2
}
],
"orderCompleted": true,
"comment": null
}
Майский рейтинг языков программирования от TIOBE
Ситуация. Вы ходили по собеседованиям и получили три оффера. У каждой компании свой плюс: тимлид, зарплата, технологии. Что повлияет на ваш выбор?
anonymous poll

Крутые технологии – 223
👍👍👍👍👍👍👍 44%

Опытный тимлид – 171
👍👍👍👍👍 34%

Высокая зарплата – 113
👍👍👍👍 22%

👥 507 people voted so far.
Когда нужно преобразовать List в Map
5 принципов хорошего программиста

Два года назад прочитал крутую статью "как повысить продуктивность" [https://habr.com/post/299/]. Я переформулировал её в "5 принципов хорошего программиста", которым стараюсь постоянно следовать. Вот эти принципы:

1. Использовать поиск. Не ищите глазами нужный файл, текст, строку. Пользуйтесь функциями поиска везде, где это возможно.

2. Автоматизировать. Если какое-то действие повторяете больше 10 раз, его стоит автоматизировать.

3. Учить скриптовые языки. Python, Perl, Bash - эти парни облегчают жизнь программистам, если умеешь ими пользоваться.

4. Освоить IDE. IDE или среда разработки - оружие разработчика. А чтобы владеть ею мастерски, изучайте горячие клавиши.

5. Саморазвиваться. Выделять каждый день время на изучение новых технологий. Когда я не развиваюсь, то чувствую, что деградирую.

Хороший программист пишет код за минимальное время, отлично знает свою IDE, развивается и автоматизирует то, что приходится часто повторять.
Code Conventions

Code convetions или соглашения по написанию кода нужны для его читаемости. Любую строчку кода можно написать по-разному. Code conventions приводят проект к единому стилю, который известен каждому программисту. Не должно получиться так, что человек переходя с одного проекта на другой страдал, привыкая к новому стилю написания.

Для каждого языка программирования разработчики используют свои соглашения. На большинстве Java-проекта часто принимают за основу Google Java Style Guide https://google.github.io/styleguide/javaguide.html

IntelliJ IDEA умеет сама поправлять код по Code Style. Для этого используйте комбинацию CTRL+ALT+L

#CleanCode
Технический лидер

Есть множество терминов, которые обозначают технического руководителя разработчиков: Team Lead, Tech Lead, Lead Developer. Люди на этих должностях в зависимости от компании выполняют разные обязанности. Технический лидер всё это обобщает.

Технический лидер – это старший товарищ на проекте с большим опытом разработки. Часто он лучше всех знает проект и дольше всех на нём работают.

Чем техлид занимается:
- ведет техническую часть проекта
- принимает технические решения
- ответственен за качество кода, но не за продукт
- ревьюит код
- менторит джунов
- управляет кодом, который пишут участники проекта

Чем не занимается:
- не вмешивается в процесс создания продукта
- не занимается руководством командой
- не отвечает за сам продукт
Олег Мохов @olegmokhov (руководитель службы разработки интерфейсов Яндекса) писал в своём канале о частой ошибке в компаниях – назначении техлида руководителем. Он называет её «убийство разработчика».

Многие считают это логичным продолжением карьеры: разработчик –> старший разработчик –> техлид -> руководитель. Техлид не занимается руководством командой. Многие техлиды не хотят руководить, им нравится писать код и они эффективны именно в этом, но будут не эффективны как руководители или могут вообще уволиться через полгода, после «долгожданного повышения».
Сегодня буду выкладывать задания из тестирования на OCA. OCA - Oracle Certified Associate.
Что будет выведено на экран?
Ответ — false. В классе Name не переопределен метод hashCode. Соответственно не соблюдён контракт для equals и hashCode, который необходим для нормальной работы HashSet.

Про hashCode и equals подробно на примерах написано тут: https://habr.com/post/168195/
Контракт equals и hashCode

1. Если объекты равны, то их хэшкоды тоже должны быть равны
2. Если хэшкоды равны, то объекты не обязательно равны
Что произойдёт после старта приложения?
Java Developer
Что произойдёт после старта приложения?
На 4 строчке будет брошено исключение NullPointerException, блок catch не обработает данное исключение, выполнение перейдёт в блок finally. В итоге на экране будет написано c, иключение пробросится выше и программа завершит выполнение, выведя стэк трейс с NullPointerException.
Какие из перечисленных переменных являются ссылочными?

int[] ints;
long[] longs;
String[] strings;
Object[] objects;
Java Developer
Какие из перечисленных переменных являются ссылочными? int[] ints; long[] longs; String[] strings; Object[] objects;
Все типы массивов являются ссылочными переменными. Хоть int и long примитивные типы, но int[] и long[] всё равно ссылочные типы.
Сертификация по Джаве

Сертификацию по Java проводит Oracle, как компания, которой принадлежат права на язык программирования. Есть два уровня сертификатов: Associate и Professional. Professional сложнее, для его сдачи нужно знать больше тем и предварительно получить Associate. Сами сертификаты называются Oracle Certification Associate (OCA) и Oracle Certification Professional(OCP).

Для каждой версии Джавы есть отдельный сертификат: OCA Java SE 8, SE 7, SE 6... Плюс сертификаты на повышение. Например, если у вас есть OCP Java SE 7, то можете сдать экзамен, который содержит вопросы только по 8 Джаве. Если до этого не получали сертификат, то имеет смысл сдавать на OCA Java SE 8 и OCP Java SE 8, так как по Java 9 и 10 нет сертификации.

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

Для получения OCA и OCP по 8 Джаве нужно сдать экзамены Java SE 8 Programmer I и Java SE 8 Programmer II. Цена каждого экзамена 245$.

Темы, по которым будут вопросы на Java SE 8 Programmer I:
— Запуск программ
— Принципы ООП
— Типы в Джаве
— Условные операторы и циклы
— Массивы и коллекции
— Исключения
— Лямбда-выражения

Темы по Java SE 8 Programmer II:
— Устройство класса
— Дженерики и коллекции
— Лямбды и функциональные интерфейсы
— Стримы
— Работа с датами
— Основы I/O
— NIO.2
— Многопоточность
— JDBC
Уровни сертификации на сайте Oracle