Pull to refresh
1
0
Send message

Подготовка к Spring Professional Certification. Контейнер, IoC, бины

Reading time10 min
Views105K

Доброго времени суток, Хабр.


Сегодня я решил представить вам перевод цикла статей для подготовки к Spring Professional Certification.


Это перевод только первой статьи, если он зайдет аудитории, я продолжу выпуск переводов.  


Зачем я это делаю, ведь уже есть куча профильных материалов?
  1. Часто в них информация не структурирована, не собрана, или не актуальна
  2. Молодые разработчики могут не знать английский. Этот цикл можно использовать не только для сертификации, но и для самообучения/повторения материалов.
  3. Этими материалами можно пользоваться при подготовке к собеседованию, т.к. они выстроены в виде вопросов и ответов.
  4. Важное, и самое главное преимущество — этот QA сделан из вопросов из  официального Study Guide от Pivotal. 

  • Некоторые вопросы, которые казались мне лишними или которых не было в гиде я осознанно упустил.

Оглавление
  1. Внедрение зависимостей, контейнер, IoC, бины
  2. AOP (аспектно-ориентированное программирование)
  3. JDBC, транзакции, JPA, Spring Data
  4. Spring Boot
  5. Spring MVC
  6. Spring Security
  7. REST
  8. Тестирование

Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments53

Туториал по JUnit 5 - Аннотация @ParameterizedTest

Reading time7 min
Views50K

Это продолжение туториала по JUnit 5. Введение опубликовано здесь.

Аннотация @ParameterizedTest, позволяет выполнить тест несколько раз, но с разными аргументами.

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

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments0

Идеальный программист: тезисы

Level of difficultyEasy
Reading time11 min
Views11K

"Идеальный программист" Роберта Мартина давно стал руководством по профессионализму в сфере IT и одним из основополагающих трудов в современной разработке, наравне с "Чистым кодом", "Чистой архитектурой" и "Чистым эджайлом".

В посте ниже собраны наиболее значимые тезисы из "Идеального программиста".

Читать далее
Total votes 13: ↑6 and ↓7+1
Comments32

Самые распространенные логические ошибки

Level of difficultyEasy
Reading time12 min
Views62K

Изучение логических ошибок помогает в развитии критического мышления, необходимого во всех сферах жизни. School of Thought проделала отличную работу, описав 24 наиболее распространенные логические ошибки.

Читать далее
Total votes 68: ↑63 and ↓5+74
Comments101

JMeter как инструмент для автоматизации функционального тестирования

Level of difficultyMedium
Reading time15 min
Views23K

Привет, мы Алексей Чичук, Анастасия Стрижеченко и Владислав Литвинов — тестировщики из банка Точка.

Конечно же, в Точке огромное количество сервисов, каждый из которых совершенствуется и «обрастает» новыми фичами. Всё это невозможно протестировать руками, а обучать тестировщиков автоматизации на каком-либо языке программирования — долго, дорого, а местами и вовсе неэффективно. Поэтому мы начали искать подходящий инструмент автоматизации.

И сегодня мы расскажем, как и почему мы стали использовать JMeter для функционального тестирования.

Читать дальше
Total votes 12: ↑12 and ↓0+12
Comments8

Как учиться учиться и для чего интровертам телеграм-канал

Level of difficultyEasy
Reading time8 min
Views12K

«Лучший способ в чём-то разобраться до конца — это попробовать научить этому компьютер». Дональд Кнут (как минимум викицитатник говорит, что он так сказал).

Год назад я осознал, что моё развитие как инженера застопорилось. Не то, чтобы я перестал изучать что-то новое, скорее, страдал от отсутствия системности. Не было понятно, что изучать дальше, что уже получилось изучить и что из изученного я смог для себя извлечь. Поэтому я решил как-то осмыслить процесс самообучения и за год привёл его к системе, которая мне довольно сильно помогает.

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

Читать далее
Total votes 22: ↑20 and ↓2+21
Comments7

Мягкие ссылки на страже доступной памяти или как экономить память правильно

Reading time13 min
Views161K
image
Все java-разработчики, рано или поздно, встречаются с пресловутой ошибкой OutOfMemoryError. 
После этой встречи мы начинаем более бережно относится к используемой памяти, экономить ее. Начиная с версии 1.2 в Java появился пакет java.lang.ref.* с классами SoftReference, WeakReference, PhantomReference. Далее я расскажу вам о том, как помогут эти классы в борьбе с OutOfMemoryError. И что более интересно, приведу реальные примеры их использования. Начнем.
Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments23

Кластерные и «обычные» индексы MySQL (InnoDB)

Reading time5 min
Views130K
Все мы помним хрестоматийное объяснение «что такое индексы в БД и как они облегчают задачи поиска нужных строк». Уверен, у большинства из вас перед глазами встаёт нечто подобное:

Некластерный индекс

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

И лично мне всегда казалось, что улучшать эту схему некуда… Пока я не познакомился с кластерными индексами. Оказалось, что всё не так уж радужно с «обычными» индексами.

Итак, что же такое кластерный индекс, чем он лучше некластерного, и как с ним обстоит дело у MySQL.
Читать дальше →
Total votes 90: ↑87 and ↓3+84
Comments33

Наиболее распространенные типы поломок ноутбуков в моей практике: топ-5 простых причин выхода устройства из строя

Reading time6 min
Views53K


Всем привет! Обычно я выкладываю обзоры барахолок в Испании, но сегодня расскажу немного о другом. Дело в том, что мое увлечение — это ремонт ноутбуков. Раньше еще занимался ремонтом айфонов, но потом как-то надоело. Больше почему-то нравятся ноутбуки — я покупаю на местном аналоге Авито, чиню, потом — либо отдаю знакомым, либо продаю.

Через мои руки прошли сотни ноутбуков, как с очень сложными поломками, так и очень простыми. Не скажу, что я мастер высочайшего класса, но, например, заменить VRAM, процессор или хаб могу. Имею в виду, конечно, те компоненты, что распаяны на плате, а не съемные. Сегодня расскажу о наиболее распространенных видах поломок ноутбуков, починить которые достаточно просто, но многие из них ставят в тупик обычных пользователей. Если вы — мастер высокого класса, вряд ли почерпнете что-то для себя. Но если начинающий или просто пользователь — думаю, будет интересно.
Читать дальше →
Total votes 132: ↑131 and ↓1+166
Comments194

Spring Cache: от подключения кэширования за 1 минуту до гибкой настройки кэш-менеджера

Reading time12 min
Views100K
Раньше я боялся кэширования. Очень не хотелось лезть и выяснять, что это такое, сразу представлялись какие-то подкапотные люто-энтерпрайзные штуки, в которых может разобраться только победитель олимпиады по математике. Оказалось, что это не так. Кэширование оказалось очень простым, понятным и невероятно лёгким во внедрении в любой проект.



В данном посте я постараюсь объяснить о кэшировании так же просто, как это сейчас понимаю я. Вы узнаете о том, как внедрить кэширование за 1 минуту, как кэшировать по ключу, устанавливать время жизни кэша, и многие прочие штуки, которые необходимо знать, если Вам поручили закэшировать что-то в вашем рабочем проекте, и Вы не хотите ударить в грязь лицом.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments9

20 уроков, которые я вынес из 20 лет работы программистом

Level of difficultyEasy
Reading time9 min
Views116K
Вы приступаете к чтению статьи с высокой концентрацией советов. Учиться у предшественников – хороший способ добиться успеха, но здесь мы часто забываем о важной оговорке. Практически любой совет работает только в определенном контексте, но дается обычно без каких-либо указаний на него.

«Да просто повысьте цены!» — говорит компания, которая уже двадцать лет на рынке и первые годы продавала продукт за копейки, чтобы привлечь клиентов и прийти к успеху. «Нужно всё реализовать в микросервисах», — говорит компания, которая по-быстрому сколотила монолит, набрала несколько тысяч пользователей и метнулась к микросервисам, когда начались проблемы с масштабированием.

Без понимания контекста советы теряют смысл или, хуже того, приносят вред. Если бы люди из примеров выше последовали своим собственным советам в начале пути, то, вероятно, пожалели бы этом. Этой ловушки сложно избежать. Мы представляем собой кульминацию своего опыта, но при этом смотрим на него через призму настоящего.
Читать дальше →
Total votes 135: ↑128 and ↓7+152
Comments115

Учимся разворачивать микросервисы. Часть 2. Kubernetes

Reading time17 min
Views60K


Привет, Хабр!


Это вторая часть из серии статей "Учимся разворачивать микросервисы". В предыдущей части мы написали 2 простеньких микросервиса — бекенд и шлюз, и разобрались с тем, как их упаковать в docker-образы. В этой же статье мы будем организовывать оркестрацию наших docker-контейнеров с помощью Kubernetes. Мы последовательно составим конфигурацию для запуска системы в Minikube, а затем адаптируем ее для деплоя в Google Kubernetes Engine.

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments16

Учимся разворачивать микросервисы. Часть 1. Spring Boot и Docker

Reading time7 min
Views91K


Привет, Хабр.


В этой статье я хочу рассказать о своем опыте создания учебной среды для экспериментов с микросервисами. При изучении каждого нового инструмента мне всегда хотелось его попробовать не только на локальной машине, но и в более реалистичных условиях. Поэтому я решил создать упрощенное микросервисное приложение, которое впоследствии можно будет "обвешивать" всякими интересными технологиями. Основное требование к проекту — его максимальная функциональная приближенность к реальной системе.


Изначально я разбил создание проекта на несколько шагов:


  1. Создать два сервиса — 'бекенд' (backend) и 'шлюз' (gateway), упаковать их в docker-образы и настроить их совместную работу


    Ключевые слова: Java 11, Spring Boot, Docker, image optimization


  2. Разработка Kubernetes конфигурации и деплой системы в Google Kubernetes Engine


    Ключевые слова: Kubernetes, GKE, resource management, autoscaling, secrets


  3. Создание чарта с помощью Helm 3 для более эффективного управления кластером


    Ключевые слова: Helm 3, chart deployment


  4. Настройка Jenkins и пайплайна для автоматической доставки кода в кластер


    Ключевые слова: Jenkins configuration, plugins, separate configs repository



Каждому шагу я планирую посвятить отдельную статью.


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

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments31

Внешние данные конфигурации в Spring

Reading time9 min
Views72K

Большинство наших приложений зависят от внешних сервисов, например серверов баз данных, SMS-шлюзов и систем наподобие PayPal. Эти сервисы могут существовать более чем в одной среде, то есть в средах разработки и эксплуатации. Если мы хотим подключиться к эксплуатационной среде, мы должны сначала пройти через среду разработки. Таким образом, во время создания приложений нам приходится переключаться между средами. Это связано с тем, что у каждой среды своя уникальная конфигурация со своими параметрами подключения и прочими значениями.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments2

Все «косячат» – 2

Reading time4 min
Views16K

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

Мало кто задумывается над тем, что необходимость принятия любого решения обусловлена ограниченностью ресурса. Никто не может находиться одновременно в нескольких местах. Никто пока ещё не научился перемещаться во времени. Ни у кого пока не получается что-то делать одновременно и быстро, и дёшево, и качественно.

Решения принимают для того, чтобы ресурсы расходовались рационально. И принятие любого решения сужает горизонт и ограничивает дальнейший выбор. Выбрав что-то одно, вы лишаете себя чего-то другого. Классическим примером служит витязь на перепутье.
Читать дальше →
Total votes 26: ↑24 and ↓2+26
Comments7

Не только обработка: Как мы сделали из Kafka Streams распределенную базу данных, и что из этого вышло

Reading time6 min
Views7.6K
Привет, Хабр!

Напоминаем, что вслед за книгой о Kafka мы выпустили не менее интересный труд о библиотеке Kafka Streams API.



Пока сообщество только постигает границы возможностей этого мощного инструмента. Так, недавно вышла статья, с переводом которой мы хотим вас познакомить. На собственном опыте автор рассказывает, как сделать из Kafka Streams распределенное хранилище данных. Приятного чтения!
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments0

Apache NiFi: что это такое и краткий обзор возможностей

Reading time7 min
Views121K
Сегодня на тематических зарубежных сайтах о Big Data можно встретить упоминание такого относительно нового для экосистемы Hadoop инструмента как Apache NiFi. Это современный open source ETL-инструмент. Распределенная архитектура для быстрой параллельной загрузки и обработки данных, большое количество плагинов для источников и преобразований, версионирование конфигураций – это только часть его преимуществ. При всей своей мощи NiFi остается достаточно простым в использовании.

image

Мы в «Ростелекоме» стремимся развивать работу с Hadoop, так что уже попробовали и оценили преимущества Apache NiFi по сравнению с другими решениями. В этой статье я расскажу, чем нас привлек этот инструмент и как мы его используем.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments25

Основные функции ETL-систем

Reading time7 min
Views325K
ETL – аббревиатура от Extract, Transform, Load. Это системы корпоративного класса, которые применяются, чтобы привести к одним справочникам и загрузить в DWH и EPM данные из нескольких разных учетных систем.

Вероятно, большинству интересующихся хорошо знакомы принципы работы ETL, но как таковой статьи, описывающей концепцию ETL без привязки к конкретному продукту, на я Хабре не нашел. Это и послужило поводом написать отдельный текст.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments6

Apache Kafka: обзор

Reading time12 min
Views364K
Привет, Хабр!

Сегодня мы предлагаем вам сравнительно краткую, но при этом толковую и информативную статью об устройстве и вариантах применения Apache Kafka. Рассчитываем перевести и выпустить книгу Нии Нархид (Neha Narkhede) et. al до конца лета.


Приятного чтения!
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments19

Набор практик по работе с Postgresql глазами Spring java backend разработчика

Reading time11 min
Views17K

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

Данная заметка - микс различных приемов работы с базой данных, мейнтененса, встречающихся проблем. В общем это чистой воды винегрет и что-то вроде шпаргалки. Я не являюсь гуру PostgreSQL, но могу поделиться своими наработками, которые использую достаточно часто являясь простым java разработчиком. Может кому-то что-то пригодиться.

Читать далее
Total votes 23: ↑19 and ↓4+17
Comments32

Information

Rating
Does not participate
Registered
Activity