JavaStart
942 subscribers
875 photos
26 videos
586 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
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. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Сколько примитивных типов данных существует в Java?
Anonymous Quiz
32%
6
18%
7
43%
8
2%
9
6%
Посмотреть ответ
Please open Telegram to view this post
VIEW IN TELEGRAM
Чем отличаются Junior, Middle и Senior разработчики?

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

Знания

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

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

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

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

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

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

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

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

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

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

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

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

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Какая из следующих коллекций в Java гарантирует порядок вставки элементов?
Anonymous Quiz
12%
HashSet
19%
TreeSet
46%
LinkedHashSet
20%
PriorityQueue
3%
Посмотреть ответ
Please open Telegram to view this post
VIEW IN TELEGRAM
Junior, Middle, Senior. Переход на следующий уровень.

От джуниора к мидлу:

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

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

От мидла к синьору:

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

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

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

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

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Что происходит, если метод equals() не переопределён, а сравниваются два разных объекта одного класса?
Anonymous Quiz
36%
Сравниваются их хэшкоды
14%
Возвращается false
37%
Используется оператор ==
8%
Происходит ошибка компиляции
5%
Посмотреть ответ
Please open Telegram to view this post
VIEW IN TELEGRAM
Кто такой Project manager в IT ?

Менеджер IT-проектов (Project Manager, PM) - это специалист, в обязанности которого входит беспрерывное управление проектом. В IT-команде он выполняет административно-управленческие функции: соблюдение сроков, решение текущих проблем, коммуникация.

Это управленческая должность, связанная с контролем и всесторонней поддержкой. PM имеют профильное образование, которое так или иначе связанно с менеджментом. Однако в эту сферу можно зайти через другую дверь, ведь PM нередко становятся разработчики, тестировщики, верстальщики (HTML-coder) – люди, которые знают специфику IT изнутри.

Менеджер IT-проектов, получив техническое задание, выбирает специалистов, обозначает сроки, выдает ТЗ, контролирует их выполнение. Также Project Manager устраняет всевозможные препятствия, может добиться увеличения или урезания бюджета – решает ряд важных текущих стратегических задач. Он может осуществлять руководство командой, которая занимается созданием программного обеспечения, сайтов, мобильных приложений, браузерных расширений – любых IT-продуктов.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Паттерны проектирования в Java. Часть 1.

Практически всегда, если вы собеседуетесь на позицию Junior Java разработчика или стажера, вас спросят – знакомы ли вы с паттернами проектирования?

Также попросят рассказать о самом распространенном паттерне Singleton. Давайте разбираться.

Паттерны проектирования (шаблоны проектирования) – это готовые к использованию решения часто возникающих в программировании задач. Это не класс и не библиотека, которую можно подключить к проекту, это нечто большее. Паттерн проектирования, подходящий под задачу, реализуется в каждом конкретном случае самим разработчиком.

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

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

И так, типы паттернов бывают:

– Порождающие.
Порождающие паттерны предоставляют механизмы инициализации, позволяя создавать объекты удобным способом.

– Структурные.
Структурные паттерны определяют отношения между классами и объектами, позволяя им работать совместно.

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

В следующих постах поговорим о представителях каждого типа паттернов проектирования.

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Паттерны проектирования в Java. Порождающие. Часть 2.

Порождающие паттерны:

Singleton (Одиночка) - ограничивает создание одного экземпляра класса, обеспечивает доступ к его единственному объекту;

Factory (Фабрика) - используется, когда у нас есть суперкласс с несколькими подклассами и на основе ввода, нам нужно вернуть один из подкласса;

Builder (Строитель) - используется для создания сложного объекта с использованием простых объектов. Постепенно он создает больший объект от малого и простого объекта;

Prototype (Прототип) - помогает создать дублированный объект с лучшей производительностью, вместо нового создается возвращаемый клон существующего объекта;

И др.

К Синглтону ещё вернёмся. О нем почти всегда спрашивают на собеседованиях 🤓

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой оператор в Java используют для проверки равенства примитивных типов?
Anonymous Quiz
9%
equals()
2%
===
85%
==
1%
isEqual()
3%
Посмотреть ответ