OneCode
رفتن به کانال در Telegram
Full Stack на PHP, Laravel и всё, что с этим связано. YouTube: https://www.youtube.com/@onecode_blog
نمایش بیشتر1 329
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
-830 روز
آرشیو پست ها
1 328
PlanetScale
Облачная безсерверная база данных MySQL для высоких нагрузок без заморочек.
https://planetscale.com
Подпишись: @onecode_blog
1 328
TenChat - отечественный аналог Linkedin. Фронтенд на Tailwind и Vue 😃
https://tenchat.ru/
Подпишись: @onecode_blog
1 328
Для тех кто интересуется здоровьем очень рекомендую эту книгу: https://vk.com/@roman.milovanov-chso Читай каждый день по 1 главе и всего за 3 недели узнаешь всё, что нужно 👍
1 328
В выражении
matchможно использовать анонимную функцию, если поместить её в скобки и сразу её вызвать. Функция будет вызвана только если условие совпадёт. Иногда полезно использовать такую функцию здесь, если нужно выполнить несколько действий в одном кейсе, а выносить в отдельный метод не хочется. Подпишись: @onecode_blog
1 328
Tabler - интересный шаблон для админки на основе Bootstrap 👇
Demo: https://preview.tabler.io/
Сайт: https://tabler.io
Спасибо, что делитесь полезными инструментами!
Подпишись: @onecode_blog
1 328
Находясь в отпуске стараюсь изучить материалы, до которых в рабочее время руки не доходят.
Купил этот курс еще месяц назад, но добрался только недавно. Ура!
Считаю, что покупа чужого практического опыта - важнейшая часть развтия!
https://education.borshev.com/architecture
Расскажи, какие реально полезные курсы покупал в этом году?
Подпишись: @onecode_blog
1 328
Repost from Макс Орлов Блог
Тестирую коворкинг CoSea Coworking в Аланьи, Турция.
Стоимость в конце видео. Инстаграм: instagram.com/cosea_coworking
Подпишись: @indigoram89_blog
1 328
Плюсы микросервисов
Сегодня коротко обсудим основные преимущества микросервисной архитектуры. В процессе чтения предлагаю подумать - действительно ли тебе не хватает этих плюсов при работе в монолитной архитектуре? Или всё это фигня.
Итак, мы переписали интернет-магазин на микросервисную архитектуру и даже распилили базу данных на части. Какие плюсы получили?
Маленькие проекты
Больше нет огромной кодовой базы в одном репозитории, где модули тесно связаны друг с другом. Вместо это есть несколько маленьких и понятных проектов, изолированных в своём репозитории. Переименовать поле в базе данных микросервиса уже не так страшно - другой сервис точно НЕ использует его напрямую. Нужно доработать модуль доставки? Открыл микросервис доставки и работаешь с его относительно небольшим кодом.
Устойчивость к ошибкам
Каждая ошибка влияет на свой микросервис. Ошибка в одном микросервисе редко приводит к остановке всего приложения. Конечно, здесь важно предусмотреть поведение сервисов, если "сосед" не отвечает, но в целом универсальной страницы "Упс, что-то пошло не так" достаточно. Отвалился сервис доставки? Хреново, но всё остальное работает.
Быстрая доставка обновлений
В маленький микросервис с чёткими границами проще вносить изменения. Ты можешь полностью изменять реализацию сервиса, не боясь сломать что-то в другом микросервисе. Главное, чтобы программынй интерфейс (API) и события (Events) остались прежними. Ну или выкатить новую версию API, а старую пока оставить для обратной совместимости. Нужно добавить новый способ доставки? Идёшь в сервис доставки и решаешь задачу, не беспокоясь о том, что можешь сломать сервис заказов или оплаты.
Высокая доступность
Можно масштабировать каждый сервис отдельно. Например использовать Docker Swarm, Kubernetes или вручную накинуть серверов при необходимости. Не всем сервисам нашего магазина нужны одинаковые ресурсы. Сервис аналитики требует больше ресурсов для генерации отчётов? Накинем ему мощностей в индивидуальном порядке, пока остальные сервисы работают на своих ресурсах. А в черную пятницу его наоборот можно не трогать.
Выделеная команда
Можно использовать небольшую команду из 3-5 человек для обслуживания 2-3 микросервисов. Умственная нагрузка на дизайнера, разработчика, тестировщика и менеджера меньше, потому что они несут ответственность только за свои сервисы. Нужно разработать новый сервис с Искуственным интеллектом? Соберём команду с соответсвующим опытом для этого микросервиса. При этом нет надобности показывать им код остальных сервисов.
Любые технологии
В микросервисах можно использовать разные языки, фреймворки и технологии, которые лучше подходят для решения задачи. Сервисы обмениваются данными с помощью API и событий, а не вызова функций напрямую в коде, поэтому им нет разницы что находится внутри другого сервиса. Каталог товаров, модуль заказов и доставки напишем на Laravel, потому что это быстро. Модуль рекомендаций на Python, потому что это удобно, а реалтайм оставим для NodeJS, потому что это нативно.
Быстрая сборка и тестирование
Автоматические тесты в каждом отдельном микросервисе проходят в разы быстрее, потому что там мало кода и функций. Сборка сервисов, написаных на компилируемых языках тоже будет выполняться быстро. Получаем экономию времени на разработку и тестирование. Вынесли модуль оплаты в отдельный микросервис? Теперь деплой в продакшен занимает 1 минуту вместо 20 минут, включая сборку и тесты.
Итог
Всё это звучит круто. Микросервисы приносят большое количество очень важных плюсов. Нам легче думать об отдельных маленьких проектах. Новый разработчик может быстрее изучить микросервис, над которым ему предстоит работать. Изолированный сервис легче развивать, а доставка до конечного пользователя происходит быстрее.
Но рано радоваться! Не спеши распиливать свой монолит на части, ведь в следующем посте мы обсудим минусы микросервисов.
Подумай что тебя напрягает в твоём монолите сейчас? Или проблемы, которые решают микросервисы высосаны из пальца? Пиши в комментариях!
Подпишись и поделись с коллегами: @onecode_blog
1 328
Что такое микросервисная архитектура
В интернете полно определений, а я попробую описать своими словами.
Архитектуру проекта можно назвать микросервисной, если этот проект состоит из нескольких мини-проектов (микросервисов).
Например, интернет-магазин, в котором каталог товаров, система заказов, сервис доставки и модуль оплаты - это отдельные проекты на Laravel.
Каждый микросервис имеет свой GIT-репозиторий, свою базу данных и ответственного разработчика.
Микросервисы принято разделять по бизнес-функциям - отдел доставки, отдел оплаты, отдел аналитики, отдел товаров. Под каждый отдел свой микросервис.
Оптимальным размером микросервиса считается такой размер, который разработчик (или команда) может написать с нуля за 1-2 спринта.
Микросервисы "общаются" друг с другом синхронно через HTTP API или асинхронно брокер сообщений (через события).
В общем если твой проект имеет один репозиторий, в котором хранится весь исходный код - это монолит. А если проект состоит из нескольких репозиториев - это скорее всего микросервисы.
Пример монолита и микросервисов на картинке.
Следудющие посты будут про плюсы и минусы микросервисов.
Поделись опытом разработки микросервисной архитектуры в комментариях!
Подписывайся: @onecode_blog
1 328
Cлабая связанностью и сильная связностью
Программный компонент должен иметь небольшое число внешних связей и отвечать за решение близких по смыслу задач.
https://medium.com/german-gorelkin/low-coupling-high-cohesion-d36369fb1be9
Подписывайся: @onecode_blog
1 328
PHP функция
get_object_varsвозвращает массив, в котором ключи - это названия свойств объекта, а значения - это значения свойств объекта. Функция учитывает область видимости. То есть при вызове снаружи (первый скрин) она вернёт только публичные свойства, а при вызове внутри (второй скрин) она вернёт все свойства объекта, потому что они доступны в этом контексте. https://www.php.net/manual/ru/function.get-object-vars.php Может быть удобно, например, для конвертации DTO в массив (третий скрин) 👍 Подписывайся: @onecode_blog
1 328
Шаблонизатор Laravel Blade позволяет возвращать в ответе на запрос часть страницы 💪
https://laravel.com/docs/9.x/blade#rendering-blade-fragments
Подписывайся: @onecode_blog
1 328
Repost from Макс Орлов Блог
С днём рождения меня!
Сегодня моя очередь принимать поздравления, поэтому можешь начинать 😁
В честь праздника поехали в горы, где сняли некоторые моменты на видео 👍
Вашему вниманию Турция с другой стороны - Каньон Сападере ⛰
Всем спасибо за тёплые слова и подарки! 🎁
Подписывайся @indigoram89_blog
1 328
Рекомендую Tinkerwell
Тейлор тоже использует Tinkerwell каждый день 😃
https://tinkerwell.app
Подписывайся: @onecode_blog
1 328
Мои расширения VSCode
Для Full Stack разработки на PHP и Laravel.
Напиши в комментариях друние полезные расширения, которыми реально пользуешься!
Подписывайся: @onecode_blog
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
