👥🗺 Product Discovery: что такое дискавери-команда и чем она занимается
Рассказываем: зачем нужно разделение на «дискавери» и «деливери»; в чём суть работы дискавери-команды и кто в неё входит; как запускать полезные продукты дешевле и быстрее конкурентов.
🔗 Основной сайт
🔗 Зеркало
Рассказываем: зачем нужно разделение на «дискавери» и «деливери»; в чём суть работы дискавери-команды и кто в неё входит; как запускать полезные продукты дешевле и быстрее конкурентов.
🔗 Основной сайт
🔗 Зеркало
📖 Где учить программирование?
Источников нереально много, начиная с наскальных записей древних программистов и заканчивая простыми роликами на ютубе.
Чтобы вы зря не тратили драгоценное время, автор этого видео отобрал лучшие книги, ютуб-каналы, блоги и GitHub-репозитории, которые помогут стать true программистом.
https://youtu.be/M8xaRauiDCk
Источников нереально много, начиная с наскальных записей древних программистов и заканчивая простыми роликами на ютубе.
Чтобы вы зря не тратили драгоценное время, автор этого видео отобрал лучшие книги, ютуб-каналы, блоги и GitHub-репозитории, которые помогут стать true программистом.
https://youtu.be/M8xaRauiDCk
YouTube
Где учить Программирование? Подборка бесплатных ресурсов 2023
Привет!
10 000 ₽ за открытие счёта для бизнеса в Альфа-Банке: https://alfa.me/IZsE3A
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
После видоса с книгами, решил поделиться с вами сокровенными ресурсами, как по книге "Как сдвинуть гору фудзи", выбрал ИМХО, 10 лучших процентов…
10 000 ₽ за открытие счёта для бизнеса в Альфа-Банке: https://alfa.me/IZsE3A
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
После видоса с книгами, решил поделиться с вами сокровенными ресурсами, как по книге "Как сдвинуть гору фудзи", выбрал ИМХО, 10 лучших процентов…
#вопросы_с_собеседований
Расскажите об интерфейсе SingleThreadModel.
Интерфейс SingleThreadModel является маркерным - в нем не объявлен ни один метод, однако, если сервлет реализует этот интерфейс, то метод service() этого сервлета гарантированно не будет одновременно выполняться в двух потоках. Контейнер сервлетов либо синхронизирует обращения к единственному экземпляру, либо обеспечивает поддержку пула экземпляров и перенаправление запроса свободному сервлету. Другими словами, контейнер гарантирует отсутствие конфликтов при одновременном обращении к переменным или методам экземпляра сервлета. Однако существуют также и другие разделяемые ресурсы, которые даже при использовании этого интерфейса остаются всё так же доступны обработчикам запросов в других потоках. Т.е. пользы от использования этого интерфейса немного и в спецификации Servlet 2.4 он был объявлен deprecated.
Расскажите об интерфейсе SingleThreadModel.
Интерфейс SingleThreadModel является маркерным - в нем не объявлен ни один метод, однако, если сервлет реализует этот интерфейс, то метод service() этого сервлета гарантированно не будет одновременно выполняться в двух потоках. Контейнер сервлетов либо синхронизирует обращения к единственному экземпляру, либо обеспечивает поддержку пула экземпляров и перенаправление запроса свободному сервлету. Другими словами, контейнер гарантирует отсутствие конфликтов при одновременном обращении к переменным или методам экземпляра сервлета. Однако существуют также и другие разделяемые ресурсы, которые даже при использовании этого интерфейса остаются всё так же доступны обработчикам запросов в других потоках. Т.е. пользы от использования этого интерфейса немного и в спецификации Servlet 2.4 он был объявлен deprecated.
Spring Data Specification: наложение фронтенд-фильтров на репозитории spring data.
https://habr.com/ru/company/otus/blog/707724/
https://habr.com/ru/company/otus/blog/707724/
Хабр
Spring Data Specification: наложение фронтенд-фильтров на репозитории spring data
Коллеги, добрый день. Во многих проектах для работы с данными на бекенде используется Spring Data со всеми плюшками использования декларативного подхода описания запросов к данным на основе...
#вопросы_с_собеседований
Какими свойствами обладает порождаемое equals() отношение эквивалентности?
☕️ Рефлексивность: для любой ссылки на значение x, x.equals(x) вернет true;
☕️ Симметричность: для любых ссылок на значения x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) возвращает true.
☕️ Транзитивность: для любых ссылок на значения x, y и z, если x.equals(y) и y.equals(z) возвращают true, тогда и x.equals(z) вернёт true;
☕️ Непротиворечивость: для любых ссылок на значения х и у, если несколько раз вызвать х.equals(y), постоянно будет возвращаться значение true либо постоянно будет возвращаться значение false при условии, что никакая информация, используемая при сравнении объектов, не поменялась.
Для любой ненулевой ссылки на значение х выражение х.equals(null) должно возвращать false.
Какими свойствами обладает порождаемое equals() отношение эквивалентности?
☕️ Рефлексивность: для любой ссылки на значение x, x.equals(x) вернет true;
☕️ Симметричность: для любых ссылок на значения x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) возвращает true.
☕️ Транзитивность: для любых ссылок на значения x, y и z, если x.equals(y) и y.equals(z) возвращают true, тогда и x.equals(z) вернёт true;
☕️ Непротиворечивость: для любых ссылок на значения х и у, если несколько раз вызвать х.equals(y), постоянно будет возвращаться значение true либо постоянно будет возвращаться значение false при условии, что никакая информация, используемая при сравнении объектов, не поменялась.
Для любой ненулевой ссылки на значение х выражение х.equals(null) должно возвращать false.
Как написать на Java функцию, подобную sizeof в C
Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String — это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все примитивы имеют заранее определенный размер, например int — 4 байта, char — 2 байта, short — 2 байта, long и float — 8 байт и так далее.
https://nuancesprog.ru/p/16592/
Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String — это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все примитивы имеют заранее определенный размер, например int — 4 байта, char — 2 байта, short — 2 байта, long и float — 8 байт и так далее.
https://nuancesprog.ru/p/16592/
NOP::Nuances of programming
Как написать на Java функцию, подобную sizeof в C
В качестве упражнения реализуем функцию sizeOf() на Java, чтобы без проблем получать размеры разных типов данных, как в C.
💫 Новогодний розыгрыш от Proglib academy!
Друзья, Новый год начинается с подарков, а лучший подарок себе – новые знания или даже профессия. И поэтому мы объявляем розыгрыш среди наших любимых подписчиков.
Подарки под елкой:
🥇 Apple AirPods Pro 2
🥈 Курс «Математика для Data Science
🥉 Курс: «Алгоритмы и структуры данных»
Подробнее об условиях участия, читайте тут: https://proglib.io/w/e72668b2
Друзья, Новый год начинается с подарков, а лучший подарок себе – новые знания или даже профессия. И поэтому мы объявляем розыгрыш среди наших любимых подписчиков.
Подарки под елкой:
🥇 Apple AirPods Pro 2
🥈 Курс «Математика для Data Science
🥉 Курс: «Алгоритмы и структуры данных»
Подробнее об условиях участия, читайте тут: https://proglib.io/w/e72668b2
#вопросы_с_собеседований
Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?
Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для HashMap это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.
Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?
Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для HashMap это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.
15 советов для развития экспертизы в Java
Предложенная сегодня статья достаточно детально, подробно и обоснованно расписывает необходимые шаги, которые нужно предпринять, чтобы стать экспертом в Java. 😃
Приятного чтения!
https://dev.to/weder96/15-tips-to-become-a-java-expert-1acj
Предложенная сегодня статья достаточно детально, подробно и обоснованно расписывает необходимые шаги, которые нужно предпринять, чтобы стать экспертом в Java. 😃
Приятного чтения!
https://dev.to/weder96/15-tips-to-become-a-java-expert-1acj
DEV Community
15 Tips to Become a Java Expert!
Content Introduction 1. Study the basic concepts until you understand the whole basis...
Введение в сериализацию
Сериализация — это процесс сохранения состояния объекта в последовательность байт.
Смотреть видео
Сериализация — это процесс сохранения состояния объекта в последовательность байт.
Смотреть видео
YouTube
Урок по Java 46: Сериализация
Cкидки до 22-го января на все курсы всего за 9.99:
Каждый купон расчитан на 10 покупок, спешите!
Новый курс по Photoshop:
https://www.udemy.com/course/draft/3356128/?couponCode=4CD42A416E75E5BB51B2
HIBERNATE:
https://www.udemy.com/course/hibernate-kurs/…
Каждый купон расчитан на 10 покупок, спешите!
Новый курс по Photoshop:
https://www.udemy.com/course/draft/3356128/?couponCode=4CD42A416E75E5BB51B2
HIBERNATE:
https://www.udemy.com/course/hibernate-kurs/…
Вашему вниманию предлагается новая подборка Java-новостей от InfoQ: 😃
✔️ Стал доступен билд № 29 для JDK 20 (ранний доступ)
✔️ Стал доступен билд № 3 для JDK 21 (ранний доступ)
✔️ Вышли релизы Spring Boot 3.0.1 и Spring Boot 2.7.7
и д.р.
Приятного чтения!
Читать статью
✔️ Стал доступен билд № 29 для JDK 20 (ранний доступ)
✔️ Стал доступен билд № 3 для JDK 21 (ранний доступ)
✔️ Вышли релизы Spring Boot 3.0.1 и Spring Boot 2.7.7
и д.р.
Приятного чтения!
Читать статью
Какие существуют операторы SQL?
операторы определения данных (Data Definition Language, DDL):
•
•
•
операторы манипуляции данными (Data Manipulation Language, DML):
•
•
•
•
операторы определения доступа к данным (Data Control Language, DCL):
•
•
•
операторы управления транзакциями (Transaction Control Language, TCL):
•
•
•
операторы определения данных (Data Definition Language, DDL):
•
CREATE
создает объект БД (базу, таблицу, представление, пользователя и т. д.),•
ALTER
изменяет объект,•
DROP
удаляет объект;операторы манипуляции данными (Data Manipulation Language, DML):
•
SELECT
выбирает данные, удовлетворяющие заданным условиям,•
INSERT
добавляет новые данные,•
UPDATE
изменяет существующие данные,•
DELETE
удаляет данные;операторы определения доступа к данным (Data Control Language, DCL):
•
GRANT
предоставляет пользователю (группе) разрешения на определенные операции с объектом,•
REVOKE
отзывает ранее выданные разрешения,•
DENY
задает запрет, имеющий приоритет над разрешением;операторы управления транзакциями (Transaction Control Language, TCL):
•
COMMIT
применяет транзакцию,•
ROLLBACK
откатывает все изменения, сделанные в контексте текущей транзакции,•
SAVEPOINT
разбивает транзакцию на более мелкие.Мессенджеры на работе — это не прокрастинация, или как мы сделали сервис для автотестирования.
https://habr.com/ru/company/rtlabs/blog/708052/
https://habr.com/ru/company/rtlabs/blog/708052/
Хабр
Мессенджеры на работе — это не прокрастинация, или как мы сделали сервис для автотестирования. Часть 1
Однажды у нас появилась идея отправлять отчёты о выполнении автотестов в мессенджер Telegram. Постепенно эта идея переросла в сервис, который позволяет запускать тесты, оповещать об ошибках и получать...
🕓 Сколько часов в день может работать программист — [4:03]
Разные программисты из Яндекса с разным стажем работы рассказывают, сколько часов в день, по их мнению, может работать программист.
Примечательно, что более молодые и менее опытные сотрудники отмечают, что готовы работать чуть ли не 24/7, в то время как бывалые разработчики гораздо более адекватно оценивают свои силы.
Перейти к просмотру
Разные программисты из Яндекса с разным стажем работы рассказывают, сколько часов в день, по их мнению, может работать программист.
Примечательно, что более молодые и менее опытные сотрудники отмечают, что готовы работать чуть ли не 24/7, в то время как бывалые разработчики гораздо более адекватно оценивают свои силы.
Перейти к просмотру
YouTube
Сколько часов в день может работать программист?
Хотя программистов и называют технарями, а не гуманитариями, их работа —очень творческая. Сколько времени в день можно писать код? Сколько времени нужно, чтобы о нем подумать? Применим ли к программистам восьмичасовой рабочий день? На этот вопрос отвечают…
#вопросы_с_собеседований
Сравните Iterator и ListIterator.
☕️ ListIterator расширяет интерфейс Iterator;
☕️ ListIterator может быть использован только для перебора элементов коллекции List;
☕️ Iterator позволяет перебирать элементы только в одном направлении при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
☕️ ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
☕️ При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
Сравните Iterator и ListIterator.
☕️ ListIterator расширяет интерфейс Iterator;
☕️ ListIterator может быть использован только для перебора элементов коллекции List;
☕️ Iterator позволяет перебирать элементы только в одном направлении при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
☕️ ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
☕️ При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
#вопросы_с_собеседований
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.
public static void main(String[] args) {
List<Integer> list = Collections.emptyList();
list.add(0);
}
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.
List<Integer> list = Collections.emptyList();
list.add(0);
}