В чём разница между
и
synchronized void getS() {}
и
void getS() {
synchronized (this) {
}
}
Внедрение зависимостей
Плохо
Хорошо
Почему
https://habr.com/post/334636/
Плохо
@Autowired
private BeanA beanA;
@Autowired
private beanB beanB;
Хорошо
private BeanA beanA;
private BeanB beanB;
@Autowired
public DI(BeanA beanA, BeanB beanB) {
this.beanA = beanA;
this.beanB = beanB;
}
Почему
https://habr.com/post/334636/
Скрыть ненужные чаты в Telegram
Если используете Telegram Desktop, зайдите в настройки и наберите на клавиатуре "workmode". Приложение предложит перезапустить его. После перезагрузки над чатами появится кнопка для скрытия чатов, у которых вы отключили уведомления.
#telegram
Если используете Telegram Desktop, зайдите в настройки и наберите на клавиатуре "workmode". Приложение предложит перезапустить его. После перезагрузки над чатами появится кнопка для скрытия чатов, у которых вы отключили уведомления.
#telegram
Что такое "сделать"
В статье рассказывается, как правильно работать в проекте, оценивать сроки и никого не подводить.
https://ksoftware.livejournal.com/202173.html
В статье рассказывается, как правильно работать в проекте, оценивать сроки и никого не подводить.
https://ksoftware.livejournal.com/202173.html
Вопросы с собеседований
— виды циклов
— что такое рекурсия
— отличие final, finally, finalize
— что такое try-with-resource
— отличие wait(100) от sleep(100)
— что такое пул строк
— почему String является immutable
— какие виды деревьев существуют
— примеры применения деревьев
— рассказать, как работает HashMap
— что такое автобоксинг
— рассказать про алгоритмы сортировки и их сложности
— для чего нужны дженерики
— виды циклов
— что такое рекурсия
— отличие final, finally, finalize
— что такое try-with-resource
— отличие wait(100) от sleep(100)
— что такое пул строк
— почему String является immutable
— какие виды деревьев существуют
— примеры применения деревьев
— рассказать, как работает HashMap
— что такое автобоксинг
— рассказать про алгоритмы сортировки и их сложности
— для чего нужны дженерики
Code style. Naming
Пара рекомендаций по наименованиям с одного проекта.
— Переменные сервиса или репозитория следует называть просто "service" и "repository". Полное имя нужно давать, когда в классе используется несколько сервисов или репозиториев.
Плохо
Хорошо
— Если имя реквест параметра совпадает с именем параметра метода, то value для аннотации RequestParam указывать не обязательно.
Плохо
Хорошо
Пара рекомендаций по наименованиям с одного проекта.
— Переменные сервиса или репозитория следует называть просто "service" и "repository". Полное имя нужно давать, когда в классе используется несколько сервисов или репозиториев.
Плохо
@Autowired
FooFooBarBarRepository fooFooBarBarRepository;
Хорошо
@Autowired
FooFooBarBarRepository repository;
— Если имя реквест параметра совпадает с именем параметра метода, то value для аннотации RequestParam указывать не обязательно.
Плохо
public ResponseEntity<Void> foo(@RequestParam(value = "barType") String barType,
@RequestParam(value = "barUID") String barUID)
Хорошо
public ResponseEntity<Void> foo(@RequestParam String barType, @RequestParam String barUID)
Code style
Не нужно проверять, содержит ли коллекция элементы, когда нужно по ней итерироваться. Просто итерируйтесь.
Плохо
Хорошо
Не нужно проверять, содержит ли коллекция элементы, когда нужно по ней итерироваться. Просто итерируйтесь.
Плохо
if (!foos.isEmpty() {
for(Foo foo: foos) {
bar.delete(foo);
}
}
Хорошо
for(Foo foo: foos) {
bar.delete(foo);
}
Code style
Если блок if содержит в себе всю логику, то для лучшей читаемости инвертируйте if и переместите весь код из него.
Плохо
Хорошо
Если блок if содержит в себе всю логику, то для лучшей читаемости инвертируйте if и переместите весь код из него.
Плохо
public void foobar(List<Bar> bars) {
if (bars.isEmpty()) {
Bar bar = new Bar();
bar.setA();
bar.setB();
bar.setC();
bar.setD();
repository.save(bar);
}
}
Хорошо
public void foobar(List<Bar> bars) {
if (!bars.isEmpty()) {
return;
}
Bar bar = new Bar();
bar.setA();
bar.setB();
bar.setC();
bar.setD();
repository.save(bar);
}
Дисциплина важнее мотивации
Мотивация – временный порыв совершать задуманное. В один момент запал утихает и желание достигнуть цели уменьшается.
Дисциплина – систематическое прохождение шагов, которые вы наметили для достижения цели. Поэтому для долгосрочных задач дисциплина сильнее мотивация.
"Почему дисциплина важнее мотивации": https://vc.ru/6801-discipline
"Как дисциплинировать себя" с практическими советами: https://vc.ru/7933-practical-discipline
Мотивация – временный порыв совершать задуманное. В один момент запал утихает и желание достигнуть цели уменьшается.
Дисциплина – систематическое прохождение шагов, которые вы наметили для достижения цели. Поэтому для долгосрочных задач дисциплина сильнее мотивация.
"Почему дисциплина важнее мотивации": https://vc.ru/6801-discipline
"Как дисциплинировать себя" с практическими советами: https://vc.ru/7933-practical-discipline
Robert Martin – Clean code
Роберт Мартин в книге "Чистый код" описывает, как должен выглядеть идеальный код. Код в финальной стадии легкочитаем, понятен коллегам без комментариев и выглядит лаконично. Я бы каждый раз переживал за свой код, если бы моим ревьюером был Роберт. В книге много спорных моментов, но от этого она не становится менее крутой. А первые пять глав обязательны к прочтению каждому разработчику.
#книги
Роберт Мартин в книге "Чистый код" описывает, как должен выглядеть идеальный код. Код в финальной стадии легкочитаем, понятен коллегам без комментариев и выглядит лаконично. Я бы каждый раз переживал за свой код, если бы моим ревьюером был Роберт. В книге много спорных моментов, но от этого она не становится менее крутой. А первые пять глав обязательны к прочтению каждому разработчику.
#книги
Как учить SQL
Читать книгу "SQL за 24 часа"
Каждый час в книге - отдельная глава. Первые главы рассказывают, что такое база данных, что такое SQL, какие типы данных существуют. Дальше по нарастающей. Последние главы - о создании/изменении вьюх, расширениях стандарта языка. Вся теория сопровождается примерами для MySQL, Oracle, MS SQL. После каждой главы тесты и задания.
Решать упражнения sql-ex.ru
Задачи от самых простых до просто диких. Решайте их в связке с ресурсом sql-tutorial.ru. Для каждой задачи есть линки по нужной теме. Подучив Джаву и решив сотню задач на sql-ex, можно смело идти на собесы.
Проходить тесты quizful.net/test/sql_basic
Случайно выбираются 20 вопросов из 86 и даётся 20 минут на их решение. Примеры вопросов: "Что делает order by", "Какой будет результат запроса", "Сколько записей будет выбрано", "Сколько записей будет удалено".
#sql #книги #обучение
Читать книгу "SQL за 24 часа"
Каждый час в книге - отдельная глава. Первые главы рассказывают, что такое база данных, что такое SQL, какие типы данных существуют. Дальше по нарастающей. Последние главы - о создании/изменении вьюх, расширениях стандарта языка. Вся теория сопровождается примерами для MySQL, Oracle, MS SQL. После каждой главы тесты и задания.
Решать упражнения sql-ex.ru
Задачи от самых простых до просто диких. Решайте их в связке с ресурсом sql-tutorial.ru. Для каждой задачи есть линки по нужной теме. Подучив Джаву и решив сотню задач на sql-ex, можно смело идти на собесы.
Проходить тесты quizful.net/test/sql_basic
Случайно выбираются 20 вопросов из 86 и даётся 20 минут на их решение. Примеры вопросов: "Что делает order by", "Какой будет результат запроса", "Сколько записей будет выбрано", "Сколько записей будет удалено".
#sql #книги #обучение
Как не надо писать сопроводительное письмо
Нашёл на headhunter'е своё старое сопроводительное письмо. Я рассылал его после окончания университета, когда устраивался стажером. Тогда я откликался на все вакансии, в которых встречал слово "Java". Это письмо - боль.
Оригинал
Доброго времени суток!
Заинтересовала Ваша компания! Рассматриваете ли Вы выпускников ВУЗов на должности стажера/Java Junior? Готов пройти собеседование с начальником IT-отдела.
Дмитрий, номер телефона.
Что в нем не так
Письмо шаблонное. Видно, что его рассылали многим компаниям. Автор не потрудился указать название организации. Нет информации о себе. "Здравствуйте!" читается приятнее, чем "Доброго времени суток!". "Ваша", "Вы" не нужно писать с заглавной. Вместо вопроса нужно кратко описать свой опыт, который подходит для конкретной вакансии.
Завтра напишу о том, как правильно составить сопроводительное.
Нашёл на headhunter'е своё старое сопроводительное письмо. Я рассылал его после окончания университета, когда устраивался стажером. Тогда я откликался на все вакансии, в которых встречал слово "Java". Это письмо - боль.
Оригинал
Доброго времени суток!
Заинтересовала Ваша компания! Рассматриваете ли Вы выпускников ВУЗов на должности стажера/Java Junior? Готов пройти собеседование с начальником IT-отдела.
Дмитрий, номер телефона.
Что в нем не так
Письмо шаблонное. Видно, что его рассылали многим компаниям. Автор не потрудился указать название организации. Нет информации о себе. "Здравствуйте!" читается приятнее, чем "Доброго времени суток!". "Ваша", "Вы" не нужно писать с заглавной. Вместо вопроса нужно кратко описать свой опыт, который подходит для конкретной вакансии.
Завтра напишу о том, как правильно составить сопроводительное.
Как писать сопроводительное письмо
Пишите адресно. Приятнее видеть Хочу работать в компании "Инновационные технологии", чем шаблонное Заинтересовала ваша вакансия
Укажите свои плюсы. Кратко опишите свои достижения. То, чем гордитесь. Можно приложить ссылку на репозиторий.
Пишите по делу. Не нужно рассказывать, что в школе вам нравилась математика. Напишите как использовали технологии, которые требуются в вакансии.
Говорите об ограничениях. Но с готовностью решить их. Если не знаете ключевой фреймворк, который указана в вакансии, то напишите об этом и покажите, что быстро изучите его. Например так. Я не работал со Spring, но прошёл курс на Udemy и написал приложение PetShop.
Не надейтесь на оффер. Отошлите сопроводительное и забудьте о нем. У HR может быть миллион причин не отвечать вам. Может компания тестирует, сколько людей откликнутся на вакансию. А может вы слишком хороши для неё.
Пишите адресно. Приятнее видеть Хочу работать в компании "Инновационные технологии", чем шаблонное Заинтересовала ваша вакансия
Укажите свои плюсы. Кратко опишите свои достижения. То, чем гордитесь. Можно приложить ссылку на репозиторий.
Пишите по делу. Не нужно рассказывать, что в школе вам нравилась математика. Напишите как использовали технологии, которые требуются в вакансии.
Говорите об ограничениях. Но с готовностью решить их. Если не знаете ключевой фреймворк, который указана в вакансии, то напишите об этом и покажите, что быстро изучите его. Например так. Я не работал со Spring, но прошёл курс на Udemy и написал приложение PetShop.
Не надейтесь на оффер. Отошлите сопроводительное и забудьте о нем. У HR может быть миллион причин не отвечать вам. Может компания тестирует, сколько людей откликнутся на вакансию. А может вы слишком хороши для неё.
Как откликнуться на вакансию мечты
Хорошая статья Максима Ильяхова о поиске работы https://megaplan.ru/letters/get-a-job. Примеры взяты про редакторов. Но статья будет полезна всем, кто захочет когда-нибудь пойти на собеседование. Вы узнаете, как правильно читать требования вакансии и откликаться на неё.
Хорошая статья Максима Ильяхова о поиске работы https://megaplan.ru/letters/get-a-job. Примеры взяты про редакторов. Но статья будет полезна всем, кто захочет когда-нибудь пойти на собеседование. Вы узнаете, как правильно читать требования вакансии и откликаться на неё.
Вопросы с собеседований по SQL
— что такое SQL
— какие виды связей бывают
— перечислить виды джоинов
— как используется ключевое слово having
— что такое ACID
— какие есть нормальные формы
— когда может понадобиться денормализация БД
— для чего нужны уровни изоляции
— какие феномены чтения бывают
— что такое SQL
— какие виды связей бывают
— перечислить виды джоинов
— как используется ключевое слово having
— что такое ACID
— какие есть нормальные формы
— когда может понадобиться денормализация БД
— для чего нужны уровни изоляции
— какие феномены чтения бывают
Книга по многопоточке
Если хотите прокачаться в многопоточке, то прочитайте Java Concurrency in Practice. В ней найдете основные концепции, которые актуальны и сейчас. Авторы книги - разработчики Java. Один из них, Даг Ли – создатель пакета java.util.concurrent. Книга на английском, но читается легко. Все примеры кода советую перепечатывать в Идее.
#книги
Если хотите прокачаться в многопоточке, то прочитайте Java Concurrency in Practice. В ней найдете основные концепции, которые актуальны и сейчас. Авторы книги - разработчики Java. Один из них, Даг Ли – создатель пакета java.util.concurrent. Книга на английском, но читается легко. Все примеры кода советую перепечатывать в Идее.
#книги
Вопросы по многопоточке
100 вопросов с ответами по Java Concurrency
https://github.com/arteam/100-Java-Concurrency-questions
100 вопросов с ответами по Java Concurrency
https://github.com/arteam/100-Java-Concurrency-questions