#spring
Каждое приложение Spring Boot - это веб-приложение, работающее во встроенном Apache Tomcat?
Когда дело доходит до веб-приложений, Spring Boot работает с множеством контейнеров сервлетов. По умолчанию используется Apache Tomcat , но вы также можете использовать веб-приложение с Jetty, Undertow или вообще без встроенного контейнера сервлетов.
Более того, Spring Boot не привязан только к веб-приложениям, хотя такое впечатление можно получить, используя зависимость spring-boot-starter-web и, следовательно, автоконфигурацию Spring Boot для веб-сайтов. С помощью Spring Boot вы можете писать все виды сервисов, от пакетных заданий и утилит командной строки до серверных модулей обмена сообщениями и реактивных веб-приложений.
Каждое приложение Spring Boot - это веб-приложение, работающее во встроенном Apache Tomcat?
Когда дело доходит до веб-приложений, Spring Boot работает с множеством контейнеров сервлетов. По умолчанию используется Apache Tomcat , но вы также можете использовать веб-приложение с Jetty, Undertow или вообще без встроенного контейнера сервлетов.
Более того, Spring Boot не привязан только к веб-приложениям, хотя такое впечатление можно получить, используя зависимость spring-boot-starter-web и, следовательно, автоконфигурацию Spring Boot для веб-сайтов. С помощью Spring Boot вы можете писать все виды сервисов, от пакетных заданий и утилит командной строки до серверных модулей обмена сообщениями и реактивных веб-приложений.
Что делает команда git status?
Anonymous Quiz
77%
Показывает состояние проекта: кол-во untracked, deleted, new и прочих файлов.
11%
Показывает имя и email нашего пользователя, а также является ли он авторизованным.
7%
Показывает место, занимаемое репозиторием на жестком диске.
5%
Такой команды нет, есть только команда git show.
#CV #LongRead
Идеальное резюме для разработчика №1
Размер. Идеальный размер резюме 1 страница. Вы можете позволить себе 2 страницы, но только когда это действительно важная информация, например, достижения на работе или вклад в Open Source.
Стиль. Резюме должно быть в едином стиле. Не перебарщивайте с тем, чтобы в резюме был одновременно курсив, выделение жирным, разный шрифт, размер и цвет.
Одна колонка. Не разбивайте ваше резюме на две колонки, вторая колонка, расположенная справа, заберет внимание читателя на менее ценную информацию с самого начала.
Название файла. Название должно отображать роль, на которую вы подаетесь, и идентифицировать вас — resume_stepan_stepanovich_software_engineer, можно пойти от большего к меньшему — resume_stepan_engineer_stepanovich_stepan. Можно сократить software_engineer до se.
Формат. Признанным форматом резюме является PDF. Возможно, в каких-то компаниях корпоративным стандартом будет другой формат, но вы об этом точно узнаете.
Личная информация. Уберите из резюме фото, пол, возраст, семейный статус.
Ссылки. Есть два варианта: Github (или ваш никнейм) либо https://github.com/serwios (или сокращенный вариант, например, через bit.ly). В первом варианте вы «зашиваете» ссылку в текст и по нажатию на него страница откроется в браузере. Во втором варианте вы указываете полную ссылку на случай если резюме будут распечатывать.
Как мне кажется, если у того, кто смотрит резюме в распечатанном виде, есть возможность зайти по ссылке из резюме, набрав ее в браузере, то у него уже давно есть доступ к этому резюме в электронном виде на том же устройстве (почта, корпоративных мессенджер). Более того, есть мнение, что по ссылкам вообще никто не переходит в компаниях, у которых десятки тысяч резюме в год, поэтому лучше занять ими как можно меньше места.
Иностранные языки. Если вы подаете резюме в компанию, где говорят на английском, то нет смысла указывать его в резюме. Ваше резюме уже предполагает что вы знаете его на необходимом для работы и жизни уровне (это проверят на собеседованиях). Знания других иностранных языков можно указывать когда: это пригодится по работе (например, заказчик в вашей будущей компании из Китая и вы знаете китайский) либо это язык страны, куда вы хотите переехать и национальный язык там не английский (немецкий, французский) — тогда это точно оценят. Родные языки просто так нет смысла указывать, если в вакансии нет таких требований.
Грамматика. Проверяйте текст в резюме на грамматику (например, Grammarly, есть бесплатный режим). Советую взять полчаса у носителя языка на любой популярной платформе (например, Preply, это будет стоить меньше $10), он также проверит, «звучит» ли текст.
Композиция. Текст должен быть выровнен по левому краю. Так ваше резюме будет приятно читать (как статью или книгу).
Имя и фамилия. Если ваше имя трудно произнести человеку из другой страны, рассмотрите вариант либо сократить его (например, из Alexey сделать Alex), либо переделать (например, из Ekaterina сделать Kate).
Желаемая должность. Может быть непонятно, из предыдущего опыта, на какую должность вы претендуете. Например, вы хотите попробоваться на позицию Senior, а в резюме такого опыта не было. Или у вас в резюме есть роли где вы руководите командой, но в новой компании вам делать этого не хочется.
Почта. Лично мне нравится, когда название почтового адреса более или менее стандартное (имя и фамилия), а не какой-то dark.knight13@gmail.com, хотя не могу сказать что это вообще влияет на что-то.
Номер телефона. По моему опыту, рекрутеры из определённых стран больше любят звонить, а не общаться по почте (например, из Великобритании и Германии). Наличие номера страны в которую ты подаешься, в моем случае, было не обязательным, все равно звонили на украинский.
Текущая локация. Ограничьтесь городом и страной, не надо указывать улицу и номер дома.
Идеальное резюме для разработчика №1
Размер. Идеальный размер резюме 1 страница. Вы можете позволить себе 2 страницы, но только когда это действительно важная информация, например, достижения на работе или вклад в Open Source.
Стиль. Резюме должно быть в едином стиле. Не перебарщивайте с тем, чтобы в резюме был одновременно курсив, выделение жирным, разный шрифт, размер и цвет.
Одна колонка. Не разбивайте ваше резюме на две колонки, вторая колонка, расположенная справа, заберет внимание читателя на менее ценную информацию с самого начала.
Название файла. Название должно отображать роль, на которую вы подаетесь, и идентифицировать вас — resume_stepan_stepanovich_software_engineer, можно пойти от большего к меньшему — resume_stepan_engineer_stepanovich_stepan. Можно сократить software_engineer до se.
Формат. Признанным форматом резюме является PDF. Возможно, в каких-то компаниях корпоративным стандартом будет другой формат, но вы об этом точно узнаете.
Личная информация. Уберите из резюме фото, пол, возраст, семейный статус.
Ссылки. Есть два варианта: Github (или ваш никнейм) либо https://github.com/serwios (или сокращенный вариант, например, через bit.ly). В первом варианте вы «зашиваете» ссылку в текст и по нажатию на него страница откроется в браузере. Во втором варианте вы указываете полную ссылку на случай если резюме будут распечатывать.
Как мне кажется, если у того, кто смотрит резюме в распечатанном виде, есть возможность зайти по ссылке из резюме, набрав ее в браузере, то у него уже давно есть доступ к этому резюме в электронном виде на том же устройстве (почта, корпоративных мессенджер). Более того, есть мнение, что по ссылкам вообще никто не переходит в компаниях, у которых десятки тысяч резюме в год, поэтому лучше занять ими как можно меньше места.
Иностранные языки. Если вы подаете резюме в компанию, где говорят на английском, то нет смысла указывать его в резюме. Ваше резюме уже предполагает что вы знаете его на необходимом для работы и жизни уровне (это проверят на собеседованиях). Знания других иностранных языков можно указывать когда: это пригодится по работе (например, заказчик в вашей будущей компании из Китая и вы знаете китайский) либо это язык страны, куда вы хотите переехать и национальный язык там не английский (немецкий, французский) — тогда это точно оценят. Родные языки просто так нет смысла указывать, если в вакансии нет таких требований.
Грамматика. Проверяйте текст в резюме на грамматику (например, Grammarly, есть бесплатный режим). Советую взять полчаса у носителя языка на любой популярной платформе (например, Preply, это будет стоить меньше $10), он также проверит, «звучит» ли текст.
Композиция. Текст должен быть выровнен по левому краю. Так ваше резюме будет приятно читать (как статью или книгу).
Имя и фамилия. Если ваше имя трудно произнести человеку из другой страны, рассмотрите вариант либо сократить его (например, из Alexey сделать Alex), либо переделать (например, из Ekaterina сделать Kate).
Желаемая должность. Может быть непонятно, из предыдущего опыта, на какую должность вы претендуете. Например, вы хотите попробоваться на позицию Senior, а в резюме такого опыта не было. Или у вас в резюме есть роли где вы руководите командой, но в новой компании вам делать этого не хочется.
Почта. Лично мне нравится, когда название почтового адреса более или менее стандартное (имя и фамилия), а не какой-то dark.knight13@gmail.com, хотя не могу сказать что это вообще влияет на что-то.
Номер телефона. По моему опыту, рекрутеры из определённых стран больше любят звонить, а не общаться по почте (например, из Великобритании и Германии). Наличие номера страны в которую ты подаешься, в моем случае, было не обязательным, все равно звонили на украинский.
Текущая локация. Ограничьтесь городом и страной, не надо указывать улицу и номер дома.
GitHub
Serwios - Overview
Rational choice . Serwios has 25 repositories available. Follow their code on GitHub.
Что такое декоратор в python?
Anonymous Quiz
15%
Модуль pip
25%
Унаследованный метод
38%
Метаданные для приема функции
23%
Функция в super классе
#java
Внутренние и вложенные классы
Классы могут быть вложенными (nested), то есть могут быть определены внури других классов. Частным случаем вложенных классов являются внутренние классы (inner class).
Внутренний класс ведет себя как обычный класс за тем исключением, что его объекты могут быть созданы только внутри внешнего класса.
Еще одной особенностью внутренних классов является то, что их можно объявить внутри любого контекста, в том числе внутри метода и даже в цикле.
Кроме внутренних классов также могут быть статические вложенные классы. Статические вложенные классы позволяют скрыть некоторую комплексную информацию внутри внешнего класса.
Внутренние и вложенные классы
Классы могут быть вложенными (nested), то есть могут быть определены внури других классов. Частным случаем вложенных классов являются внутренние классы (inner class).
Внутренний класс ведет себя как обычный класс за тем исключением, что его объекты могут быть созданы только внутри внешнего класса.
Еще одной особенностью внутренних классов является то, что их можно объявить внутри любого контекста, в том числе внутри метода и даже в цикле.
Кроме внутренних классов также могут быть статические вложенные классы. Статические вложенные классы позволяют скрыть некоторую комплексную информацию внутри внешнего класса.
#java
Как вернуть несколько значений из метода?
Иногда у нас возникает потребность вернуть зразу несколько значений из метода. Например, у нас есть метод который ищет минимальное и максимальное значения массива, и соответственно, должен их вернуть, но как же это сделать?
Вы просто должны вернуть массив найденных значений.
Как вернуть несколько значений из метода?
Иногда у нас возникает потребность вернуть зразу несколько значений из метода. Например, у нас есть метод который ищет минимальное и максимальное значения массива, и соответственно, должен их вернуть, но как же это сделать?
Вы просто должны вернуть массив найденных значений.
#C
Бонсай и С
Забавный код нашел на GitLab. Если хотите вырастить свой ASCII Бонсай, или интересно, как эта структура работает, то вот ссылка. Написан на чистом С. Хороший инструмент, чтобы удивлять новичков
Не забудьте прочитать README, не все системы поддерживают.
https://gitlab.com/jallbrit/cbonsai
Бонсай и С
Забавный код нашел на GitLab. Если хотите вырастить свой ASCII Бонсай, или интересно, как эта структура работает, то вот ссылка. Написан на чистом С. Хороший инструмент, чтобы удивлять новичков
Не забудьте прочитать README, не все системы поддерживают.
https://gitlab.com/jallbrit/cbonsai
#backEnd
Docker — это платформа, которая предназначена для разработки, развёртывания и запуска приложений в контейнерах. Слово «Docker» в последнее время стало чем-то вроде синонима слова «контейнеризация». И если вы ещё не пользуетесь Docker, но при этом работаете или собираетесь работать в сферах разработки приложений или анализа данных, то Docker — это то, с чем вы непременно встретитесь в будущем.
Предшественниками контейнеров Docker были виртуальные машины. Виртуальная машина, как и контейнер, изолирует от внешней среды приложение и его зависимости. Однако контейнеры Docker обладают преимуществами перед виртуальными машинами. Так, они потребляют меньше ресурсов, их очень легко переносить, они быстрее запускаются и приходят в работоспособное состояние.
Docker — это платформа, которая предназначена для разработки, развёртывания и запуска приложений в контейнерах. Слово «Docker» в последнее время стало чем-то вроде синонима слова «контейнеризация». И если вы ещё не пользуетесь Docker, но при этом работаете или собираетесь работать в сферах разработки приложений или анализа данных, то Docker — это то, с чем вы непременно встретитесь в будущем.
Предшественниками контейнеров Docker были виртуальные машины. Виртуальная машина, как и контейнер, изолирует от внешней среды приложение и его зависимости. Однако контейнеры Docker обладают преимуществами перед виртуальными машинами. Так, они потребляют меньше ресурсов, их очень легко переносить, они быстрее запускаются и приходят в работоспособное состояние.
#Spring
Начнем срывать покровы с самых базовых понятий Spring. Бин (bean) — это не что иное, как самый обычный объект. Разница лишь в том, что бинами принято называть те объекты, которые управляются Spring-ом и живут внутри его DI-контейнера. Бином является почти все в Spring — сервисы, контроллеры, репозитории, по сути все приложение состоит из набора бинов. Их можно регистрировать, получать в качестве зависимостей, проксировать, мокать и т.п.
Начнем срывать покровы с самых базовых понятий Spring. Бин (bean) — это не что иное, как самый обычный объект. Разница лишь в том, что бинами принято называть те объекты, которые управляются Spring-ом и живут внутри его DI-контейнера. Бином является почти все в Spring — сервисы, контроллеры, репозитории, по сути все приложение состоит из набора бинов. Их можно регистрировать, получать в качестве зависимостей, проксировать, мокать и т.п.
#practice
Сайты для тренировок на задачках перед собеседованием
LeetCode
Один из самых популярных сайтов для подготовки к техническим собеседованиям — leetcode.com. ... Он предназначен для тренировки, чтобы "набить руку" или вспомнить, как проходить собеседования после перерыва, когда базовые знания уже есть, но существуют проблемы со скоростью, тестированием или с выбором алгоритма.
https://leetcode.com/problemset/all/
CodeWars
Сodewars программирование — это сплошной фан. Зарабатывайте очки, повышайте свой рейтинг, создавайте кланы. Ресурс предлагает огромную подборку задач на более чем 20 языках программирования. На codewars вы сможете обсудить задачи с другими игроками, а также посмотреть альтернативные решения.
https://www.codewars.com/dashboard
Сайты для тренировок на задачках перед собеседованием
LeetCode
Один из самых популярных сайтов для подготовки к техническим собеседованиям — leetcode.com. ... Он предназначен для тренировки, чтобы "набить руку" или вспомнить, как проходить собеседования после перерыва, когда базовые знания уже есть, но существуют проблемы со скоростью, тестированием или с выбором алгоритма.
https://leetcode.com/problemset/all/
CodeWars
Сodewars программирование — это сплошной фан. Зарабатывайте очки, повышайте свой рейтинг, создавайте кланы. Ресурс предлагает огромную подборку задач на более чем 20 языках программирования. На codewars вы сможете обсудить задачи с другими игроками, а также посмотреть альтернативные решения.
https://www.codewars.com/dashboard
LeetCode
LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
Сложность поиска элемента по индексу для Arraylist (get)
Anonymous Quiz
15%
O(n-1)
31%
O(n)
48%
O(1)
6%
O(2n)
#java
Класс Object и его методы
Все классы, даже те, которые мы добавляем в свой проект, являются неявно производными от класса Object. Поэтому все типы и классы могут реализовать те методы, которые определены в классе Object. Рассмотрим эти методы.
Метод toString
служит для получения представления данного объекта в виде строки. При попытке вывести строковое представления какого-нибудь объекта, как правило, будет выводиться полное имя класса.
Метод hashCode
позволяет задать некоторое числовое значение, которое будет соответствовать данному объекту или его хэш-код. По данному числу, например, можно сравнивать объекты.
Метод getClass
позволяет получить тип данного объекта.
Метод equals
сравнивает два объекта на равенство
Класс Object и его методы
Все классы, даже те, которые мы добавляем в свой проект, являются неявно производными от класса Object. Поэтому все типы и классы могут реализовать те методы, которые определены в классе Object. Рассмотрим эти методы.
Метод toString
служит для получения представления данного объекта в виде строки. При попытке вывести строковое представления какого-нибудь объекта, как правило, будет выводиться полное имя класса.
Метод hashCode
позволяет задать некоторое числовое значение, которое будет соответствовать данному объекту или его хэш-код. По данному числу, например, можно сравнивать объекты.
Метод getClass
позволяет получить тип данного объекта.
Метод equals
сравнивает два объекта на равенство
Что выведется на экран?
'you are doing well' [2:999]
'you are doing well' [2:999]
Anonymous Quiz
18%
'you are doing well'
8%
' '
59%
Index error.
16%
'u are doing well'
#java #definition
Что такое JSP?
Java Server Pages представляет технологию, которая позволяет создавать динамические веб-страницы. Изначально JSP (вместе с сервлетами) на заре развития Java EE являлись доминирующим подходом к веб-разработке на языке Java. И хотя в настоящее время они уступило свое место другой технологии - JSF, тем не менее JSP продолжают широко использоваться.
По сути Java Server Page или JSP представляет собой html-код с вкраплениями кода Java. В то же время станицы jsp - это не стандартные html-страницы. Когда приходит запрос к определенной странице JSP, то сервер обрабатывает ее, генерирует из нее код html и отправляет его клиенту. В итоге пользователь после обращения к странице JSP видит в своем браузере обычную html-страницу.
Что такое JSP?
Java Server Pages представляет технологию, которая позволяет создавать динамические веб-страницы. Изначально JSP (вместе с сервлетами) на заре развития Java EE являлись доминирующим подходом к веб-разработке на языке Java. И хотя в настоящее время они уступило свое место другой технологии - JSF, тем не менее JSP продолжают широко использоваться.
По сути Java Server Page или JSP представляет собой html-код с вкраплениями кода Java. В то же время станицы jsp - это не стандартные html-страницы. Когда приходит запрос к определенной странице JSP, то сервер обрабатывает ее, генерирует из нее код html и отправляет его клиенту. В итоге пользователь после обращения к странице JSP видит в своем браузере обычную html-страницу.
Результатом выполнения программы будет
Anonymous Quiz
5%
"String"
11%
String
19%
false
46%
Ошибка компиляции
19%
true
#UI
Как практиковать UI разработку?
1) Редизайн готовых идей. Всегда можно изменить сайт, иконку или логотип уже известного проекта. Вы безусловно набьете себе руку, но и можете сделать свои ошибки привычкой, если не будете брать реальные таски.
2) Фриланс. Всегда можно взять задание с настоящего заказа для тренировки, но если у вас уже есть какие-то навыки и уверенность в себе, можете попробовать выполнить такой заказ всерьез. Также берите тестовые задания в рекрутеров.
e. g: https://ain.ua/2015/12/31/19-frilans-ploshhadok-dlya-dizajnerov-i-programmistov/
3) Большинство рекрутеров делают тестовые задания по уже готовым паттернам. Вам остается только анализировать сайты где эти паттерны форсируются.
e. g: https://jangol.org.ua/blog/2020/04/10/kak-sdelat-testovoe-zadanie-ux-ui-dizajneru-primery-i-10-sovetov/
Как практиковать UI разработку?
1) Редизайн готовых идей. Всегда можно изменить сайт, иконку или логотип уже известного проекта. Вы безусловно набьете себе руку, но и можете сделать свои ошибки привычкой, если не будете брать реальные таски.
2) Фриланс. Всегда можно взять задание с настоящего заказа для тренировки, но если у вас уже есть какие-то навыки и уверенность в себе, можете попробовать выполнить такой заказ всерьез. Также берите тестовые задания в рекрутеров.
e. g: https://ain.ua/2015/12/31/19-frilans-ploshhadok-dlya-dizajnerov-i-programmistov/
3) Большинство рекрутеров делают тестовые задания по уже готовым паттернам. Вам остается только анализировать сайты где эти паттерны форсируются.
e. g: https://jangol.org.ua/blog/2020/04/10/kak-sdelat-testovoe-zadanie-ux-ui-dizajneru-primery-i-10-sovetov/
AIN.UA
19 фриланс-площадок для дизайнеров и программистов
#Algorithms
Binary search algorithm
In computer science, binary search, also known as half-interval search, logarithmic search, or binary chop, is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the middle element of the array. If they are not equal, the half in which the target cannot lie is eliminated and the search continues on the remaining half, again taking the middle element to compare to the target value, and repeating this until the target value is found. If the search ends with the remaining half being empty, the target is not in the array.
Binary search algorithm
In computer science, binary search, also known as half-interval search, logarithmic search, or binary chop, is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the middle element of the array. If they are not equal, the half in which the target cannot lie is eliminated and the search continues on the remaining half, again taking the middle element to compare to the target value, and repeating this until the target value is found. If the search ends with the remaining half being empty, the target is not in the array.
#java
Классы-оболочки
Классы-оболочки Java являются Объектным представлением восьми примитивных типов в Java. Все классы-оболочки в Java являются неизменными и final. Начиная с Java 5 автоупаковка и распаковка позволяет легко конвертировать примитивные типы в их соответствующие классы-оболочки и наоборот.
Разработчиками языка Java было принято очень умное решение отделить примитивные типы и классы-оболочки, указав при этом следующее:
1) Используйте классы-обертки, когда работаете с коллекциями.
2) Используйте примитивные типы для того, чтобы ваши программы были максимально просты.
Классы-оболочки
Классы-оболочки Java являются Объектным представлением восьми примитивных типов в Java. Все классы-оболочки в Java являются неизменными и final. Начиная с Java 5 автоупаковка и распаковка позволяет легко конвертировать примитивные типы в их соответствующие классы-оболочки и наоборот.
Разработчиками языка Java было принято очень умное решение отделить примитивные типы и классы-оболочки, указав при этом следующее:
1) Используйте классы-обертки, когда работаете с коллекциями.
2) Используйте примитивные типы для того, чтобы ваши программы были максимально просты.