JavaStart @javastarttech Channel on Telegram

JavaStart

@javastarttech


Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech

JavaStart (Russian)

Добро пожаловать в канал JavaStart! Если вы хотите научиться программировать на Java, то вы попали по адресу. Наш канал предлагает уникальные курсы по изучению Java, которые помогут вам освоить этот профессиональный язык программирования. Мы предоставляем доступ к нашей платформе с курсами по Java, которые разработаны специально для тех, кто только начинает свой путь в программировании. На нашем YouTube канале также можно найти обучающие видео, которые помогут вам более гоще понять принципы работы Java. Присоединяйтесь к нам и начните свое увлекательное путешествие в мир программирования с JavaStart!

JavaStart

21 Jan, 16:41


JavaStart. Подписаться

JavaStart

20 Jan, 16:55


Чем отличаются Junior, Middle и Senior разработчики?

Позиции джуниора, мидла и синьора не имеют ничего общего с возрастом и опытом — джуниор может быть старше синьора, а мидл может заниматься программированием дольше него. Синьора от джуниора и мидла отличает нечто большее, чем навыки кодинга!

Знания

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

Работа с кодом

Коммерческая разработка — это не только общение с компьютером, но и общение с людьми. Код следует делать понятным для специалистов, которые обратятся к нему в будущем. Новая команда, ранее никогда не видевшая программу, должна суметь отредактировать или дополнить ее. Именно здесь особенно ярко проявляется разница между джуниорами и синьорами.

В данном контексте не будем говорить о мидлах — понятно, что они находятся где-то между джунами и синьорами, хоть и ближе ко вторым, чем к первым. Как правило, разработчики среднего уровня уже хотя бы раз прошли весь цикл создания программы, совершили множество самых простых ошибок и извлекли уроки из них.

Как вычислить джуниора?

Джуниоры неопытны. Многие из них только закончили учебу и нашли первую полноценную работу. Часто они хотят, чтобы код просто выполнял свои функции. И для них это уже хорошая программа.
Создать простой код сложно, и от младших разработчиков его ждать не стоит — обычно их программы весьма причудливы.

А что насчет синьора?

Глядя на код продвинутого разработчика, можно подумать: и это все? Где остальная часть? Синьор пишет простой, понятный и, возможно, даже тупой код. И это одно из самых главных достоинств программиста.
Синьор думает о коде не так, как джуниор: созданные опытным специалистом программы удобно обслуживать и масштабировать.

Помимо навыков написания кода, об уровне разработчика говорят еще несколько факторов.

Джуны обычно выполняют самые простые задачи. Например, они не занимаются его архитектурой. Мидлы тоже не разрабатывают законченные решения, а просто выполняют отдельные шаги. От джуниоров они отличаются тем, что могут выполнять рутинные задачи без особого контроля. Синьоры же могут разработать приложение самостоятельно!

Это не значит, что у продвинутых разработчиков не возникает сложностей. Как и все остальные, они сталкиваются с ними ежедневно, но от джуниоров и мидлов синьоры отличаются умением правильно задавать вопросы. Мидлы тоже на это способны, когда речь идет об относительно рутинных задачах, но в более сложных ситуациях им нужна помощь.

Джуниоры неопытны, и им необходим толчок в нужном направлении от мидла или синьора.

JavaStart. Подписаться

JavaStart

18 Jan, 17:28


JavaStart. Подписаться

JavaStart

16 Jan, 15:41


SQL, базы данных. Часть 19.

Сортировка результатов.

В SQL часто кроме фильтрации данных, также часто требуется отсортировать их по одному из столбцов.

В первом уроке мы написали SQL-запрос для получения данных о совершеннолетних пользователях (Картинка 1). Посмотрим на него еще раз:

SELECT last_name, first_name, birthday, age FROM users WHERE age >= 18;

Обратите внимание, что сейчас данные никак не упорядочены. Ни по фамилии, ни по имени, ни по дате рождения. Но давайте добавим после конструкции WHERE: ORDER BY last_name:

SELECT last_name, first_name, birthday, age
FROM users WHERE age >= 18 ORDER BY last_name;

Получим результат как на Картинке 2. После выполнение данного SQL запроса мы получим таблицу отсортированную по столбцу last_name (фамилия). Так как last_name хранит строки, то сортировка происходит в алфавитном порядке.

Разумеется, сортировать можно не только по текстовым полям. Например, можно написать ORDER BY birthday:

SELECT last_name, first_name, birthday, age
FROM users
WHERE age >= 18
ORDER BY birthday;

И получить данные упорядоченные по дате рождения в хронологическом порядке как на Картинке 3.

А если в конструкции ORDER BY после имени столбца написать DESC, то данные будут отсортированы в обратном порядке — свежие даты выше. Смотрим на Картинку 4.

SELECT last_name, first_name, birthday, age
FROM users
WHERE age >= 18
ORDER BY birthday DESC;

Про ключевое слово DESC часто спрашивают на собеседовании на позицию Junior разработчика или Trainee. Могут даже спросить и мидла. Данное ключевое слово очень часто применяется в повседневной практики на коммерческом проекте!

JavaStart. Подписаться

JavaStart

14 Jan, 18:11


JavaStart. Подписаться

JavaStart

13 Jan, 17:02


SQL, базы данных. Часть 18.

Приоритет операторов AND, OR.

У нас есть таблица team с разработчиками. И на этот раз нам нужно разработать бэкенд для сайта. И для этого нам нужны все Python и PHP разработчики. Напишем:

SELECT * FROM team
WHERE language = 'python' OR language = 'php';

Обратите внимание, что нужны нам все Python И PHP разработчики, но пишем мы OR. После выполнения запроса мы получим такую таблицу как на Картинке 2.

В итоговую таблицу попали и те и другие программисты. Отлично. Но давайте расширим условие. Скажем, нам нужны только middle разработчики на этих языках. Добавим:

SELECT * FROM team
WHERE
language = 'python' OR
language = 'php' AND
level = 'middle';

После выполнения мы получим такую таблицу как на Картинке 3.
И результат довольно странный, в итоговой таблице присутствуют также джуниоры и сеньоры. И дело в том, что операторы OR и AND имеют приоритет выполнения и у AND он выше. Поэтому в первую очередь база данных находит всех мидлов, которые пишут на PHP. Такому условию соответствует только одна запись, а далее срабатывает оператор OR, который добавляет всех Python-разработчиков.

То есть мы ищем ИЛИ мидлов на PHP, ИЛИ Python-разработчиков без указания их уровня владения языком. Поэтому в таблицу также попали джуниоры и сеньоры.

Чтобы решить поставленную задачу, нужно четко расставить приоритет с помощью скобок. Как в математике. Поместим скобки справа и слева от OR:

SELECT * FROM team
WHERE
(language = 'python' OR
language = 'php') AND
level = 'middle';

Теперь в таблице остались только мидлы на Python и PHP (Картинка 4).

Каждый раз когда в одном запросе встречаются OR и AND, обращайте внимание на порядок выполнения, иначе можно легко получить неверные данные.

Вообще, даже не так, каждый раз когда у вас есть в запросе есть OR и AND применяйте скобки для расстановки приоритетов, даже если уверены в своём коде.

Такая практика позволит избежать неприятных логических ошибок.

JavaStart. Подписаться

JavaStart

11 Jan, 16:17


7 лет развития технологий

JavaStart. Подписаться

JavaStart

10 Jan, 17:06


SQL, базы данных. Часть 17.

При использовании в SELECT-запросах операторов OR и AND можно легко ошибиться в составлении логического выражения. И проблема таких ошибок в том, что запрос выполняется как будто ошибки нет, но данные выводятся неверные.

Если у вас мало опыта в написании таких SQL-запросов, то можно легко не заметить проблему. Давайте разберем несколько популярных ошибок.

Работать будем с таблицей team, которая содержит список разработчиков (Картинка 1).

Основные критерии оценки — это уровень владения технологией: junior, middle или senior, и базовый язык программирования, на котором пишет разработчик.

Нам как менеджерам поступает заявка на разработку проекта и на основании этой заявки мы должны подобрать необходимых разработчиков.

Представьте, что сейчас нас интересуют только мидлы и сеньоры. Напишем SQL-запрос:

SELECT * FROM team WHERE level = 'middle' AND level = 'senior';

После выполнения запроса мы увидим пустую таблицу как на Картинке 2.

И тут мы столкнулись с первой ошибкой. В нашем запросе база данных по очереди берет строку и проверяет находится ли в колонке level значение "middle" И значение "senior". Оператор AND — это условие одновременности. То есть исходя из нашего запроса в поле level должно находится одновременно и "middle", и "senior", что невозможно, так разработчик может быть только одного уровня.

Почему мы допустили такую ошибку? И дело в формулировках, когда я озвучивал задание, то написал, что нас интересуют только мидлы И сеньоры. Это правильное выражение с точки зрения русского языка, но неверное с точки зрения логики. Чтобы получить верный результат надо чтобы поле level содержало ИЛИ "middle", ИЛИ "senior". Поэтому заменим AND на OR:

SELECT * FROM team WHERE level = 'middle' OR level = 'senior';

Теперь разработчики подобраны верно (Картинка 3).

Такую ошибку легко допустить, если в формулировке задачи стоит союз И. Но не стоит его напрямую переносить в SQL-запрос. Возможно здесь кроется ошибка, особенно если мы сравниваем с одним полем.

JavaStart. Подписаться

JavaStart

02 Jan, 17:39


JavaStart. Подписаться

JavaStart

29 Dec, 16:31


SQL, базы данных. Часть 16.

Давайте добавим к нашему запросу по таблице products (Картинка 1) еще одно условие. Например, нам нужны не просто товары, а товары стоимостью до 10 000 рублей.

Был запрос:

SELECT * FROM products
WHERE country IN ("RU", "UA", "BL");

Стал запрос:

SELECT * FROM products
WHERE country IN ("RU", "UK", "BL") AND price < 10000;

Посмотрим на результат на Картинке 2.

Получили новую таблицу с тремя записями, которые удовлетовряют новому условию. И в этом условии мы совместили AND и IN. То есть в SQL-запросах можно совмещать логические операции AND и OR с оператором IN. Что делает их очень гибкими.

Теперь давайте попробуем выбрать товары, стоимостью от 10000 до 20000.

Условие с country уберем и напишем:

SELECT * FROM products
WHERE price >= 10000 AND price <= 20000;

В результате получается такая таблица как на Картинке 3.

Рассмотрим запрос. Как видите в этой конструкции мы снова написали двойное условие по одному полю — price. И с одной стороны всё логично и понятно, а с другой стороны эту конструкцию также можно упростить.

Напишем:

SELECT * FROM products
WHERE price BETWEEN 10000 AND 20000;

Теперь запрос звучит так: ВЫБРАТЬ все столбцы из таблицы products, в которых цена между 10000 и 20000. Звучит более чем понятно.

После запуска мы получим всё тот же один товар.

Вообще AND, OR, IN и BETWEEN — это основные конструкции для построения условий в SQL запросах и используются они в блоке WHERE. Вы можете применять их как поодиночке, так комбинируя в самых различных вариантах.

JavaStart. Подписаться

JavaStart

28 Dec, 18:02


JavaStart. Подписаться

JavaStart

27 Dec, 17:05


JavaStart. Подписаться

JavaStart

26 Dec, 15:47


SQL, базы данных. Часть 15.

Давайте создадим новую таблицу products и переключим наше внимание на нее.
В ней есть поля id, name, count (количество), price (цена) и поле country, которое содержит данные о стране производителе (Картинка 1).

Давайте выберем товары, произведенные в России, Белоруссии и Украине. Напишем SQL-запрос:

SELECT * FROM products
WHERE country = "RU" OR country = "UA" OR country = "BL";

После выполнения запроса мы получим следующую таблицу (Картинка 2).

Разберем запрос: в блоке WHERE мы используем три условия, разделенные OR (или). Во всех трех условиях мы с помощью символа равенства сравниваем значение в столбце country с одной из стран: ИЛИ Россия, ИЛИ Украина, ИЛИ Белоруссия.

Если мы хотим получить товары еще каких-то стран, то нужно добавить еще условия OR. Это не очень удобно, так как запрос становится громоздиким.

Но его можно упростить. Кроме стандартных условий сравнения AND и OR в языке SQL есть условие принадлежности IN, которое в данном случае подходит лучше. Напишем после WHERE:

SELECT * FROM products
WHERE country IN ("RU", "UA", "BL");

Конструкция получилась короче и понятнее. И с помощью неё мы выбираем данные, в которых страна равна любом из значений перечисленных в скобках. После запуска запроса мы получим результат, аналогичный предыдущему.

JavaStart. Подписаться

JavaStart

21 Dec, 17:42


JavaStart. Подписаться

JavaStart

20 Dec, 16:52


SQL, базы данных. Часть 14.

Кроме операции AND (И), в условии можно применять OR (ИЛИ). Давайте заменим AND на OR, а также вернем колонки sex и age.

Был запрос (Картинка 2):

SELECT last_name, first_name, birthday, sex
FROM users
WHERE age >= 18 AND sex = 'm';

Стал:

SELECT last_name, first_name, birthday, sex, age
FROM users
WHERE age >= 18 OR sex = 'm';

Если посмотрим на результат (на Картинке 3), то увидим, что получили всех мужчин, а также женщин, которым исполнилось 18 лет. В частности в SQL-таблице одна женщина старше 18 лет и все мужчины, даже те, которым меньше 18. Всё это соответствует условию ИЛИ: ИЛИ возраст от 18 лет, ИЛИ мужской пол.

Все достаточно просто и логично!

JavaStart. Подписаться

JavaStart

18 Dec, 16:35


JavaStart. Подписаться

JavaStart

16 Dec, 16:00


SQL, базы данных. Часть 13.

Чтобы выбрать совершеннолетних пользователей из данных таблиц, можно воспользоваться простым SQL запросом:

SELECT last_name, first_name, birthday FROM users WHERE age >= 18;
(не забываем точку с запятой в конце запроса, иначе будет синтаксическая ошибка 🤓)

Теперь попробуем немного уточнить запрос. Например, выберем всех совершеннолетних мужчин. В таблицу я добавил дополнительное строковое поле sex, которое хранит m для мужчин и w для женщин (Картинка 1).

После выполнения такого SQL запроса получиться такая таблица как на Картинке 2.

Посмотрим на SQL запрос. Сейчас блок WHERE содержит составное условие: возраст больше или равен 18 годам и пол равен m. Это простое логическое выражение, которому соответствуют все записи для которых оба условия верны. То есть у которых одновременно и возраст от 18 лет и sex = "m".

Кстати, о sex = "m". Так как мы используем равенство, в результирующей таблице в колонке sex для всех записей у нас выводится m. Это не логично, ведь мы и так знаем, что выбираем мужчин, поэтому смысла в том, что мы эту информацию выводим в таблице нет. А значит можно удалить sex из запроса. Удалим и посмотрим на результат выполнения SQL-запроса (Картинка 3). Строки выводятся те же, однако столбца sex больше нет.

SELECT last_name, first_name, birthday
FROM users
WHERE age >= 18 AND sex = 'm';

JavaStart. Подписаться

JavaStart

14 Dec, 15:16


JavaStart. Подписаться

JavaStart

11 Dec, 15:33


JavaStart. Подписаться

JavaStart

10 Dec, 15:28


SQL, базы данных. Часть 11.

Как уже было сказано ранее, реляционные базы данных представляют собой набор таблиц с информацией. Каждая таблица состоит из столбцов и строк.

Посмотрим на таблицу users (Картинка 1), которая хранит данные о пользователях в системе. В таблице 5 столбцов: также уникальный номер пользователя id, имя, фамилия, возраст — age и дата рождения — birthday.

Каждый столбец отвечает за какую-то информацию и эта информация относится к определенному типу данных. Столбцы first_name и last_name строковые, age и id содержат числа, а birthday — дату.

Название столбца, его тип и порядок строго задаются на этапе создания таблицы.

Записи таблицы (или строки) заполняются в процессе её использования, либо же при создании таблицы. Поэтому столбцов у нас жестко 5. А строк может быть сколько угодно.

Зарегистрировался пользователь на сайте — добавили строку.
Добавление, удаление, изменение или получение данных из таблиц, выполняется с помощью языка SQL.

Давайте попробуем получить всю информацию из таблицы users (Картинка 1). Для этого надо написать и выполнить такой SQL-запрос:

SELECT * FROM users;

В итоге мы получили всех пользователей из таблицы users (вывод на Картинке 2).

Рассмотрим SQL запрос подробнее.

Оператор SELECT говорит, что мы будем извлекать данные. После него идет список столбцов, которые мы хотим получить. Если указать звездочку (*), как у нас, то получим все столбцы в том порядке, в котором они определены в таблице: id, first_name, last_name и тд. Далее идет конструкция FROM users, которая буквально означает ИЗ users.

То есть вся SQL конструкция читается как ВЫБРАТЬ все столбцы ИЗ таблицы users.

Теперь вместо звездочки напишем: last_name, first_name, birthday, чтобы у нас получился такой SQL-запрос:

SELECT last_name, first_name, birthday FROM users;

Если его выполнить, то мы снова получим всех пользователей из таблицы users, но на этот раз только фамилию, имя и дату рождения. То есть записи все, а столбцы нет (Картинка 3).

Кроме того, что мы получили не все столбцы, мы дополнительно изменили их порядок на тот, который нам удобен. В оригинальной таблице first_name стоит перед last_name, а у нас наоборот.

Еще обратите внимание, что результатом работы SQL запроса является таблица. То есть мы берем исходную таблицу, которая хранится в базе, и с помощью SQL запроса получаем другую таблицу — с теми данными, которые нам нужны.

JavaStart. Подписаться

JavaStart

09 Dec, 17:09


Нет, я из undefined

JavaStart. Подписаться

JavaStart

06 Dec, 16:34


SQL, базы данных. Часть 10.

Как начать работу с SQL?

Для начала работы с SQL достаточно разбираться в основах Excel, чтобы понимать принцип работы запросов, а также иметь базовый уровень английского на уровне A1-A2. Эти навыки необходимы, чтобы понимать синтаксис SQL, например, простые ключевые слова:

SELECT — выбери данные
FROM — вот отсюда
JOIN — добавь еще эти таблицы
WHERE — при таком условии
GROUP BY — сгруппируй данные по этому признаку
ORDER BY — отсортируй данные по этому признаку
LIMIT — нужно такое количество результатов
; — конец предложения

Установить себе на машину какую-нибудь СУБД (MySQL / Microsoft SQL Server / PostgreSQL / Oracle) для возможности создания таблиц и управлением данными.

Также можно установить дополнительную программу с визуальным красивым и понятным интерфейсом. Разные системы для работы с SQL имеют схожую структуру: есть редактор запросов, результат запросов и список таблиц, которые используются для обработки. Это, например, может быть программа pgAdmin, DBeaver или другие. Или прекрасный уже встроенный интерфейс в среду разработки (IntelliJ IDEA или др.).
Можно даже пользоваться терминалом MacOS или Windows.

JavaStart. Подписаться

JavaStart

05 Dec, 16:28


JavaStart. Подписаться

JavaStart

20 Nov, 15:56


JavaStart. Подписаться

JavaStart

19 Nov, 15:16


SQL, базы данных. Часть 6.

Реляционная база данных — это пространство, в котором связанную информацию хранят в нескольких таблицах. При этом есть возможность запрашивать информацию в нескольких таблицах одновременно.

А теперь о том же самом, но простым языком. Допустим бизнесмен желает видеть информацию о продажах своего товара. Для этого можно настроить электронную таблицу в «Excel» со всей информацией, которую надо отслеживать, в виде отдельных столбцов:

– номер заказа;
– дата;
– сумма к оплате;
– номер накладной;
– имя клиента, адрес и телефон.

Эта сработает, когда заказ от покупателя всего один. А когда их несколько или десятки, сотни?

Если продолжать вносить сведения в таблицу Excel, обнаружится, что одинаковая информация (имя, адрес и номер телефона) хранятся в нескольких строках электронной таблицы. Так появляются избыточные данные.

По мере роста бизнеса и увеличения количества отслеживаемых заказов эти избыточные данные будут занимать место, снизят эффективность этой примитивной системы отслеживания продаж.

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

С реляционной базой таких проблем не будет. Можно настроить две таблицы: одну — для заказов, вторую — для клиентов.

Таблица «клиенты» будет включать уникальный идентификационный номер для каждого, а также имя, адрес и номер телефона, которые уже отслеживают.

Таблица «заказы» будет включать номер заказа, дату, сумму к оплате, номер накладной. А вместо отдельного поля для каждого элемента данных о заказчике будет столбец для «идентификатора клиента».

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

JavaStart. Подписаться

JavaStart

15 Nov, 09:47


JavaStart. Подписаться

JavaStart

14 Nov, 15:38


SQL, базы данных. Часть 5.

Аббревиатура SQL расшифровывается как Structured Query Language (язык структурированных запросов). Это своеобразный язык, предназначенный для того, чтобы извлекать конкретную информацию из баз данных (database) и оперировать с этой информацией. Другими словами, это язык баз данных.

Если вы до сих пор не поняли, как используются базы данных в повседневной жизни, предлагаю несколько примеров:

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

Зачем нужен SQL?

Большинство компаний хранят свои сведения в базах данных. Представьте любой крупный онлайн магазин. И такие компании используют хотя бы одну из баз данных (например, MySQL, PostgreSQL, Microsoft SQL Server, MariaDB и др.) и со всеми ими можно взаимодействовать на языке SQL.

Независимо от того, какой язык программирования используют для реализации процессов в компании (Java, Python, C, C++), SQL все равно нужен для того, чтобы извлекать необходимую информацию из базы данных.

Основные преимущества SQL:

– точность — можно не хранить избыточные данные;

– гибкость — даже самые сложные запросы легко выполнить;

– масштабируемость — с одной БД могут работать множество пользователей;

– безопасность — доступ к данным в таблицах есть только у определенных пользователей.

JavaStart. Подписаться

JavaStart

12 Nov, 17:27


JavaStart. Подписаться

JavaStart

11 Nov, 15:49


SQL, базы данных. Часть 4.

Что такое система управления базами данных (СУБД)?

Система управления базами данных (СУБД) — это комплексное программное обеспечение, которое необходимо для управления БД. Говоря простыми словами, она представляет собой интерфейс между самой БД и пользователями.

СУБД дает возможность получать и обновлять информацию, управлять ее упорядочиванием и оптимизацией. Она также позволяет пользователю следить за производительностью, настраивать, выполнять резервное копирование и восстановление БД.

Наиболее популярным программным обеспечением для баз данных (СУБД) являются:

– MySQL;
– PostgreSQL;
– Oracle Database;
– Microsoft Access;
– Microsoft SQL Server;
– FileMaker Pro;
– dBASE.

Широкое применение получила MySQL — реляционная система управления базами данных с открытым кодом на основе языка SQL. Ее используют AirBnb, Facebook, Twitter, Uber, LinkedIn, YouTube и другие известные компании.

JavaStart. Подписаться

JavaStart

09 Nov, 19:36


JavaStart. Подписаться

JavaStart

06 Nov, 16:25


SQL, базы данных. Часть 3.

Виды баз данных.

В наши дни существует десятки типов баз данных. Наиболее популярными из них можно назвать:

– Реляционные.
Получили распространение в 1980-х годах, элементы в этой БД организованы в виде набора таблиц со строками и столбцами. Обеспечивают наиболее эффективный доступ к систематизированным данным.

– Объектно-ориентированные.
Как и в объектно-ориентированном программировании (ООП), данные в этом типе БД представлены в форме объекта.

– Хранилище данных.
Предназначаются для быстрого анализа и выполнения запросов.

– Распределенные.
Состоят из двух и более файлов, которые находятся в разных узлах. Могут храниться на нескольких компьютерах в пределах одного физического места или распределяться по различным сетям.

– Графовые.
Хранят данные в контексте сущностей и связей между ними.

– Иерархические.
Представление баз данных здесь происходит в древовидной структуре.

– Нереляционные.
С их помощью обрабатываются и хранятся слабоструктурированные и неструктурированные данные.

– Аналитические.
Подходят для большого количества операций, выполняемых различными пользователями.

Благодаря развитию информационных технологий относительно недавно появились такие виды баз данных, как:

– автономные;
– облачные;
– с открытым исходным кодом;
– документные (JSON);
– многомодельные.

JavaStart. Подписаться

JavaStart

05 Nov, 17:32


JavaStart. Подписаться

JavaStart

04 Nov, 14:46


JavaStart. Подписаться

JavaStart

03 Nov, 13:45


SQL, базы данных. Часть 2.

Отличие баз данных от электронных таблиц.

Как и электронные таблицы вроде Microsoft Excel или Google Таблиц, базы данных предлагают пользователям удобные способы хранения информации.

Но отличия между ними имеются и заключаются они:

– в способе хранения и обработки;
– в объеме хранения;
– в полномочиях доступа к данным.

Изначально электронные таблицы создавались для одного или нескольких пользователей, которым не предстоит выполнять сложные расчеты и оперировать большим количеством информации.

Базы данных предназначены для хранения огромных объемов информации и позволяют пользователям получать доступ к нужным данным за доли секунд!

JavaStart. Подписаться

JavaStart

01 Nov, 15:39


Какой будет результат выполнения данного кода?

JavaStart. Подписаться

JavaStart

30 Oct, 15:53


SQL, базы данных. Часть 1.

Поговорим о SQL и базах данных, это одна из самых важных областей в мире backend разработки, независимо на каком языке написан проект (java и др.). Вопросы по SQL и базам данных всегда задают на собеседованиях на Java разработчика, причем как синьорам, там и джунам!

База данных (БД) — это организованная структура, которая предназначается для хранения, обработки и изменения большого количества информации.

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

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

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

Зачем нужны базы данных?

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

Перед БД ставятся вызовы, позволяющие повысить их производительность. Вот некоторые из них:

– оперирование возросшим объемом данных;
– обеспечение безопасности информации;
– удовлетворение потребностей компаний;
– обслуживание БД.

JavaStart. Подписаться

JavaStart

29 Oct, 15:49


JavaStart. Подписаться

JavaStart

24 Oct, 15:08


JavaStart. Подписаться

JavaStart

23 Oct, 16:29


Stream API в Java. Часть 11.

Stream в Java дает разработчикам удобные инструменты для обработки данных в коллекциях.

Методы позволяют проще обрабатывать объекты и писать меньше кода. Это так называемый “синтаксический сахар”.

Чтобы научиться работать эффективно с Java Stream API рекомендую просто практиковаться и в скором времени это станет для вас легко!

Раздел Stream API в Java несомненно встречается на собеседованиях на позиции Java Junior и Middle разработчиков. Поэтому разбираться в этом разделе нужно.

JavaStart. Подписаться

JavaStart

21 Oct, 16:26


JavaStart. Подписаться

JavaStart

20 Oct, 14:25


Ответ к задаче про сравнение строк:

Первое, что нужно отметить, что тут сравниваются не значения строк, а ссылки на строки. Поэтому IDE подчёркивает все равенства и предлагает правильный вариант сравнения значений строк через “equals”.

s1 и s2 это один и тот же объект, так как в Java есть пул строк, и для s2 не создается новый объект, так как в пуле уже есть строка с таким же значением.
А вот s3 создаётся через new и в пул строк не попадает. Поэтому s1 и s3 - это разные объекты, поэтому сравнение вернёт false.
s4 будет гарантированно из пула, так как вызван метод intern.
s5 работает аналогично s2.

Выводы:
1) Сравнивая объекты через == , можно не всегда получить то, что ожидаешь, поэтому лучше этого не делать и использовать метод equals. Сравнивая через ==, вы должны знать что делаете.
2) Если IDE подчёркивает код, стоит обратить на это внимание, скорее всего у вас проблемы в коде.
3) Метод intern() перед созданием объекта String смотрит, есть ли этот объект в пуле стрингов и возвращает его. Иначе создается новый объект в пуле.

JavaStart. Подписаться

JavaStart

19 Oct, 16:11


Что напечатает код?

JavaStart. Подписаться

JavaStart

18 Oct, 15:19


Stream API в Java. Часть 10.

Посмотрим несколько примеров работы сортирующих методов Stream API.

Используем ту же коллекцию строк, что и выше —
Stream.of("f10", "f15", "f2", "f4", "f4").

Единственное отличие — теперь в нем появился дубликат.

Первая задача — отсортировать строки в алфавитном порядке и добавить их в массив:

collection.stream().sorted().collect(Collectors.toList());
// [f2, f4, f4, f10, f15]

А вот чуть более интересное задание — нужно выполнить сортировку в обратном алфавитному порядке и удалить дубликаты. В массиве должны оказаться только уникальные значения:

collection.stream().sorted(String::compareTo).distinct().collect(Collectors.toList());

Здесь мы используем не только .sorted() для сортировки, но и метод .distinct() для удаления неуникальных значений при обработке коллекции.

Задачи по сортировке стримов в Java часто встречаются на собеседованиях не только на позицию Junior разработчиков, но даже и на позицию Middle!

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться

JavaStart

16 Oct, 15:23


JavaStart. Подписаться

JavaStart

15 Oct, 16:13


Stream API в Java. Часть 9.

Давайте поиграемся с методами .min() и .max().

Пусть у нас будет коллекция строк вида Arrays.asList("f10", "f15", "f2", "f4").
Нужно найти самый маленький элемент:

collection.stream().min(String::compareTo).get()
// f2

Метод compareTo() – это метод, который есть у каждого объекта типа String.

С максимальным значением тоже все очень просто:

collection.stream().max(String::compareTo).get()
// f15

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться

JavaStart

14 Oct, 15:49


JavaStart. Подписаться

JavaStart

13 Oct, 14:59


Stream API в Java. Часть 8.

Подробнее изучите метод .collect(). Он позволяет гибко управлять преобразованием значений в разные типы: коллекции, массивы, map. Делается это благодаря статистическим методам Collectors.

Вот несколько интересных примеров:

toList — стрим приводится к списку;

toCollection — получаем коллекцию;

toSet — получаем множество;

toConcurrentMap, toMap — если нужен map;

summingInt, summingDouble, summingLong — если требуется получить сумму чисел;

averagingInt, averagingDouble, averagingLong — если хотите вернуть среднее значение;

groupingBy — если необходимо разбить коллекцию на части.

Это не все статистические методы Collectors. Другие возможности с подробным описанием смотрите в документации. Помимо тех Collectors, которые определены в документации, можно использовать собственноручно созданные, кастомные варианты)

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться

JavaStart

10 Oct, 15:20


Краткий гайд для прохождения интервью на любую позицию

JavaStart. Подписаться

JavaStart

09 Oct, 17:08


Stream API в Java. Часть 7.

После того как мы поработали с нашим стримом (или потоком) каких-либо элементов (стрим списка любых кастомных моделей Java, например, класс Car или просто список строк или объектов Integer) нужно завершить эту работу с помощью терминального оператора.

Перечислим часто встречающиеся Терминальные операторы стримов в Java.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться

JavaStart

08 Oct, 15:18


Stream API в Java. Часть 6.

В Stream API Java пока мы не вызвали терминальный метод, ничего не происходит. Все потому, что конвейерные методы ленятся (они lazy). Это значит, что они обрабатывают данные и ждут команды, чтобы передать их терминальному методу.

Перечислим часто встречающиеся Конвейерные (или Промежуточные) операторы стримов.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться

JavaStart

29 Sep, 07:53


JavaStart. Подписаться

JavaStart

23 Sep, 16:34


👆Объяснение к задаче выше:

Сначала создаётся список целых чисел из массива 1, 2, 3, 4, 5.

Затем этот список превращается в поток данных (Stream).

Далее выполняется фильтрация, оставляя только чётные числа (остаток при делении на 2 равен нулю).

Затем происходит преобразование каждого элемента потока в примитивный тип int, используя метод mapToInt().

Наконец, выполняется операция суммирования всех элементов потока с помощью метода sum().

В результате мы получаем сумму чётных чисел в списке, равную 6.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться

JavaStart

22 Sep, 16:03


Какой будет результат работы следующей программы, используя Stream API Java?

JavaStart. Подписаться