Search
Write a publication
Pull to refresh
4
0
xRay @xRay

Пользователь

Send message

Как переиспользовать код с бандлами Symfony 5? Часть 6. Тестирование

Reading time8 min
Views3.2K

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


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

Читать дальше →

Суррогаты

Reading time12 min
Views56K
Бизнес не любит:

1. 1С-Франчайзи, программистов 1С вообще, и почти все, что те делают;
2. веб-программистов и компании, создающие и продвигающие сайты, и все продукты их работы;
3. системы менеджмента качества и людей, которые занимаются их внедрением;
4. бухгалтеров и бух.учет;
5. экономистов со всеми их гигантскими экселевскими портянками;
6. внутренние проекты развития, на которые без слез уже смотреть невозможно;
7. Scrum и все эти доски, на которых неделями висят одни и те же стикеры;
8. ТОС, после внедрения которого дефицитов и неликвидов становится еще больше;
9. Контроллинг, который дает цифры позже, чем бух.учет;
10. KPI, адекватность которого приходится доказывать самому себе каждый раз, когда приносят эти цифры;
11. Системы мотивации, которые, как ни крути, «оклад+премия», хоть и названы модными словами, типа «грейд».

Продолжать можно до бесконечности. Никогда не задумывались, почему бизнес всего этого не любит? Или вообще не замечали, что бизнес этого не любит?

При этом, как ни странно, бизнес любит:

1. повышение прибыльности бизнеса за счет автоматизации;
2. увеличение количества лидов и рост оборота за счет правильного продвижения;
3. повышение качества процессов производства и бизнес-процессов;
Читать дальше →

Автоматическая настройка и оптимизация сервера MySQL для повышения производительности

Reading time4 min
Views12K
Всем привет.

Хочу обсудить с сообществом наш проект, с помощью которого можно за 1 минуту создать конфигурационный файл MySQL, оптимизированный под производительность (тюнинг MySQL). Таким образом можно достаточно быстро создавать конфигурационный файл для первичной оптимизации производительности MySQL.
Читать дальше →

Как переиспользовать код с бандлами Symfony 5? Часть 4. Расширение бандла в хосте

Reading time10 min
Views5.8K

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


Проектируя бандл, надо думать, что должно быть инкапсулировано внутри него, а что — доступно для пользователя. Должен ли бандл иметь фиксированную функциональность или быть гибким и позволять себя расширять? Если требуется гибкость, то нужно предусмотреть какие-то точки-интеграции для расширения бандла, его интерфейс.


Попробуем предусмотреть такие точки в нашем демо-приложении. В этой статье:


  • Подключение пользовательской логики к бандлу
  • Работа с тегами
  • Compiler Pass
  • Автоконфигурация сервисов
Читать дальше →

Реверс-инжиниринг антиблокировщика рекламы BlockAdBlock

Reading time18 min
Views42K
Если вы пользуетесь блокировщиками рекламы, то могли встречать BlockAdBlock. Этот скрипт обнаруживает ваш блокировщик и не пускает на сайт, пока вы его не отключите. Но мне стало интересно, как он работает. Как антиблокировщик обнаруживает блокировщики? А как на это реагируют блокировщики и как они блокируют антиблокировщики?

История реверс-инжиниринга


Первым делом я взглянул на их сайт. BlockAdBlock предлагает конфигуратор с настройками: интервал ожидания и как будет выглядеть предупреждение, генерируя разные версии скрипта.

Это натолкнуло меня на мысль о версиях. А что, если мог посмотреть не на одну версию, а на все сразу? Так я и сделал. Я вернулся назад во времени с помощью Wayback Machine. После этого скачал все версии BlockAdBlock и хэшировал их.
Читать дальше →

ПШЕ AndroidStudio или как использовать VCS Tools по полной

Reading time4 min
Views16K

ПШЕ AndroidStudio или как использовать VCS Tools по полной


- Все хорошо, только перед влитием обязательно засквошь коммиты.
- Заскво...Что?

Примерно такая реакция была у меня после получения апрува первого пул реквеста на первой неделе работы в одной крупной компании. Причина такой реакции весьма простая — далеко не каждый заказчик/работодатель может себе позволить такую роскошь как большая команда на одну платформу, в особенности это касается мобильной разработки. Из-за ненадобности и возможности быстрой коммуникации в своем мирке, далеко не все вещи, которые используют крупные мастера своего дела, обретают актуальность в небольших командах. Говоря проще — а на кой мне это надо, если мы и так хорошо без этого жили и хорошо справлялись?


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


Я постараюсь не обращать внимания на банальные вещи: init VCS; new/rename/push branch; rebase/merge onto branch; setup remotes e.t.c. Я постараюсь обратить внимание на те элементы, которые по боязни своего незнания, я долгое время избегал(и жалею).

Читать дальше →

Разница между веб-сокетами и Socket.IO

Reading time5 min
Views92K


Доброго времени суток, друзья!

Веб-сокеты и Socket.IO, вероятно, являются двумя наиболее распространенными средствами коммуникации в режиме реального времени (далее — живое общение). Но чем они отличаются?

При построении приложения для живого общения наступает момент, когда необходимо выбрать средство для обмена данными между клиентом и сервером. Веб-сокеты и Socket.IO являются самыми популярными средствами живого общения в современном вебе. Какое из них выбрать? В чем разница между этими технологиями? Давайте выясним.
Читать дальше →

Интеграция с ЕСИА для .Net: проще, чем кажется

Reading time10 min
Views29K

Предисловие


Однажды в далекой-далекой галактике… потребовалось нам реализовать аутентификацию пользователей с помощью учетной записи ЕСИА на ГосУслугах. Т.к. обитаем мы в галактике .Net, первым делом был изучен весь гугол на предмет готового космолета дабы не костылить все самим, но поиски ни к чему путному не привели. Поэтому решено было изучить тему и реализовать-таки космолет своими силами.




Читать дальше →

Мониторинг производительности MySQL для Grafana на изичах за 20 минут

Reading time2 min
Views14K
Привет, дорогой хабрянин и другой читающий сей рецепт вкусного и здорового мониторинга!

Мое имя — Михаил Андрианов и работаю я Тех.Директором в компании Emarsys уже целых 7 лет.

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

Как научиться разработке на Python: новый видеокурс Яндекса

Reading time6 min
Views257K
Осенью прошлого года в московском офисе Яндекса прошла первая Школа бэкенд-разработки. Мы сняли занятия на видео и сегодня рады поделиться на Хабре полным видеокурсом Школы. Он позволит вам научиться промышленной разработке на Python. Авторы лекций — опытные разработчики в Яндексе. К каждому видео приложены ссылки на примеры и полезные материалы.

Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
Читать дальше →

Лучшие IT-комедии. Топ 3 сериала

Reading time13 min
Views51K
Здравствуй, Хабр! Я вернулся!

Многие очень тепло приняли мою предыдущую статью про сериал «Mr.Robot». Огромное спасибо вам за это!

Как я и обещал, подготовил продолжение цикла и надеюсь, новая статья придётся вам также по душе.

Сегодня речь пойдёт о трёх, на мой взгляд, главных комедийных сериалах в сфере IT. Многие сейчас находятся на карантине, многие — работают. Эта подборка, надеюсь поможет вам в это трудное время. Кому-то отвлечься от проблем, кому-то расслабиться после работы, кому-то сохранить немного позитива.


Читать дальше →

Задачи компьютерного зрения — поиск объектов нужного цвета

Reading time3 min
Views6.7K

Введение


Сегодня я расскажу о том как распознать контур нужного цвета с помощью python/ opencv такая задача часто встречается в робототехнике, и всяких автоматизациях.

С помощью предложенного решения можно например различать контур линии за которую не должен выезжать робот, или обьект для коптера. Такая задача может возникнуть если нужно например увидеть что в корзину положили апельсин.

image
Читать дальше →

Расследование: что выше, чем приоритеты потоков в Windows?

Reading time12 min
Views13K
Это расследование, как и многие другие, началось с того, что я занимался собственными делами, не пытаясь искать себе проблем. На этот раз всё, что я сделал — открыл крышку ноутбука и попытался выполнить вход в систему.

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

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

К счастью, я недавно исправил трассировку кольцевого буфера UIforETW, сделав его надёжным, поэтому я запустил его и начал ждать следующего случая задержки. Долго ожидать мне не пришлось.

Мне потребовалось несколько раз, чтобы получить полностью устраивающую меня трассировку ETW. И поскольку эта территория была для меня незнакомой, на выяснение происходящего потребовалось какое-то время. Я по-прежнему не полностью разобрался в проблеме, но на 90% понял причины её возникновения. Мне удалось многое узнать, в том числе некоторые новые подробности о Windows-планировщике, а также я обнаружил абсолютно эффективное решение.

Идеальная трассировка, которую я в конце концов записал, при загрузке в Microsoft Windows Performance Analyzer (WPA) выглядит так:


Стандартные события, окна в фокусе и использование ЦП

Эта таблица и два графика содержат кучу информации. Верхняя таблица (Generic Events) показывает записанные UIforETW нажатия клавиш. Я пытался нажимать клавишу (код виртуальной клавиши 162) раз в секунду, пока не появится поле ввода пароля. Так как эти 17 нажатий клавиши выбраны, в графике ниже они показаны вертикальными синими линиями для упрощённой визуализации времени выполнения критически важных событий. По оси x отложено время в секундах.
Читать дальше →

11 глупых вопросов ортопеду и массажистке о работе за компьютером и не только

Reading time14 min
Views42K
image

У большинства читателей Хабра сидячая работа. 8 часов в сутки на неудобном стуле в неправильной позе могут быстро испортить осанку и добавить проблем с позвоночником и здоровьем в целом. Как устроить всё так, чтобы потом не было больно, вашей дорогой редакции рассказали массажистка Анна Малицкая (collaps) и ортопед Иван Быркэ.
Читать дальше →

Душ будущего: почему все, включая Тима Кука, инвестируют в Nebia

Reading time6 min
Views15K


Одним из самых успешных стартапов последних лет в США неожиданно стал проект душа. Свои миллионы в него вкладывают глава Apple Тим Кук, основатель Fitbit Джеймс Парк и бывший CEO Google Эрик Шмидт, в числе многих других. Чем же их так привлёк первый в мире душ high-tech, и как можно заручиться поддержкой таких имён, не вкладывая ни копейки в маркетинг?..

Читать дальше →

Изготовление мини ПК на APU Ryzen или компьютер дальнобойщика

Reading time12 min
Views45K
Здравствуйте, уважаемое сообщество. В этой статье хочу поделиться своей последней разработкой – небольшого компьютера для работы и отдыха.

Техническое задание


  1. Компьютер должен быть установлен в грузовом а.м. Volvo E5, место установки (ниша под торпеду) имеет размеры Ш*Г*В — 40*45*8 см
  2. В машине принципиально не держу преобразователя из 24 в 220 Вольт, поэтому ПК должен работать от 24В, напрямую от прикуривателя. На 12В не пойдет, т.к. они идут с преобразователя, рассчитанного на максимальный ток 10А, что не совсем хорошо, учитывая итоговую потребляемую мощность. Ну и должна быть возможность подключать ПК в домашних условиях от 220В.
  3. Так уж получилось, что давно использую монитор на 12 Вольт, но вход у него только D-SUB, поэтому в компьютере должны быть соответствующие видеовыходы.
  4. Компьютер должен тянуть Ведьмака 3 (ну люблю я эту игру) на средних настройках графики в HD качестве для моего монитора в 19 дюймов.
  5. Стоимость – чем дешевле, тем лучше. Все цены будут указаны в у.е – т.е. польских злотых, т.к. многое покупалось за них, а в скобках – в евро и учитывают доставку.
  6. ПК было решено строить на платформе AMD. Их встроенная VEGA 8 и 11 уже обладает достаточной для моих задач мощностью и не требует установки внешней видеокарты, которая дополнительно будет нагружать аккумуляторы авто.

Вот что в итоге получилось:


Читать дальше →

GoLand 2020.1 — расширенная поддержка Go Modules, множество автодополнений и многое другое

Reading time5 min
Views6K

Привет, Хабр!


Чуть больше недели назад мы выпустили новую версию нашей IDE для Go — GoLand 2020.1.




Если кратко, в этот релизный цикл мы сфокусировались над расширением текущей поддержки Go Modules. Например, в файле go.mod теперь работают автодополнение кода, рефакторинги и навигация, и это далеко не все!


Другим направлением стала борьба с шаблонным кодом и рутиной. Мы добавили множество новых видов автодополнения. Причем часть из них работает автоматически, не требуя вызова комбинаций клавиш. Другая часть расширила текущий набор автодополнений Smart Code Completion и Basic Code Completion.


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


Кстати, узнать о новой функциональности можно и в интерактивной форме — пройдя прямо в IDE урок Features of GoLand 2020.1.


Читать дальше →

Как переиспользовать код с бандлами Symfony 5? Часть 2. Выносим код в бандл

Reading time8 min
Views4.1K

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


В предыдущей статье мы создали минимальный бандл из двух файлов и подключили его в проект.


В этой статье:


  • Перенос кода в бандл
  • Dependency Injection: регистрация сервисов бандла в DI-контейнере
  • Перенос контроллеров и настройка роутинга
  • Механизм определения путей к ресурсам
  • Перенос шаблонов в бандл
Читать дальше →

Как переиспользовать код с бандлами Symfony 5? Часть 1. Минимальный бандл

Reading time8 min
Views13K

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


В первой части:


  • Зачем нужны бандлы
  • Example Project: Calendar
  • Настраиваем окружение: 2 способа разработки
  • Создаем минимальный бандл
  • Подключение бандла в проект
Читать дальше →

Руководство по CI/CD в GitLab для (почти) абсолютного новичка

Reading time13 min
Views411K

Или как обзавестись красивыми бейджиками для своего проекта за один вечер ненапряжного кодинга


Наверное, у каждого разработчика, имеющего хотя бы один пет-проект, в определённый момент возникает зуд на тему красивых бейджиков со статусами, покрытием кода, версиями пакетов в nuget… И меня этот зуд привёл к написанию этой статьи. В процессе подготовки к её написанию я обзавёлся вот такой красотой в одном из своих проектов:


результаты


В статье будет рассмотрена базовая настройка непрерывной интеграции и поставки для проекта библиотеки классов на .Net Core в GitLab, с публикацией документации в GitLab Pages и отправкой собранных пакетов в приватный фид в Azure DevOps.


В качестве среды разработки использовалась VS Code c расширением GitLab Workflow (для валидации файла настроек прямо из среды разработки).

Читать дальше →

Information

Rating
Does not participate
Registered
Activity