Size: a a a

2018 May 10
Java Developer
Книга по многопоточке

Если хотите прокачаться в многопоточке, то прочитайте Java Concurrency in Practice. В ней найдете основные концепции, которые актуальны и сейчас. Авторы книги - разработчики Java. Один из них, Даг Ли – создатель пакета java.util.concurrent. Книга на английском, но читается легко. Все примеры кода советую перепечатывать в Идее.

#книги
источник
Java Developer
источник
Java Developer
Вопросы по многопоточке

100 вопросов с ответами по Java Concurrency
https://github.com/arteam/100-Java-Concurrency-questions
источник
2018 May 12
Java Developer
Почему не стоит работать в банке

Недавно кинули пост, в котором разработчик объясняет, почему его не интересуют вакансии в банковской сфере. Вот эти причины:

1. Банковская сфера - это уныло. Весь банковский софт - это либо типичный энтерпрайз со счетами, транзакциями, отчётами и т. п., либо торговля на бирже, сводящаяся к извращённым техникам написания одних и тех же алгоритмов с целью обойти конкурентов.

2. Отсутствие простора для творчества. Это вам не продукт, где я как программист могу сам придумывать и реализовывать фичи, и не социальная сеть, где на миллионах пользователей можно в режиме реального времени провести какое-нибудь исследование.

3. Правила, ограничения и бюрократия. Даже если айтишникам в банке, действительно, вольготней, чем остальному персоналу, не бывает такого, что в многотысячной компании какой-то отдел живёт совсем по своим правилам. Многоуровневый менеджмент, корпоративные политики и т. п. - так или иначе всё равно есть; об атмосфере стартапа можно забыть. Важный фактор, что в банке всё измеряется деньгами, а это неизбежно приводит к характерному стилю менеджмента.

4. Офис. Для меня, к примеру, офис - второй дом. Помимо работы в комфортных условиях я там завтракаю и обедаю, отмечаю праздники, играю в игры, занимаюсь спортом, участвую в семинарах и т. д. В интернете немало прикольных статей на тему "офисы IT компаний". Покажите что-нибудь похожее про офисы банков!

5. Что делает банковский софт? Помогает банку зарабатывать деньги. Только и всего! А я не хочу тратить свою жизнь на то, чтобы писать софт, просто помогающий другим наживаться. В этом смысле даже работа на заводе привлекательней: ведь там производятся реальные блага для человечества. А я хочу делать мир лучше. Совершенствовать сети и протоколы связи, давать людям новые способы общения, улучшать алгоритмы хранения, передачи и поиска информации, автоматизировать повседневную деятельность, разрабатывать открытые решения, которые принесут пользу не только нашей компании, но и другим.

6. Наконец, инновации. Я хочу работать в компании, которая не только использует передовые технологии, но и сама двигает IT индустрию вперёд. Творить будущее. Это делают именно IT компании, банки лишь пользуются плодами их изобретений.

#компании #банки
источник
2018 May 13
Java Developer
О работе в банках

Предыдущий пост спорный, поэтому поделюсь своими мыслями. Я не работал в банке, но по рассказам коллег сложилось следующее впечатление. Банк - бездушная неповоротливая корпорация, где любое решение принимается очень медленно. Часто на проекте разработчики используют старые технологии, а ресурсы на рефакторинг начальство не выделяет.

Есть и новые проекты, где программисты работают с современным стеком и решают интересные задачи. На такие проекты сложно попасть и тяжело на них работать.

Итог. Для первой работы банк - гуд. Главное, чтобы были сильные коллеги, у которых можно учиться. Кто на опыте, кропотливее относитесь к выбору проекта.

#компании #банки
источник
Java Developer
Евгений Трифонов прислал статьи про банковские офисы. Сбербанк - https://vc.ru/21118-sber-new-office, Альфа-банк - https://habr.com/company/alfa/blog/233291/, Тинькофф - https://rb.ru/story/atmosfera-tinkoff/

А тут https://habr.com/company/dbtc/blog/319784/ Дев Менеджер рассказывает, как он работает в Дойче Банке. Про легаси код, опытных коллег и дальнейший рост.

#компании #банки #офисы
источник
Java Developer
Павел Дуров ещё в 2013 году написал про большие компании

#компании
источник
2018 May 14
Java Developer
В марте был в Мюнхене и познакомился там с java разработчиком. Он переехал с семьёй в Германию из Украины два года назад.

Сейчас готовлю для канала интервью с Сашей (так его зовут). Он расскажет, как получил оффер в Мюнхене, как обустроился, сколько получают и сколько тратят разработчики в самом дорогом городе Германии.

Если хотите задать Саше вопрос, пишите мне в личку @zybkin
источник
Java Developer
Проверка, является ли символ цифрой
источник
Java Developer
Она же со стандартными средствами JDK
источник
2018 May 15
Java Developer
Есть таблица Post и таблица Tag. Как создать связь many-to-many с дополнительными колонками с помощью JPA/Hibernate?
источник
Java Developer
Подробный ответ в статье, которую сам недавно заюзал https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/
источник
2018 May 16
Java Developer
Что такое JSON

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Хороший программист пишет код за минимальное время, отлично знает свою IDE, развивается и автоматизирует то, что приходится часто повторять.
источник
2018 May 20
Java Developer
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
источник
2018 May 23
Java Developer
Технический лидер

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

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

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

Чем не занимается:
- не вмешивается в процесс создания продукта
- не занимается руководством командой
- не отвечает за сам продукт
источник