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. Подписаться
Приоритет операторов 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 применяйте скобки для расстановки приоритетов, даже если уверены в своём коде.
Такая практика позволит избежать неприятных логических ошибок.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✍4👍4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7💯3🤓3
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. Подписаться
Сортировка результатов.
В 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. Могут даже спросить и мидла. Данное ключевое слово очень часто применяется в повседневной практики на коммерческом проекте!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4✍3👨💻3🔥2
Сколько примитивных типов данных существует в Java?
Anonymous Quiz
32%
6
18%
7
43%
8
2%
9
6%
Посмотреть ответ
✍3👍3🤓2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2😁2💯2👨💻1
Чем отличаются Junior, Middle и Senior разработчики?
Позиции джуниора, мидла и синьора не имеют ничего общего с возрастом и опытом — джуниор может быть старше синьора, а мидл может заниматься программированием дольше него. Синьора от джуниора и мидла отличает нечто большее, чем навыки кодинга!
Знания
Очевидно, что синьор знает гораздо больше, чем джуниор и мидл. Это и знание шаблонов проектирования, архитектуры, автоматизации тестирования, производительности, безопасности и других аспектов.
Работа с кодом
Коммерческая разработка — это не только общение с компьютером, но и общение с людьми. Код следует делать понятным для специалистов, которые обратятся к нему в будущем. Новая команда, ранее никогда не видевшая программу, должна суметь отредактировать или дополнить ее. Именно здесь особенно ярко проявляется разница между джуниорами и синьорами.
В данном контексте не будем говорить о мидлах — понятно, что они находятся где-то между джунами и синьорами, хоть и ближе ко вторым, чем к первым. Как правило, разработчики среднего уровня уже хотя бы раз прошли весь цикл создания программы, совершили множество самых простых ошибок и извлекли уроки из них.
Как вычислить джуниора?
Джуниоры неопытны. Многие из них только закончили учебу и нашли первую полноценную работу. Часто они хотят, чтобы код просто выполнял свои функции. И для них это уже хорошая программа.
Создать простой код сложно, и от младших разработчиков его ждать не стоит — обычно их программы весьма причудливы.
А что насчет синьора?
Глядя на код продвинутого разработчика, можно подумать: и это все? Где остальная часть? Синьор пишет простой, понятный и, возможно, даже тупой код. И это одно из самых главных достоинств программиста.
Синьор думает о коде не так, как джуниор: созданные опытным специалистом программы удобно обслуживать и масштабировать.
Помимо навыков написания кода, об уровне разработчика говорят еще несколько факторов.
Джуны обычно выполняют самые простые задачи. Например, они не занимаются его архитектурой. Мидлы тоже не разрабатывают законченные решения, а просто выполняют отдельные шаги. От джуниоров они отличаются тем, что могут выполнять рутинные задачи без особого контроля. Синьоры же могут разработать приложение самостоятельно!
Это не значит, что у продвинутых разработчиков не возникает сложностей. Как и все остальные, они сталкиваются с ними ежедневно, но от джуниоров и мидлов синьоры отличаются умением правильно задавать вопросы. Мидлы тоже на это способны, когда речь идет об относительно рутинных задачах, но в более сложных ситуациях им нужна помощь.
Джуниоры неопытны, и им необходим толчок в нужном направлении от мидла или синьора.
✅ JavaStart. Подписаться
Позиции джуниора, мидла и синьора не имеют ничего общего с возрастом и опытом — джуниор может быть старше синьора, а мидл может заниматься программированием дольше него. Синьора от джуниора и мидла отличает нечто большее, чем навыки кодинга!
Знания
Очевидно, что синьор знает гораздо больше, чем джуниор и мидл. Это и знание шаблонов проектирования, архитектуры, автоматизации тестирования, производительности, безопасности и других аспектов.
Работа с кодом
Коммерческая разработка — это не только общение с компьютером, но и общение с людьми. Код следует делать понятным для специалистов, которые обратятся к нему в будущем. Новая команда, ранее никогда не видевшая программу, должна суметь отредактировать или дополнить ее. Именно здесь особенно ярко проявляется разница между джуниорами и синьорами.
В данном контексте не будем говорить о мидлах — понятно, что они находятся где-то между джунами и синьорами, хоть и ближе ко вторым, чем к первым. Как правило, разработчики среднего уровня уже хотя бы раз прошли весь цикл создания программы, совершили множество самых простых ошибок и извлекли уроки из них.
Как вычислить джуниора?
Джуниоры неопытны. Многие из них только закончили учебу и нашли первую полноценную работу. Часто они хотят, чтобы код просто выполнял свои функции. И для них это уже хорошая программа.
Создать простой код сложно, и от младших разработчиков его ждать не стоит — обычно их программы весьма причудливы.
А что насчет синьора?
Глядя на код продвинутого разработчика, можно подумать: и это все? Где остальная часть? Синьор пишет простой, понятный и, возможно, даже тупой код. И это одно из самых главных достоинств программиста.
Синьор думает о коде не так, как джуниор: созданные опытным специалистом программы удобно обслуживать и масштабировать.
Помимо навыков написания кода, об уровне разработчика говорят еще несколько факторов.
Джуны обычно выполняют самые простые задачи. Например, они не занимаются его архитектурой. Мидлы тоже не разрабатывают законченные решения, а просто выполняют отдельные шаги. От джуниоров они отличаются тем, что могут выполнять рутинные задачи без особого контроля. Синьоры же могут разработать приложение самостоятельно!
Это не значит, что у продвинутых разработчиков не возникает сложностей. Как и все остальные, они сталкиваются с ними ежедневно, но от джуниоров и мидлов синьоры отличаются умением правильно задавать вопросы. Мидлы тоже на это способны, когда речь идет об относительно рутинных задачах, но в более сложных ситуациях им нужна помощь.
Джуниоры неопытны, и им необходим толчок в нужном направлении от мидла или синьора.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4🤓1👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🤓3👨💻2👍1
Какая из следующих коллекций в Java гарантирует порядок вставки элементов?
Anonymous Quiz
12%
HashSet
19%
TreeSet
46%
LinkedHashSet
20%
PriorityQueue
3%
Посмотреть ответ
✍4👍4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4😁2👍1🤓1
Junior, Middle, Senior. Переход на следующий уровень.
От джуниора к мидлу:
Важно пройти весь цикл разработки хотя бы пару раз. Таким образом, вы попадете во множество возможных ловушек и научитесь их избегать.
Вы также должны научиться писать простой код — для этого думайте о человеке, который будет работать над программой после вас. Кроме того, научитесь исправлять баги и займитесь самообразованием.
От мидла к синьору:
Переход от среднего уровня к продвинутому может быть довольно сложным. Некоторые разработчики остаются мидлами на протяжении всей карьеры.
Синьоры знают, от чего в коде можно отказаться, а что убирать нельзя ни в коем случае. Всему этому их научил прежний опыт и ошибки.
Если вы хотите быть синьором, то будьте готовы выполнять задачи, которые не может выполнить никто другой. Вам также придется помогать менее опытным разработчикам. Вы — их спасательный круг в трудных случаях.
Неудивительно, что синьоры досконально изучают весь комплекс технологий своей компании. Это больше, чем просто программирование — это погружение во все аспекты создания продукта.
✅ JavaStart. Подписаться
От джуниора к мидлу:
Важно пройти весь цикл разработки хотя бы пару раз. Таким образом, вы попадете во множество возможных ловушек и научитесь их избегать.
Вы также должны научиться писать простой код — для этого думайте о человеке, который будет работать над программой после вас. Кроме того, научитесь исправлять баги и займитесь самообразованием.
От мидла к синьору:
Переход от среднего уровня к продвинутому может быть довольно сложным. Некоторые разработчики остаются мидлами на протяжении всей карьеры.
Синьоры знают, от чего в коде можно отказаться, а что убирать нельзя ни в коем случае. Всему этому их научил прежний опыт и ошибки.
Если вы хотите быть синьором, то будьте готовы выполнять задачи, которые не может выполнить никто другой. Вам также придется помогать менее опытным разработчикам. Вы — их спасательный круг в трудных случаях.
Неудивительно, что синьоры досконально изучают весь комплекс технологий своей компании. Это больше, чем просто программирование — это погружение во все аспекты создания продукта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6✍2👨💻2
Что происходит, если метод equals() не переопределён, а сравниваются два разных объекта одного класса?
Anonymous Quiz
36%
Сравниваются их хэшкоды
14%
Возвращается false
37%
Используется оператор ==
8%
Происходит ошибка компиляции
5%
Посмотреть ответ
✍5🔥3👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5💯4👍1
Кто такой Project manager в IT ?
Менеджер IT-проектов (Project Manager, PM) - это специалист, в обязанности которого входит беспрерывное управление проектом. В IT-команде он выполняет административно-управленческие функции: соблюдение сроков, решение текущих проблем, коммуникация.
Это управленческая должность, связанная с контролем и всесторонней поддержкой. PM имеют профильное образование, которое так или иначе связанно с менеджментом. Однако в эту сферу можно зайти через другую дверь, ведь PM нередко становятся разработчики, тестировщики, верстальщики (HTML-coder) – люди, которые знают специфику IT изнутри.
Менеджер IT-проектов, получив техническое задание, выбирает специалистов, обозначает сроки, выдает ТЗ, контролирует их выполнение. Также Project Manager устраняет всевозможные препятствия, может добиться увеличения или урезания бюджета – решает ряд важных текущих стратегических задач. Он может осуществлять руководство командой, которая занимается созданием программного обеспечения, сайтов, мобильных приложений, браузерных расширений – любых IT-продуктов.
✅ JavaStart. Подписаться
Менеджер IT-проектов (Project Manager, PM) - это специалист, в обязанности которого входит беспрерывное управление проектом. В IT-команде он выполняет административно-управленческие функции: соблюдение сроков, решение текущих проблем, коммуникация.
Это управленческая должность, связанная с контролем и всесторонней поддержкой. PM имеют профильное образование, которое так или иначе связанно с менеджментом. Однако в эту сферу можно зайти через другую дверь, ведь PM нередко становятся разработчики, тестировщики, верстальщики (HTML-coder) – люди, которые знают специфику IT изнутри.
Менеджер IT-проектов, получив техническое задание, выбирает специалистов, обозначает сроки, выдает ТЗ, контролирует их выполнение. Также Project Manager устраняет всевозможные препятствия, может добиться увеличения или урезания бюджета – решает ряд важных текущих стратегических задач. Он может осуществлять руководство командой, которая занимается созданием программного обеспечения, сайтов, мобильных приложений, браузерных расширений – любых IT-продуктов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6✍1👍1
Что делает метод join() в классе Thread?
Anonymous Quiz
4%
Останавливает выполнение потока
37%
Соединяет два потока в один
53%
Заставляет текущий поток ожидать завершения другого потока
0%
Создаёт новый поток
6%
Посмотреть ответ
✍3👍3🎉1