ООП в Go. Проект Tracker. Часть 3.
Осталось рассмотреть последний элемент — реализацию полиморфизма за счёт интерфейсов. Когда я стал знакомиться с Go и спрашивать впечатления о языке у тех, кто на нём немного писал, первый негативный отзыв я услышал про «утиную типизацию».
Далее https://job4j.ru/article/view/6
Осталось рассмотреть последний элемент — реализацию полиморфизма за счёт интерфейсов. Когда я стал знакомиться с Go и спрашивать впечатления о языке у тех, кто на нём немного писал, первый негативный отзыв я услышал про «утиную типизацию».
Далее https://job4j.ru/article/view/6
👍4❤3
Обновление блока по микросервисам
Сейчас я занят переписыванием блока о микросервисах. Быстро закончить работу не получается, поэтому хочу кратко описать, какие изменения планируются, чтобы помочь тем ученикам, кто уже проходит этот блок.
Далее 👉 https://www.job4j.ru/article/view/7
Сейчас я занят переписыванием блока о микросервисах. Быстро закончить работу не получается, поэтому хочу кратко описать, какие изменения планируются, чтобы помочь тем ученикам, кто уже проходит этот блок.
Далее 👉 https://www.job4j.ru/article/view/7
👍6🔥5✍2
Как инфоцыгане сравнивают Java и Go
Неделю назад мне скинули статью, где сравнивают Java и Go. Почему мне? Потому что я сам начал писать на Go в этом году. Зачем? Что меня не устраивало в Java?
👉 Далее https://job4j.ru/article/view/8
Неделю назад мне скинули статью, где сравнивают Java и Go. Почему мне? Потому что я сам начал писать на Go в этом году. Зачем? Что меня не устраивало в Java?
👉 Далее https://job4j.ru/article/view/8
👍17❤7🔥3
💡 Code Review [#505545]
Добавил новый урок в курс «Микросервисы» - job4j.ru/courses/14
Причина появления этого урока в том, что в текущей компании очень высокие требования к качеству кода, и мне часто приходится проходить код-ревью по нескольку раз.
Кроме того, все члены команды обязаны участвовать в ревью кода других разработчиков.
Есть несколько моментов, на которые стоит обратить внимание. В уроке я подробно их разобрал, а здесь кратко расскажу для тех, кто не имеет доступа к системе.
🧩 В команде действует негласное правило: одна задача — один коммит.
Из-за этого приходится активно использовать команды:
🤔 Второй важный момент — как проводить ревью, если ты пока плохо ориентируешься в проекте.
Здесь хороший совет дал руководитель команды:
> «Не обязательно писать комментарии по коду, но обязательно смотри чужие MR».
Во-первых, так ты быстрее привыкнешь к стилю команды.
Во-вторых, код станет тебе знаком.
В-третьих, ты поймёшь, к кому можно обратиться по конкретным сервисам.
А как у вас с код-ревью: любите разбирать чужой код или больше волнуетесь, когда проверяют ваш? 😅
#job4j #программирование #codereview #микросервисы
Добавил новый урок в курс «Микросервисы» - 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
Добавил описание 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
На платформе 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
Сегодня обновил поведение платформы 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
Хочешь разобраться, как код превращается в работающий сервис? Пора узнать, как устроены Docker, Kubernetes, Jenkins, Prometheus и Grafana — без скучной теории, на реальных проектах.
🎯 Только до 30 ноября — скидка −15% на курс DevOps на практике. Прокачайся в CI/CD, автоматизации и мониторинге, чтобы быть тем, кто не просто пишет код, а запускает его в прод.
12707 руб.
👉 https://job4j.ru/courses/35
🔥15❤2
Kotlin — эсперанто среди языков программирования
На этой неделе в посте у Михаила https://t.me/liferefactoring/995 была озвучена отличная мысль о том, что мы забываем, чем мы занимаемся.
В посте опубликована ссылка на доклад с конференции Kotlin. В видео два выступления, первое из которых заканчивается фразой: «Котлин — это не сахар». Обычно, когда начинают оправдываться, это значит, что есть за что.
Далее 👉 https://job4j.ru/article/view/9
На этой неделе в посте у Михаила https://t.me/liferefactoring/995 была озвучена отличная мысль о том, что мы забываем, чем мы занимаемся.
В посте опубликована ссылка на доклад с конференции Kotlin. В видео два выступления, первое из которых заканчивается фразой: «Котлин — это не сахар». Обычно, когда начинают оправдываться, это значит, что есть за что.
Далее 👉 https://job4j.ru/article/view/9
Telegram
Дед Мазай
Не вынесла душа поэта )
Смотрел митап от KRUG и на первом же докладе мне, что называется, "подожгло". 🤯
Мне показалось, что доклад для начинающих котлинистов. Но при этом зачем-то учит их делать код очень сложным.
А как же KISS?
Вы не боитесь однажды прийти…
Смотрел митап от KRUG и на первом же докладе мне, что называется, "подожгло". 🤯
Мне показалось, что доклад для начинающих котлинистов. Но при этом зачем-то учит их делать код очень сложным.
А как же KISS?
Вы не боитесь однажды прийти…
❤1
Переход от Java к Go: взгляд инженера, а не фаната языка
Я немного разгреб задачи на работе и наконец нашёл время написать эту статью. Как вы знаете, в последнее время я активно пишу на Go. И в этой статье я хочу объяснить, почему я рекомендую опытным разработчикам попробовать этот язык.
Далее https://job4j.ru/article/view/10
Я немного разгреб задачи на работе и наконец нашёл время написать эту статью. Как вы знаете, в последнее время я активно пишу на Go. И в этой статье я хочу объяснить, почему я рекомендую опытным разработчикам попробовать этот язык.
Далее https://job4j.ru/article/view/10
🔥15👍9❤2
Тем временем
Я обновил весь дизайн через GPT 5.2. Может где-то моргнул, так что смело пишите.
http://job4j.ru/
Я обновил весь дизайн через GPT 5.2. Может где-то моргнул, так что смело пишите.
http://job4j.ru/
🔥20👎4❤3
О созерцании шума ИТ-рынка
Эта статья не про рынок вакансий. Она про то, почему попытка понять ИТ-рынок через вакансии создаёт иллюзию контроля и мешает принимать правильные решения — как разработчикам, так и тем, кто их обучает.
Далее 👉 https://job4j.ru/article/view/11
Эта статья не про рынок вакансий. Она про то, почему попытка понять ИТ-рынок через вакансии создаёт иллюзию контроля и мешает принимать правильные решения — как разработчикам, так и тем, кто их обучает.
Далее 👉 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 — то есть покрывать целостный процесс, а не проверять локальное состояние отдельных компонентов.
Добавил на платформу поддержку интеграционных тестов через docker.socket + testcontainers.
В продолжение предыдущей статьи: в новой версии курса по Go повествование будет строиться не от задач, как это было в курсе по Java, а от процессов. Но чтобы описывать процессы, нам сразу нужны интеграционные тесты.
Ранее в курсе мы использовали H2. Сейчас я считаю это неправильным решением, потому что таким образом вы подменяете поведение производственной базы данных, а значит — тестируете не реальный сценарий работы приложения.
Раньше я также был большим сторонником модельных (unit) тестов. Однако со временем пришёл к выводу, что в прикладных сервисах правильнее делать упор на интеграционные тесты. Причём они должны начинаться с уровня API — то есть покрывать целостный процесс, а не проверять локальное состояние отдельных компонентов.
🔥9👍6❤4
Стратегии развития разработчика: пожарный и хранитель процесса
В этой статье я хочу поговорить о стратегии развития разработчика в условиях нестабильного ИТ-рынка.
Ранее я уже писал, что любой кризис — это не только спад, но и точка роста. Для меня лично уход в найм — это шаг назад. У меня есть собственный образовательный проект job4j, и в долгосрочной перспективе мне выгоднее развивать продукт, чем вкладываться в карьерную гонку внутри компаний. Однако текущая ситуация на рынке сделала этот шаг необходимым — как меру стабилизации.
Но эта статья не про меня. Она про вас — разработчиков, которым нужно понимать:
Далее 👉 https://job4j.ru/article/view/12
В этой статье я хочу поговорить о стратегии развития разработчика в условиях нестабильного ИТ-рынка.
Ранее я уже писал, что любой кризис — это не только спад, но и точка роста. Для меня лично уход в найм — это шаг назад. У меня есть собственный образовательный проект job4j, и в долгосрочной перспективе мне выгоднее развивать продукт, чем вкладываться в карьерную гонку внутри компаний. Однако текущая ситуация на рынке сделала этот шаг необходимым — как меру стабилизации.
Но эта статья не про меня. Она про вас — разработчиков, которым нужно понимать:
Далее 👉 https://job4j.ru/article/view/12
❤15👍9🔥3💯2
Комментарий как след процесса
В своих курсах по Java я много лет настоятельно рекомендовал не использовать комментарии внутри методов. Я прямо говорил: если внутри метода появился комментарий — это code smell.
Логика была простой:
если код приходится объяснять словами — значит, он плохо структурирован;
если внутри метода нужен комментарий — значит, метод делает слишком много;
правильный путь — разбить метод, выделить абстракции, дать имена, и комментарий станет не нужен.
И в тот момент это было логично. Я сам так писал код. Я сам так думал.
Я думал в рамках задач.
Далее 👉 https://job4j.ru/article/view/13
В своих курсах по Java я много лет настоятельно рекомендовал не использовать комментарии внутри методов. Я прямо говорил: если внутри метода появился комментарий — это code smell.
Логика была простой:
если код приходится объяснять словами — значит, он плохо структурирован;
если внутри метода нужен комментарий — значит, метод делает слишком много;
правильный путь — разбить метод, выделить абстракции, дать имена, и комментарий станет не нужен.
И в тот момент это было логично. Я сам так писал код. Я сам так думал.
Я думал в рамках задач.
Далее 👉 https://job4j.ru/article/view/13
👍25
Давайте отделим мух от котлет
В обсуждениях предыдущей статьи всплыло важное недопонимание. Поэтому здесь я хочу спокойно и последовательно развести несколько разных понятий, которые почему‑то оказались смешаны в одно.
Если этого не сделать, дальше любой разговор о процессном мышлении превращается в спор о документации, ролях и «универсальных солдатах», хотя речь вообще не об этом.
Далее 👉 https://job4j.ru/article/view/14
В обсуждениях предыдущей статьи всплыло важное недопонимание. Поэтому здесь я хочу спокойно и последовательно развести несколько разных понятий, которые почему‑то оказались смешаны в одно.
Если этого не сделать, дальше любой разговор о процессном мышлении превращается в спор о документации, ролях и «универсальных солдатах», хотя речь вообще не об этом.
Далее 👉 https://job4j.ru/article/view/14
👍8🔥5
GoLang, Финтех, какие сложности возникли
В этом видео рассказываю о сложностях, которые возникли у меня в финтехе на стеке GoLang. Рассказываю о переходи на процессинговое мышление.
https://www.youtube.com/watch?v=WqRwWaROees
В этом видео рассказываю о сложностях, которые возникли у меня в финтехе на стеке GoLang. Рассказываю о переходи на процессинговое мышление.
https://www.youtube.com/watch?v=WqRwWaROees
YouTube
GoLang, Финтех, какие сложности возникли
В этом видео рассказываю о сложностях, которые возникли у меня в финтехе на стеке GoLang. Рассказываю о переходи на процессинговое мышление.
Мое обучение http://job4j.ru/
Мое обучение http://job4j.ru/
🔥16👍5