java-master.com
162 subscribers
1 photo
35 links
Телеграм канал сайта java-master.com.
Download Telegram
​​Кто еще не до конца разобрался с терминологией Spring? Попытался простыми словами сделать обзор всего фреймворка в кратце. Если делать подробно - статья может потянуть на целую книгу😁😅
Мини заметка по нахождении и исправлении багов

Первое - смотрим на ошибку (логи или консоль) и пытаемся понять, что не так; анализируем и если нужно, лезим в гугл.

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

Время обнаружения и исравления ошибок со временем будет меньше.

Если не получается исправить или обнаружить ошибку в течении 30 минут - делаем перерыв на 5 минут и только потом продолжаем.

Если не получается исправить или обнаружить ошибку в течении 5 часов - делаем перерыв как минимум на 10 часов: берем другую задачу в работу или, если есть возможость, выключаем комп.😉
Работа с Kafka стала очень простой с использованием фреймворка Spring Boot. Записал небольшое видео по этой теме:
https://www.youtube.com/watch?v=ZVnpKs6X1Vc&ab_channel=JavaMaster
Новое видео: Spring MVC Thymeleaf. Давно просили - получайте. Показал базовые вещи с контроллером и таймлиф. Также очень просили обход списка на странице. Это также есть в видео: https://www.youtube.com/watch?v=nd-_Dsu_VhU
Имплементация корзины на ReactJS. В прошлом видео из серии Online Store мы сделали функционал по оформлению заказа. В этом видео доделали фронтенд. Не обошлось без изменения бекенда.
https://youtu.be/8TF18qe5sLw
Пагинация с помощью Spring Boot Data JPA будет очень полезна когда нужно отобржать большие объемы данных на веб страницах. Советую ознакомиться:
https://youtu.be/53VK2qwS89Y
Не знаете чем заняться на выходных? Как насчет написать игру "Крестики нолики"? Возможно не самое приятное занятие😂 Но зато это отличная возможность подучить программирование на Java и Javascript в развлекательном формате😉
Ссылка на бекенд часть: https://youtu.be/XwQJRfv9Mfg

Ссылка на фронтенд часть: https://youtu.be/UP0GJPpMV3c

Сервер и клиент написаны в очень простой форме.
Код содержит некоторые баги и потребует доработок. Не стал дорабатывать чтобы не удлинять туториал, А также чтобы, Вам было над чем поработать самим😄
Разбираем JDBC, JPA, Hibernate, Spring Data Jpa и разницу между ними. У Вас же наверняка есть эти технологии в резюме?😁😂
Подготовил видео по Java JDBC. Пришлось даже старый код найти чтобы вспомнить азы. В самом видео нет пула соединений и вообще с соединением обошлись там не очень😁 Но цель была показать как делать запросы в базу.

https://youtu.be/zkWOA5M7f5Q
​​Небольшая заметка по REST API.
Использование REST AP подразумевает слабую зависимость между проектами в отличие от spring mvc.

Преимущества рест апи в том, что фронт абсолютно не связан c бекендом.
Ты можешь сегодня подключить фронтенд веб приложения, а завтра сможешь использовать свой бекенд для мобильного приложения или для передачи данных сторонним сервисам. В этом и прелесть rest api.

Простой и удобный для чтения формат JSON, в котором передаются данные позволяет программистам без труда создать тестовый объект в Postman, сделать тестовые запросы и проверить свой сервис. В отличие от того же XML в котором очень сложно и долго создавать тестовый макет “руками”. А дефолтная поддержка REST фреймворком Spring позволяет начать писать REST API без дополнительной конфигурации со стороны разработчика.
Деплоим ReactJS проект на Google Firebase Console хостинг. В гугла есть бесплатный тарифный план с минимальными параметрами.

Этого вполне хватит чтобы задеплоить свое приложение и показать его работодателю или клиенту. Имея под рукой Heroku чтобы задеплоить бекенд и Google чтобы задеплоить фронтенд (на хероку тоже можно деплоить фронтенд), Вы сможете пилить и деплоить фулстак приложения для дальнейшей демонстрации.
Смотрим, изучаем, используем:
https://youtu.be/23KUmEOu4dk
Какая версия java у вас основная?
Anonymous Poll
51%
8
32%
11
9%
13
0%
5
9%
Другое
Записал видео по Redis. Раньше как-то вокруг этого NoSql хранилища было больше шума. Сам по себе туториал - просто предыстория к туториалу по организации кеша Spring Boot приложения с момошью Redis.
https://youtu.be/UTzjU23P8II
Закончил статью Apache Kafka с примером на Java 11 и Spring Boot. Будет интересно тем, кто давно хотел понять принципы асинхронной коммуникации между сервисами.
Что такое виртуальные машины? Что такое контейнеры? Как контейнер относится к Docker? В чем отличие виртуальной машины от контейнера?
Хотите знать ответы на вышепоставленные вопросы? Читайте новую статью на сайте java-master.com😉
Почему на досуге лучше отдать предпочтение по изучению базовым вещам вместо фреймворков и библиотек?

Я тут подумал, что для подписчиков моего телеграмм канала должны быть “бонусы” в виде отдельных заметок, которые не будут выходить на сайте или ютуб канале. 😊
И сегодня я хочу выразить свое мнение насчет развития программиста в IT среде.

Сейчас выходит очень много фреймворков, технологий, терминов и прочих интересных и не очень вещей в программировании. Среднестатистическое описание вакансии на позицию Java разработчика подпадает под описание целого айти отдела разработки😁 Начиная с девелопмента бекенда, сложного фронтенда с его Ангулярами и Реактами; и заканчивая докер-кубернетес-авс-гугл-клауд-азур-елка-стек и другие.
Если раньше бекенд девелопер занимался только разработкой бекенда с небольшой примесью фронтенда на jsp то теперь набор обязанностей намного шире.

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

С другой стороны - появление новых технологий и фреймворков заставляет разработчиков постоянно обучаться и пробовать что-то новое. Не всегда это удобно. Вместо того, чтобы провести время за сериалом или с семьей разработчик вынужден “ковырять” новый “топовый” фреймворк, который возможно года так через 3-5 будет никому не нужен.

Так что же делать в таком случае? Конкретного ответа на этот вопрос у меня нет. НО! Я поделюсь со своей схемой работы.

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

Не скажу что я не изучаю новые фреймворки и технологии. Просто я приступаю к изучению когда фреймворк нужен мне для работы или это реально закрепившееся технология, которая на рынке уже лет 5 как.
Правильно ли это я сказать не могу:) Для меня это пока работает. Я не чувствую что “выпадаю” из трендов и стаю динозавром.

Года 3 или 4 назад были очень популярны термины Big Data, MapReduce, Hadoop, BlockChain. Тогда было очень много конференций, семинаров, разного рода курсов и туториалов по этим технологиям. Почти в каждой вакансии на Java разработчика можно было встретить если не все то несколько подобных ключевых слов. Сегодня же они встречаются все реже.

К чему я все это веду. Если Вы разработчик или только начинаете свой путь в IT, уделяйте больше времени изучению базовых вещей, которые никогда не выйдут из моды, на которых базируются все новомодные фреймворки. Еще раз пройдитесь по структурам данных, паттернам проектирования. Научитесь решать задачки на hackerrank. Не все, но хотя бы находить минимальное и максимальное значение в массиве нужно уметь. Я ведь не только разработчик но еще и собеседую других людей. Бывает что в резюме полно технологий типа React, NodeJs, NoSQL, Angular, TypeScript, а человек не может написать функцию для нахождения среднего арифметического значения из массива чисел. Пытается какую-то библиотеку впихнуть, вызвать какой-то конструктор…

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

Постараюсь писать сюда почаще если подобный формат будет интересен.😉