Pull to refresh
114
0
Юрий Пихтарев @Exileum

User

Send message

Unit тестирование в Laravel

Reading time 7 min
Views 41K

Я часто слышу среди обсуждений в сообществе мнение, что unit тестирование в Laravel неправильное, сложное, а сами тесты долгие и не дающие никакой пользы. Из-за этого эти тесты мало кто пишет, ограничиваясь лишь feature тестами, а польза unit тестов стремится к 0.
Я тоже так считал когда-то, но, однажды я задумался и спросил себя — может быть я не умею их готовить?


Некоторое время я разбирался и на выходе у меня сформировалось новое понимание о unit тестах, а тесты стали понятными, дружелюбными, быстрыми и стали мне помогать.
Я хочу поделиться с сообществом своим пониманием, и еще лучше разобраться в этой теме, сделать мои тесты еще лучше.

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 10

Laravel-Дайджест (15–21 июня 2020)

Reading time 2 min
Views 7.3K

Подборка новых статей по фреймворку Laravel. В этому выпуске мы попробуем создавать свои команды и фасады, сравним инструменты для отладки кода, научимся писать «чистый» код и посмотрим, как выглядят наши запросы в сыром виде. А также, попытаемся запретить «магию» Laravel!


Laravel Дайджест
Абигейл, супруга создателя фреймворка, демонстрирует свежий мерч. Фото: Taylor Otwell

Читать дальше →
Total votes 19: ↑15 and ↓4 +11
Comments 2

Миграция с Nginx на Envoy Proxy

Reading time 10 min
Views 36K

Привет, Хабр! Предлагаю вашему вниманию перевод поста: Миграция с Nginx на Envoy Proxy.


Envoy — это высокопроизводительный распределенный прокси-сервер (написанный на C++), предназначенный для отдельных сервисов и приложений, также это коммуникационная шина и «universal data plane», разработанный для больших микросервисных архитектур «service mesh». При его создании были учтены решения проблем, которые возникали при разработке таких серверов, как NGINX, HAProxy, аппаратных балансировщиков нагрузки и облачных балансировщиков нагрузки. Envoy работает вместе с каждым приложением и абстрагирует сеть, предоставляя общие функции независимо от платформы. Когда весь служебный трафик в инфраструктуре проходит через сетку Envoy, становится легко визуализировать проблемные области с помощью согласованной наблюдаемости, настройки общей производительности и добавления основных функций в определённом месте.


Возможности


  • Архитектура вне процесса: envoy — это автономный, высокопроизводительный сервер занимающий небольшой объем оперативной памяти. Он работает совместно с любым языком приложения или фреймворком.
  • Поддержка http/2 и grpc: envoy имеет первоклассную поддержку http/2 и grpc для входящих и исходящих соединений. Это прозрачный прокси от http/1.1 до http/2.
  • Расширенная балансировка нагрузки: envoy поддерживает расширенные функции балансировки нагрузки, включая автоматические повторные попытки, разрыв цепи, глобальное ограничение скорости, затенение запросов, локальную балансировку нагрузки зоны и т. д.
  • API для управления конфигурацией: envoy предоставляет надежный API для динамического управления своей конфигурацией.
  • Наблюдаемость: глубокая наблюдаемость трафика L7, встроенная поддержка распределенной трассировки и наблюдаемость mongodb, dynamodb и многих других приложений.
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 28

Envoy. 1. Введение

Reading time 6 min
Views 46K

Приветствую! Это небольшая статья, отвечающая на вопросы: "что такое envoy?", "зачем он нужен?" и "с чего начать?".


Что это


Envoy — это L4-L7 балансировщик написанный на С++, ориентированный на высокую производительность и доступность. С одной стороны, это в некотором роде аналог nginx и haproxy, соизмеримый с ними по производительности. С другой, он больше ориентирован под микросервисную архитектуру и обладает функционалом не хуже балансировщиков на java и go, таких как zuul или traefik.


Таблица сравнения haproxy/nginx/envoy, она не претендует на абсолютную истину, но дает общую картину.


nginx haproxy envoy traefik
звезд на github 11.2k/mirror 1.1k/mirror 12.4k 27.6k
написан на C C C++ go
API нет socket only/push dataplane/pull pull
active healthcheck нет да да да
Open tracing внешний плагин нет да да
JWT внешний плагин нет да нет
Расширение Lua/C Lua/C Lua/C++ нет
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 19

GitHub запускает свои щупальца в CI/CD и менеджмент артефактов

Reading time 5 min
Views 15K

В мае 2019 года GitHub анонсировала выход сервиса Package Registry. Вслед за этим, уже в августе, была анонсирована поддержка CI/CD в Actions.


В статье я расскажу, что это за сервисы и как это можно использовать на примере небольшого пет-проекта на GitHub.


Читать дальше →
Total votes 52: ↑51 and ↓1 +50
Comments 4

Применяем github actions для CI и автоматическая публикация на npm

Reading time 3 min
Views 15K

Github actions


Привет, Хабр. Это статья о том как автоматизировать ваш проект с помощью github actions.
Автоматизация будет делиться на:


  • CI — над каждым коммитом будут проведены тесты
  • Publish — при релизе публикуем версию в npm
Читать дальше →
Total votes 12: ↑8 and ↓4 +4
Comments 4

Настраиваем GitHub Actions для Android с последующим деплоем в PlayMarket

Reading time 6 min
Views 3.8K
Привет, Хаброжители! На днях начал изучать GitHub Actions для Android. Ранее у меня была удачная попытка настройки данного функционала для проекта на Flutter, но без деплоя, для которого полно информации и гайдов как на англоязычных ресурсах, так и на русскоязычных, а вот с нативным андроидом не всё так прозаично. И решил записать основные проблемы и их решение.

Этап первый: настройка для автоматической подписи готового apk


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

Я использую вариант с использование файла keystore.properties, который позволяет нам добавить ключ разработчика в папку проекта, не светя при этом паролями от него, делается это так:
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 9

Как эффективнее использовать kubectl: подробное руководство

Reading time 23 min
Views 20K

Если вы работаете с Kubernetes, то, вероятно, kubectl — одна из самых используемых вами утилит. А всякий раз, когда вы тратите много времени на работу с определенным инструментом, стоит хорошо его изучить и научиться эффективно использовать.

Команда Kubernetes aaS от Mail.ru перевела статью Даниэля Вейбеля, в которой вы найдете советы и приемы для эффективной работы с kubectl. Также она поможет глубже понять работу Kubernetes.

По словам автора, цель статьи — сделать вашу ежедневную работу с Kubernetes не только более эффективной, но и более приятной!
Читать дальше →
Total votes 51: ↑51 and ↓0 +51
Comments 3

Технические детали недавнего сбоя расширений Firefox

Reading time 10 min
Views 15K
Об авторе. Эрик Рескорла — технический директор группы Firefox в Mozilla

Недавно в Firefox произошёл инцидент, когда большинство дополнений (расширений, аддонов) перестали работать. Это связано с ошибкой с нашей стороны: мы не заметили, что истёк срок действия одного из сертификатов, который используется для подписи дополнений, что привело к отключению подавляющего большинства из них. Теперь, когда мы исправили проблему, и большинство дополнений восстановлены, я хотел бы подробно рассказать, что произошло, почему и как мы всё починили.

Для справки: расширения и их подпись


Хотя многие используют Firefox как есть из коробки, браузер также поддерживает мощный механизм расширений. Они добавляют в Firefox сторонние функции, расширяющие возможности, которые мы предлагаем по умолчанию. В настоящее время существует более 15 000 дополнений Firefox: от блокировки рекламы до управления сотнями вкладок.
Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Comments 39

Пробую .NET Core + Kubernetes + appmetrics + prometheus + grafana + jobs + health checks

Reading time 14 min
Views 25K
Краткое знакомство с kubernetes для разработчиков на примере разворачивания простого шаблонного сайта, с постановкой его на мониторинг, выполнением джобов по расписанию и health checks (все исходники прилагаются)

Установка Kubernetes
Установка UI
Запуск своего приложения в кластере
Добавление кастомных метрик в приложение
Сбор метрик через Prometheus
Отображение метрик в Grafana
Выполнение задач по расписанию
Отказоустойчивость
Выводы
Заметки
Список литературы
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 4

Пошаговое создание бандла для Symfony 4

Reading time 16 min
Views 27K

Около года назад наша компания взяла курс на разделение огромного монолита на Magento 1 на микросервисы. Как основу выбрали только вышедшую в релиз Symfony 4. За это время я разработал несколько проектов на этом фреймворке, но особо интересной мне показалась разработка бандлов, переиспользуемых компонентов для Symfony. Под катом пошаговое руководство по разработке HealthCheck бандла для получения статуса/здоровья микросервиса под Syfmony 4.1, в котором я постарался затронуть наиболее интересные и сложные (для меня когда-то) моменты.

Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Comments 33

PHP, YII2 и формирование больших excel-файлов

Reading time 3 min
Views 14K

Начало


Одна поддерживаемая нашей компанией учетно-отчетная система начала очень быстро разрастаться в количестве хранимых данных. Система написана на PHP с использованием фреймворка Yii2. Изначально отчеты строились через библиотеку PhpSpreadsheet, которая пришла на смену, уже давно ставшему deprecated, PhpExcel.

Среди разного вида отчетности был один очень крупный – фактически полный набор всех хранящихся в БД данных должен выгружаться в одну excel-таблицу. На начальном этапе проблем не возникало, но когда объем стал превышать многие сотни тысяч записей, то скрипт формирования выгрузки стал отваливаться в timeout limit.
Читать дальше →
Total votes 30: ↑27 and ↓3 +24
Comments 37

Кластер kubernetes HA с containerd. Или есть ли жизнь без docker?

Reading time 16 min
Views 12K

Развертываение kubernetes HA с containerd



Добрый день уважаемые читатели Хабра! 24.05.2018 г. в официальном блоге Kubernetes была опубликована статья под названием Kubernetes Containerd Integration Goes GA, в которой говорится, что интеграция containerd с Kubernetes готова к production. Также ребята из компании Флант в своем блоге разместили перевод статьи на русский язык, добавив немного уточнений от себя. Почитав документацию проекта на github, я решил попробовать containerd на "собственной шкуре".


У нас в компании есть несколько проектов в стадии "до продакшена еще очень далеко". Вот они и станут нашими подопытными; для них мы решили попробовать развернуть отказоустойчивый кластер Kubernetes с использованием containerd и посмотреть, есть ли жизнь без docker.


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

Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 12

Play with Kubernetes — сервис для практического знакомства с K8s

Reading time 4 min
Views 22K
Около года мы писали об интересном онлайн-сервисе для самообразования в мире контейнеров — Play with Docker. Его авторы, поддерживаемые компанией Docker Inc, не стояли на месте и последовали за трендами, что мы наблюдаем не только в «узком кругу» Docker, но и в индустрии в целом: они запустили новый аналогичный сервис, посвящённый уже Kubernetes. Итак, встречайте Play with Kubernetes (PWK)!

Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 8

PHP-Дайджест № 133 (10 – 24 июня 2018)

Reading time 3 min
Views 14K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 Alpha 2, о планах на PHP 8.0, Typed Properties и другие RFC из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!

Читать дальше →
Total votes 62: ↑61 and ↓1 +60
Comments 6

Переход с jQuery на Vue.js

Reading time 10 min
Views 40K
Автор статьи, перевод которой мы публикуем сегодня, полагает, что в мире существует ещё много программистов, которые, когда им нужно разработать простое веб-приложение, обращаются к jQuery. Обычно это случается тогда, когда некую страницу нужно оснастить простыми интерактивными возможностями, но использование для этого какого-нибудь JavaScript-фреймворка кажется явным перебором. Ведь это — килобайты ненужного кода, шаблоны, инструменты для сборки проектов, средства для упаковки модулей… При этом подключить к странице jQuery, воспользовавшись CDN-ресурсом, проще простого.



В этом материале речь пойдёт о том, как перевести проект, созданный с использованием jQuery, на Vue.js. Этот проект будет создан на jQuery, а потом переработан с применением Vue. Автор материала хочет продемонстрировать всем желающим то, что использование Vue, даже в сравнительно небольших проектах, не обязательно означает чрезмерное увеличение размера кода таких проектов и большую дополнительную нагрузку на программиста. Это, наоборот, при практически тех же размерах вспомогательного кода, что и при использовании jQuery, позволяет повысить производительность труда и улучшить качество приложений.
Читать дальше →
Total votes 50: ↑48 and ↓2 +46
Comments 43

Новый MTProto-прокси сервер от Telegram

Reading time 5 min
Views 159K
Прокси-сервер является посредником между клиентом и сервером. Для обхода ограничений прокси-сервер должен быть установлен там, где нет ограничений доступа к требуемой информации, при этом не должно быть таковых ограничений и между клиентом и прокси-сервером.

image

Обновлённая поддержка прокси-серверов в клиентах Telegram


  • Новый MTProto-прокси. Работает с родным для Telegram протоколом MTProto
  • Открытый исходный код сервера на GitHub
  • Docker-образ на DockerHub
  • В мобильных клиентах появилась возможность добавлять несколько прокси-серверов каждого типа. Пользователь может выбрать наиболее подходящий
Читать дальше →
Total votes 106: ↑98 and ↓8 +90
Comments 261

Telegram MTPROTO Proxy — всё что мы знаем о нём

Reading time 4 min
Views 278K
image

Сразу после событий с блокировками Telegram в Иране и России, в бета-версиях мессенджера начал появлятся новый тип Proxy, а если быть точным, новый протокол — MTProto Proxy.

Этот протокол был создан командой Telegram для решения проблем обхода блокировок, но так ли он хорош?
Читать дальше →
Total votes 69: ↑60 and ↓9 +51
Comments 166

Эксперименты с kube-proxy и недоступностью узла в Kubernetes

Reading time 8 min
Views 22K
Прим. перев.: В этой статье, написанной техническим консультантом и сертифицированным администратором Kubernetes из Великобритании — Daniele Polencic, — наглядно показывается и рассказывается о том, какую роль играет kube-proxy в доставке пользовательских запросов до подов и что происходит, когда на одном из узлов кластера возникают проблемы.

Код приложений, развёрнутых в Kubernetes, запускается на одном или более рабочих узлов. Узел может располагаться как на физической или виртуальной машине, так и в AWS EC2 или Google Compute Engine, а наличие множества таких площадок означает возможность эффективного запуска и масштабирования приложения. Например, если кластер состоит из трёх узлов и вы решаете отмасштабировать приложение на четыре реплики, Kubernetes равномерно распределит их среди узлов следующим образом:

Читать дальше →
Total votes 30: ↑30 and ↓0 +30
Comments 9

Обработка сигналов в PHP, или готовим вкусно

Reading time 4 min
Views 17K
На просторах интернета, в том числе и Хабра, неоднократно поднималась тема обработки сигналов с помощью средств php, но в своем большинстве они достаточно старые, содержат неактуальную информацию, и не отвечают на часто задаваемый вопрос: «зачем?», вот с него мы и начнем.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 7

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity