job4j.ru - Практика. Ревью. Результат.
771 subscribers
75 photos
186 links
О жизни в IT:
- Языки: Go, Rust, Java, Kotlin
- Технологии: PostgreSQL, Kafka
- Инфраструктура: Docker, Kubernetes
- Soft Skills: общение, интервью, карьера
Download Telegram
ООП в Go. Проект Tracker. Часть 3.

Осталось рассмотреть последний элемент — реализацию полиморфизма за счёт интерфейсов. Когда я стал знакомиться с Go и спрашивать впечатления о языке у тех, кто на нём немного писал, первый негативный отзыв я услышал про «утиную типизацию».

Далее https://job4j.ru/article/view/6
👍4❤3
Обновление блока по микросервисам

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

Далее 👉 https://www.job4j.ru/article/view/7
👍6🔥5✍2
Как инфоцыгане сравнивают Java и Go

Неделю назад мне скинули статью, где сравнивают Java и Go. Почему мне? Потому что я сам начал писать на Go в этом году. Зачем? Что меня не устраивало в Java?

👉 Далее https://job4j.ru/article/view/8
👍17❤7🔥3
💡 Code Review [#505545]

Добавил новый урок в курс «Микросервисы» - job4j.ru/courses/14

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

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

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

🧩 В команде действует негласное правило: одна задача — один коммит.
Из-за этого приходится активно использовать команды:

git rebase -i
squash
git push -f


🤔 Второй важный момент — как проводить ревью, если ты пока плохо ориентируешься в проекте.

Здесь хороший совет дал руководитель команды:

> «Не обязательно писать комментарии по коду, но обязательно смотри чужие MR».

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

А как у вас с код-ревью: любите разбирать чужой код или больше волнуетесь, когда проверяют ваш? 😅

#job4j #программирование #codereview #микросервисы
👍13❤3
Обновление урока Гибкие методологии [#505060]

Добавил описание Scrum, потому что в текущей компании, как раз все по scrum ))

Курс 3.6. Микросервисы v.1.0 https://job4j.ru/courses/14
👍7
Добавил урок "Параллельные задачи Jenkins [#505549]"

На платформе job4j есть бот, который выполняет проверку и сборку проекта ученика, по сути это и есть CI. Изначально, я сделал так, что все задачи в pipeline выполняется последовательно. Это приводит к тому, что если у ученика есть ошибки и в линтере и в тестах, то ему приходится несколько раз делать исправления.
По факту эти задачи можно выполнить независимо, что даст возможность внести полноценные правки.

В курсе DevOps для этого я создал задачу, где показал, как это сделать через Jenkins. а на самой платформе я поправлю поведение CI Bot.

А вот на работе используется GitLab. Причем процессы автоматизирован на столько, что в нем есть и e2e тесты и интеграция с Jira и финальная раскатка канарейкой на прод.

Описание курса DevOps 👉 https://job4j.ru/courses/35
🔥7👍5❤3🤩1
Изменения в поведение CI Bot

Сегодня обновил поведение платформы Job4j. Как я писал ранее, наш CI Bot выполнял проверки последовательно: check env → linter → test. Это было неудобно, поскольку не давало целостной картины состояния проекта.

Теперь бот проверяет все этапы сразу.

Кроме того, я убрал функцию, при которой бот, обнаружив ошибки, автоматически возвращал ответственного за задачу обратно в статус ученика. Теперь задача остаётся на проверке у ментора. Это сделано для того, чтобы ментор мог подсказать, что именно нужно исправить: в 99 % случаев ученик сам не знает, как это сделать — особенно на начальном этапе обучения.

Тема CI/CD подробно разобрана в курсе DevOps:
👉 https://job4j.ru/courses/35
👍16🙏2
🔥 Чёрная пятница: Курс DevOps

Хочешь разобраться, как код превращается в работающий сервис? Пора узнать, как устроены Docker, Kubernetes, Jenkins, Prometheus и Grafana — без скучной теории, на реальных проектах.

🎯 Только до 30 ноября — скидка −15% на курс DevOps на практике. Прокачайся в CI/CD, автоматизации и мониторинге, чтобы быть тем, кто не просто пишет код, а запускает его в прод.

12707 руб. 14950 руб.

👉 https://job4j.ru/courses/35
🔥15❤2
Kotlin — эсперанто среди языков программирования

На этой неделе в посте у Михаила https://t.me/liferefactoring/995 была озвучена отличная мысль о том, что мы забываем, чем мы занимаемся.

В посте опубликована ссылка на доклад с конференции Kotlin. В видео два выступления, первое из которых заканчивается фразой: «Котлин — это не сахар». Обычно, когда начинают оправдываться, это значит, что есть за что.

Далее 👉 https://job4j.ru/article/view/9
❤1
Переход от Java к Go: взгляд инженера, а не фаната языка

Я немного разгреб задачи на работе и наконец нашёл время написать эту статью. Как вы знаете, в последнее время я активно пишу на Go. И в этой статье я хочу объяснить, почему я рекомендую опытным разработчикам попробовать этот язык.

Далее https://job4j.ru/article/view/10
🔥15👍9❤2
Job4j в 2026 году
🔥72😱5❤3👍3⚡1
Тем временем

Я обновил весь дизайн через GPT 5.2. Может где-то моргнул, так что смело пишите.

http://job4j.ru/
🔥20👎4❤3
Light theme

Добавил светлую тему. В правом верхнем углу переключатель.
🔥26🙏5
Внес правки в светлую тему

1. Вернул поиск.
2. Поправил стили.
❤14
О созерцании шума ИТ-рынка

Эта статья не про рынок вакансий. Она про то, почему попытка понять ИТ-рынок через вакансии создаёт иллюзию контроля и мешает принимать правильные решения — как разработчикам, так и тем, кто их обучает.

Далее 👉 https://job4j.ru/article/view/11
🔥17👍7❤4
Channel name was changed to «job4j.ru - Практика. Ревью. Результат.»
Testcontainers

Добавил на платформу поддержку интеграционных тестов через docker.socket + testcontainers.

В продолжение предыдущей статьи: в новой версии курса по Go повествование будет строиться не от задач, как это было в курсе по Java, а от процессов. Но чтобы описывать процессы, нам сразу нужны интеграционные тесты.

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

Раньше я также был большим сторонником модельных (unit) тестов. Однако со временем пришёл к выводу, что в прикладных сервисах правильнее делать упор на интеграционные тесты. Причём они должны начинаться с уровня API — то есть покрывать целостный процесс, а не проверять локальное состояние отдельных компонентов.
🔥9👍6❤4
Стратегии развития разработчика: пожарный и хранитель процесса

В этой статье я хочу поговорить о стратегии развития разработчика в условиях нестабильного ИТ-рынка.

Ранее я уже писал, что любой кризис — это не только спад, но и точка роста. Для меня лично уход в найм — это шаг назад. У меня есть собственный образовательный проект job4j, и в долгосрочной перспективе мне выгоднее развивать продукт, чем вкладываться в карьерную гонку внутри компаний. Однако текущая ситуация на рынке сделала этот шаг необходимым — как меру стабилизации.

Но эта статья не про меня. Она про вас — разработчиков, которым нужно понимать:

Далее 👉 https://job4j.ru/article/view/12
❤15👍9🔥3💯2
Комментарий как след процесса

В своих курсах по Java я много лет настоятельно рекомендовал не использовать комментарии внутри методов. Я прямо говорил: если внутри метода появился комментарий — это code smell.

Логика была простой:

если код приходится объяснять словами — значит, он плохо структурирован;
если внутри метода нужен комментарий — значит, метод делает слишком много;
правильный путь — разбить метод, выделить абстракции, дать имена, и комментарий станет не нужен.
И в тот момент это было логично. Я сам так писал код. Я сам так думал.

Я думал в рамках задач.

Далее 👉 https://job4j.ru/article/view/13
👍25
Давайте отделим мух от котлет

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

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

Далее 👉 https://job4j.ru/article/view/14
👍8🔥5
GoLang, Финтех, какие сложности возникли

В этом видео рассказываю о сложностях, которые возникли у меня в финтехе на стеке GoLang. Рассказываю о переходи на процессинговое мышление.

https://www.youtube.com/watch?v=WqRwWaROees
🔥16👍5