Code conventions
Классы и методы должны быть небольшими и сфокусированы на одной вещи. Плюс в них не должно быть дублирования кода.
Например,
Классы и методы должны быть небольшими и сфокусированы на одной вещи. Плюс в них не должно быть дублирования кода.
Например,
Customer.java
— это сущность, CustomerDao.java
отвечает за работу с БД, в CustomerService.java
сосредоточена вся бизнес-логика, а CustomerValidator.java
нужен для валидации полей.Clean code
Не создавайте переменные, которые не будут потом переиспользоваться
Плохо
Хорошо
Не создавайте переменные, которые не будут потом переиспользоваться
Плохо
boolean removed = myItems.remove(item);
return removed;
Хорошо
return myItems.remove(item);
Хорошо — Плохо
Старайтесь давать имена переменным, методам и классам такие, чтобы сразу было понятно, что они хранят/делают. И ненужно было писать лишние комментарии.
Плохо
Хорошо
Старайтесь давать имена переменным, методам и классам такие, чтобы сразу было понятно, что они хранят/делают. И ненужно было писать лишние комментарии.
Плохо
List list;
Хорошо
List<User> users;
5 тысяч Джавистов
Всем привет! Количество подписчиков на канале перевалило за 5 тысяч, и это кайф. Кайф, что так много людей интересуются Джавой.
Для тех, кто недавно присоединился, меня зовут Зыбкин Дмитрий, я работаю в Москве Java-разработчиком с 2016 года. Канал создал в марте 2018-го для того, чтобы простым языком писать о программировании и начинающим девелоперам было где черпать мотивацию и материалы. Но в процессе это превратилось во что-то большее.
На канале я публикую вопросы с собеседований, выкладываю книги, беру интервью у разработчиков. Ещё пишу на темы, которые затрагивают жизнь любого программиста:
— трудоустройство: как поднять зп, как составить резюме, как писать сопроводительное письмо;
— продуктивность: как воспитать привычку, 10 правил эффективных встреч, 5 принципов хорошего программиста;
— обучение: как освоить SQL, GIT, 5 ошибок при изучении программирования;
и конечно стараюсь не забывать о самой Джаве.
Всем привет! Количество подписчиков на канале перевалило за 5 тысяч, и это кайф. Кайф, что так много людей интересуются Джавой.
Для тех, кто недавно присоединился, меня зовут Зыбкин Дмитрий, я работаю в Москве Java-разработчиком с 2016 года. Канал создал в марте 2018-го для того, чтобы простым языком писать о программировании и начинающим девелоперам было где черпать мотивацию и материалы. Но в процессе это превратилось во что-то большее.
На канале я публикую вопросы с собеседований, выкладываю книги, беру интервью у разработчиков. Ещё пишу на темы, которые затрагивают жизнь любого программиста:
— трудоустройство: как поднять зп, как составить резюме, как писать сопроводительное письмо;
— продуктивность: как воспитать привычку, 10 правил эффективных встреч, 5 принципов хорошего программиста;
— обучение: как освоить SQL, GIT, 5 ошибок при изучении программирования;
и конечно стараюсь не забывать о самой Джаве.
Если каждая компания в вакансии пишет, что у них работают крутые профессионалы, тогда где же все криворукие говнокодеры трудятся?
Подкасты
Слушаете ли вы подкасты? Какие подкасты самые лучшие? Где самые крутые ведущие? Самые интересные темы? Самый качественный звук?
Слушаете ли вы подкасты? Какие подкасты самые лучшие? Где самые крутые ведущие? Самые интересные темы? Самый качественный звук?
Вопросы с собеседований. Git
— что такое git
— отличие git от svn
— как создать репозиторий
— как взять удаленные изменения
— что делает
— зачем нужен
— отличие
— отличие
— что делает
— стратегия git flow
— что такое git
— отличие git от svn
— как создать репозиторий
— как взять удаленные изменения
— что делает
git stash
— зачем нужен
.gitignore
— отличие
git pull
от git fetch
— отличие
git merge
от git rebase
— что делает
git cherry-pick
— стратегия git flow
Java Developer via @vote
Сколько времени вы занимаетесь программированием?
anonymous poll
1-3 года – 570
👍👍👍👍👍👍👍 44%
Меньше года – 333
👍👍👍👍 25%
Больше шести лет – 192
👍👍 15%
4-6 лет – 141
👍👍 11%
Не прогаю – 72
👍 6%
👥 1308 people voted so far.
anonymous poll
1-3 года – 570
👍👍👍👍👍👍👍 44%
Меньше года – 333
👍👍👍👍 25%
Больше шести лет – 192
👍👍 15%
4-6 лет – 141
👍👍 11%
Не прогаю – 72
👍 6%
👥 1308 people voted so far.
Посты о работе
Работа в банках
https://yangx.top/java_developer/80
Работа в Германии
https://yangx.top/java_developer/144
Работа в Facebook
https://yangx.top/java_developer/355
Работа в Epam
https://yangx.top/java_developer/363
Работа в Custis
https://yangx.top/java_developer/374
Работа в банках
https://yangx.top/java_developer/80
Работа в Германии
https://yangx.top/java_developer/144
Работа в Facebook
https://yangx.top/java_developer/355
Работа в Epam
https://yangx.top/java_developer/363
Работа в Custis
https://yangx.top/java_developer/374
Хорошо — Плохо
Не сравнивайте булеву переменную с true или false
Плохо
Хорошо
Не сравнивайте булеву переменную с true или false
Плохо
if (value == true) {
// do something
}
Хорошо
if (value) {
// do something
}
Хорошо — Плохо
Ставьте фигурные скобки с операторами
Плохо
Хорошо
Ещё лучше
Ставьте фигурные скобки с операторами
if
, else
, for
, do
и while
, даже когда тело пустое или содержит только одно утверждение.Плохо
if (value) return x;
else return y;
Хорошо
if (value) {
return x;
} else {
return y;
}
Ещё лучше
return value ? x : y;
Хорошо — Плохо
Плохо
Хорошо
Плохо
System.out.println("My Message");
Хорошо
logger.info("My Message");
Podlodka podcast
Вчера был на записи новогоднего подкаста Подлодки @podlodkanews. Это подкаст о мобильной разработке и не только. Многие темы раскрывают: проектирование, масштабирование, дизайн, управление, организация конференций.
Перед записью ведущие подготовили зрителям ДоДо пиццу, ящик мандаринов и теплую атмосферу. На самой трансляции подвели итоги 2018 года, поделились планами на 2019 и разыграли Яндекс.Станцию.
Топ выпусков Подлодки за 2018:
Профессиональное выгорание
https://soundcloud.com/podlodka/podlodka-72-professionalnoe-vygoranie
Управление памятью с Алексеем Шипилёвым
https://soundcloud.com/podlodka/podlodka-74-upravlenie-pamyatyu
Функциональное программирование
https://soundcloud.com/podlodka/podlodka-44-fp
Вчера был на записи новогоднего подкаста Подлодки @podlodkanews. Это подкаст о мобильной разработке и не только. Многие темы раскрывают: проектирование, масштабирование, дизайн, управление, организация конференций.
Перед записью ведущие подготовили зрителям ДоДо пиццу, ящик мандаринов и теплую атмосферу. На самой трансляции подвели итоги 2018 года, поделились планами на 2019 и разыграли Яндекс.Станцию.
Топ выпусков Подлодки за 2018:
Профессиональное выгорание
https://soundcloud.com/podlodka/podlodka-72-professionalnoe-vygoranie
Управление памятью с Алексеем Шипилёвым
https://soundcloud.com/podlodka/podlodka-74-upravlenie-pamyatyu
Функциональное программирование
https://soundcloud.com/podlodka/podlodka-44-fp
Java Developer pinned «5 тысяч Джавистов Всем привет! Количество подписчиков на канале перевалило за 5 тысяч, и это кайф. Кайф, что так много людей интересуются Джавой. Для тех, кто недавно присоединился, меня зовут Зыбкин Дмитрий, я работаю в Москве Java-разработчиком с 2016…»
Что посмотреть на выходных — 12
IT-карьера в США от рекрутёра Виктории Бородиной
https://youtu.be/ZK87eIRUVVE
Обзор офиса VK
https://youtu.be/fz33Ix3XNpI?t=78
Интервью Егора Бугаенко — чем зарабатывает, соревнование по чистому коду, женщины в IT
https://youtu.be/ca9ou5t6yyY
#чтопосмотреть
IT-карьера в США от рекрутёра Виктории Бородиной
https://youtu.be/ZK87eIRUVVE
Обзор офиса VK
https://youtu.be/fz33Ix3XNpI?t=78
Интервью Егора Бугаенко — чем зарабатывает, соревнование по чистому коду, женщины в IT
https://youtu.be/ca9ou5t6yyY
#чтопосмотреть
Готовлю интервью с человеком, у которого я учился. Он больше 15-ти лет занимается Джавой, а сейчас работает тимлидом в Deutsche Bank в Сингапуре. Присылайте свои вопросы, которые вы бы хотели ему задать.
Работа в Deutsche Bank
Как и обещал, публикую интервью с Эмином Мамедовым. В 2007 году он закончил Воронежский государственный университет. С 2013 работает тимлидом в Deutsche Bank, а два года назад переехал в Сингапур. Интервью вышло объёмным, поэтому я его разбил на несколько постов. Первая часть о внутреннем устройстве в Deutsche Bank и начале пути Эмина, как разработчика.
— В LinkedIn у тебя написано "Lead Application Developer | VP". Что это значит?
В банках принято назначать title сотрудникам. Линейка тайтлов от банка к банку может варьироваться. Например, в Дойче Банке это Graduate - Associate - Assistant Vice President - Vice President - Director - Managing Director. В Goldman Sachs отсутствует AVP. В Citi есть еще SVP - Senior Vice President. Тайтл назначается за крупные достижения.
— Чем VP отличается от AVP?
Общий паттерн у нас в ДБ:
Graduate - стажер, только закончил внутреннюю школу
Associate - первый уровень, за человеком нужен контроль, давать ему задачи
AVP - сотруднику выдают задачу, но дальнейший контроль не требуется. Он сам взаимодействует с остальными командами и решает все проблемы
VP - сотрудник сам определяет фронт работы для себя и своей команды.
D - в подчинении несколько десятков человек или ответственен за крупную часть бизнеса
MD - ответственен за целое подразделение/ответвление
— Как ты перешёл из AVP в VP?
Здесь не могу ответить детально — соглашение о неразглашении. Общими словами — спроектировал и реализовал систему расчета цен финансовых продуктов.
— Класс! Этого достаточно. Чем у вас должен заниматься Lead Application Developer?
Как минимум, быть техническим лидом команды или одним из технических специалистов в области ответственности команды. Так сказать, point of first contact на случай каких-то вопросов. Часто эту роль совмещают с ролью Тим Лида, но это необязательно.
— Какой состав команд обычно?
Здесь все по разному. В предыдущем проекте нас было 8 человек - 7 разработчиков и 1 тестировщик. В текущем проекте - 2 разработчика и 1 тестировщик в "аренде", взят у отдельной команды тестировщиков. То есть его могут поменять в любой момент. Есть команды, где работают 30 человек. Так что все индивидуально.
Аналитики тоже имеются, но они могут не привязываться жестко к команде, а работать на несколько. Может быть выделенный аналитик, а может и без него. В последнем случае задачи напрямую ставятся бизнесом.
Как и обещал, публикую интервью с Эмином Мамедовым. В 2007 году он закончил Воронежский государственный университет. С 2013 работает тимлидом в Deutsche Bank, а два года назад переехал в Сингапур. Интервью вышло объёмным, поэтому я его разбил на несколько постов. Первая часть о внутреннем устройстве в Deutsche Bank и начале пути Эмина, как разработчика.
— В LinkedIn у тебя написано "Lead Application Developer | VP". Что это значит?
В банках принято назначать title сотрудникам. Линейка тайтлов от банка к банку может варьироваться. Например, в Дойче Банке это Graduate - Associate - Assistant Vice President - Vice President - Director - Managing Director. В Goldman Sachs отсутствует AVP. В Citi есть еще SVP - Senior Vice President. Тайтл назначается за крупные достижения.
— Чем VP отличается от AVP?
Общий паттерн у нас в ДБ:
Graduate - стажер, только закончил внутреннюю школу
Associate - первый уровень, за человеком нужен контроль, давать ему задачи
AVP - сотруднику выдают задачу, но дальнейший контроль не требуется. Он сам взаимодействует с остальными командами и решает все проблемы
VP - сотрудник сам определяет фронт работы для себя и своей команды.
D - в подчинении несколько десятков человек или ответственен за крупную часть бизнеса
MD - ответственен за целое подразделение/ответвление
— Как ты перешёл из AVP в VP?
Здесь не могу ответить детально — соглашение о неразглашении. Общими словами — спроектировал и реализовал систему расчета цен финансовых продуктов.
— Класс! Этого достаточно. Чем у вас должен заниматься Lead Application Developer?
Как минимум, быть техническим лидом команды или одним из технических специалистов в области ответственности команды. Так сказать, point of first contact на случай каких-то вопросов. Часто эту роль совмещают с ролью Тим Лида, но это необязательно.
— Какой состав команд обычно?
Здесь все по разному. В предыдущем проекте нас было 8 человек - 7 разработчиков и 1 тестировщик. В текущем проекте - 2 разработчика и 1 тестировщик в "аренде", взят у отдельной команды тестировщиков. То есть его могут поменять в любой момент. Есть команды, где работают 30 человек. Так что все индивидуально.
Аналитики тоже имеются, но они могут не привязываться жестко к команде, а работать на несколько. Может быть выделенный аналитик, а может и без него. В последнем случае задачи напрямую ставятся бизнесом.
— Чуть назад перенесёмся. Расскажи, как начал программировать?
У меня родители программисты. Папа часто приносил компьютеры/ноутбуки домой, чтобы поработать. И вот когда мне было 5-6 лет, он принес очередной компьютер и посадил нас с братом играть в Принц Персии. Это повторилось несколько раз, причем я ни разу не видел, чтобы он работал на них. Вероятнее всего он делал это ночами, когда мы уже спали. И у меня построилась ассоциация — программисты играют в игрушки на работе :)
С тех пор я решил стать программистом. Стал учить математику, решать хитрые задачи, учавствовать в олимпиадах. В один из дней рождения мне подарили программируемый калькулятор Электроника М52, и я стал писать первые программы. А потом в школе началась информатика, где просто был отличный учитель, который смог не отпугнуть от этого рода деятельности.
— Первый опыт работы программистом. Как это было?
Это как-то прошло плавно и не особо заметно, так как два месяца на первом рабочем месте не было проекта. Мы приходили с ребятами на работу и писали совместный проект, который сами себе и придумали. Поэтому когда дали настоящую работу, мы даже этого не заметили.
— Что это была за компания?
Siemens. Заняв первое место в олимпиаде по программированию, которую они проводили, я попал в их школу. После года обучения в этой школе они всех выпускников брали к себе на работу.
— Как получилось, что теперь работаешь в Сингапуре?
Здесь все просто. Как-то со мной связались через LinkedIn рекрутеры из Лондона и стали предлагать различные вакансии из различных стран Европы. Но уровень зарплат за вычетом налогов/цен по сравнению с Россией были не особо впечатляющими. Единственное место, где более или менее можно было позволить себе такую же жизнь, как в Москве, был Амстердам. Я прошел собеседование и получил оттуда оффер. Когда принес его в Дойче Банк, мне напомнили о программе мобилити с возможной релокацией, которая там есть. Я посмотрел открытые позиции и выбрал проект в Сингапуре. После этого прошел собеседование в этот проект и решил остаться в Дойче Банке, так как работа мне нравилась, банк крупнее, стаж не прерывается, да еще и климат получше, чем в Амстердаме.
У меня родители программисты. Папа часто приносил компьютеры/ноутбуки домой, чтобы поработать. И вот когда мне было 5-6 лет, он принес очередной компьютер и посадил нас с братом играть в Принц Персии. Это повторилось несколько раз, причем я ни разу не видел, чтобы он работал на них. Вероятнее всего он делал это ночами, когда мы уже спали. И у меня построилась ассоциация — программисты играют в игрушки на работе :)
С тех пор я решил стать программистом. Стал учить математику, решать хитрые задачи, учавствовать в олимпиадах. В один из дней рождения мне подарили программируемый калькулятор Электроника М52, и я стал писать первые программы. А потом в школе началась информатика, где просто был отличный учитель, который смог не отпугнуть от этого рода деятельности.
— Первый опыт работы программистом. Как это было?
Это как-то прошло плавно и не особо заметно, так как два месяца на первом рабочем месте не было проекта. Мы приходили с ребятами на работу и писали совместный проект, который сами себе и придумали. Поэтому когда дали настоящую работу, мы даже этого не заметили.
— Что это была за компания?
Siemens. Заняв первое место в олимпиаде по программированию, которую они проводили, я попал в их школу. После года обучения в этой школе они всех выпускников брали к себе на работу.
— Как получилось, что теперь работаешь в Сингапуре?
Здесь все просто. Как-то со мной связались через LinkedIn рекрутеры из Лондона и стали предлагать различные вакансии из различных стран Европы. Но уровень зарплат за вычетом налогов/цен по сравнению с Россией были не особо впечатляющими. Единственное место, где более или менее можно было позволить себе такую же жизнь, как в Москве, был Амстердам. Я прошел собеседование и получил оттуда оффер. Когда принес его в Дойче Банк, мне напомнили о программе мобилити с возможной релокацией, которая там есть. Я посмотрел открытые позиции и выбрал проект в Сингапуре. После этого прошел собеседование в этот проект и решил остаться в Дойче Банке, так как работа мне нравилась, банк крупнее, стаж не прерывается, да еще и климат получше, чем в Амстердаме.
Работа в банках. Java, Scala, ML
Во второй части Эмин рассказал о том, какие языки и технологии применяют в Дойче. И ответы на вопросы о перспективах модных направлений: AI, ML, Big Data.
— «Большинство банковских проектов унылые и неинтересные». Согласен с этим утверждением?
Нет, не согласен) По двум причинам. Первая — это дело вкуса. Одному приятно тюнить скорость работы программы, чтобы она укладывалась в наносекунды. Кому-то приятнее UI разрабатывать.
Второе — все зависит от проекта. В банке большое количество направлений. Это и лоу леттенси, многопоточность, биг дата, грид вычисления, блокчейны, разработка для мобильных устройств и многое другое. Тяжело найти организацию, которая в себе так же объединяет различные технические сферы. Все банки предлагают мобилити - вы можете перейти в другие проекты если там есть открытая позиция. Конечно, не получится делать это каждый день, но в разумных пределах допустимо.
— Можешь подробнее расписать, какие задачи решаете? Какие используете технологии?
По технологиям у нас Java Core, Grails, Spring/Spring Boot, Multithreading. На frontend AngularJS, Angular 6, React.
По задачам: опять же особо ничего сказать не могу, нельзя разглашать :)
— Как относишься к модным направлениям типа ML, Big Data, Blockchain?
К сожалению, ни разу не приходилось работать с ними. Но приходилось убирать Big Data техники из проекта, где они были совсем не нужны и прикручены из-за модности. Это основная проблема с "модными" подходами. Их стараются прикрутить хоть куда- нибудь, за частую делая только хуже и усложняя систему. Областей применения этих подходов не так много и работать в таких проектах еще не приходилось.
Во второй части Эмин рассказал о том, какие языки и технологии применяют в Дойче. И ответы на вопросы о перспективах модных направлений: AI, ML, Big Data.
— «Большинство банковских проектов унылые и неинтересные». Согласен с этим утверждением?
Нет, не согласен) По двум причинам. Первая — это дело вкуса. Одному приятно тюнить скорость работы программы, чтобы она укладывалась в наносекунды. Кому-то приятнее UI разрабатывать.
Второе — все зависит от проекта. В банке большое количество направлений. Это и лоу леттенси, многопоточность, биг дата, грид вычисления, блокчейны, разработка для мобильных устройств и многое другое. Тяжело найти организацию, которая в себе так же объединяет различные технические сферы. Все банки предлагают мобилити - вы можете перейти в другие проекты если там есть открытая позиция. Конечно, не получится делать это каждый день, но в разумных пределах допустимо.
— Можешь подробнее расписать, какие задачи решаете? Какие используете технологии?
По технологиям у нас Java Core, Grails, Spring/Spring Boot, Multithreading. На frontend AngularJS, Angular 6, React.
По задачам: опять же особо ничего сказать не могу, нельзя разглашать :)
— Как относишься к модным направлениям типа ML, Big Data, Blockchain?
К сожалению, ни разу не приходилось работать с ними. Но приходилось убирать Big Data техники из проекта, где они были совсем не нужны и прикручены из-за модности. Это основная проблема с "модными" подходами. Их стараются прикрутить хоть куда- нибудь, за частую делая только хуже и усложняя систему. Областей применения этих подходов не так много и работать в таких проектах еще не приходилось.