Полезные ссылки для PHP разработчика с MageConf 2012

    MageConf 201216.09.2012 в Киеве в три потока прошла конференция MageConf 2012. Два потока были посвящены системе Magento, третий – PHP. Посетив все 6 докладов на потоке PHP, хотел бы кратко изложить основную информацию, донесенную спикерами. В итоге пост получился набором полезных ссылок по разработке на PHP.

    Докладчики особое внимание уделяли утилитам и софту, которыми они активно пользуются в Magento. Один из спикеров ранее был разработчиком портала i.ua.

    Лучший софт для профайлинга

    Xdebug – хороший отладчик, рационально использовать только для частей кода.
    xhprof – разработка Facebook. Подойдет для отладки всего ресурса.
    Magento_Profiler – Magento сделала свой Profiler. Он хорошо заточен, но лучше всего работает в комбинации с другим софтом для профайлинга.

    Автоматизированное тестирование

    PHPUnit – на хабре имеется перевод из четырех частей про этот, хорошо себя зарекомендовавший, framework для автоматических тестов.

    Мониторинг работоспособности (на этапе разработки)

    collectd – демон собирает информацию о производительности сервера.
    Nagios – оповещает администратора в случае отказа скрипта.
    Zabbix – система с широким функционалом по мониторингу сервера и сети.

    Мониторинг работоспособности (после запуска ресурса)

    Pinba – софт мониторинга и статистики сайта, разработанный социальной сетью Badoo.

    Оптимизация базы данных

    MySQL Explain – команда MySQL, позволяющая узнать слабые места ваших SQL запросов.
    ANALYZE TABLE – команда анализа ключей для таблиц.
    SHOW STATUS – команда для получения информации о состоянии сервера.
    MySQL Profiler – удобный встроенный инструмент для отслеживания медленных запросов. На официальном сайте страница была удалена, но на хабре имеется полезный материал по этой ссылке.
    Percona Toolkit – инструмент, совмещающий в себе все вышеперечисленные способы отладки базы данных.

    Отладка в JavaScript

    Selenium – популярный инструмент для отладки готовых страниц на JavaScript.

    Анализ кода PHP

    PHP Depend – вычисляет метрики и строит графики связей элементов кода.
    PHP_CodeSniffer – инструмент проверки PHP кода на пригодность.
    PHPMD – пригодится для проверки оптимальности кода.

    Утечка данных

    С переходом на PHP 5.3.0 ушла проблема со сборщиком циклических ссылок. Для более ранних версий необходимо вручную заботиться об освобождении памяти, используя циклические ссылки.
    Использование SPL может повысить производительность ресурса.

    Инструменты для тестирования безопасности ресурса

    Firebug – для внесения правок в HTML и JavaScript на лету.
    Tamper Data – для редактирования POST и GET запросив до отправки.
    Burp Suite – набор утилит для тестирования ресурса.

    Полезно посмотреть, изучая безопасность веб ресурсов

    OWASP – сообщество, публикующее информацию о популярных уязвимостях и способах их устранения.
    Google Gruyere – ресурс, позволяющий освоить практические навыки атаки на PHP сайты.
    OWASP WebGoat – аналогичный Google Gruyere проект от сообщества OWASP.

    Я старался не выходить за рамки материала, изложенного на MageConf 2012. Фотографии с конференции не вписывались в формат поста, выложил их отдельно по этой ссылке. Буду благодарен за упоминание любых других полезных утилит в комментариях.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 23
    • 0
      • 0
        Есть какие преимущества перед capistrano?
        • 0
          Экосистема. Нет дополнительного языка и дополнительного менеджера пакетов. При желании конечно можно использовать capistrano или fabric.
      • 0
        Ждал я этот пост
        • 0
          По поводу профайлинга в MySQL я как-то писал статью на хабре
          http://habrahabr.ru/post/39818/
          • 0
            Хорошая статья. Будет очень полезна, тем, кого заинтересует часть поста «Оптимизация базы данных».
          • 0
            Вот только самое интересно было на других потоках:
            * Антон Капля — Использование MySQL Materialized Views в Magento — как ускорить выборки из базы на порядок
            * Антон Криль — Чесні інтерфейси і push-підхід до управління залежностями об’єктів в Magento — феерический доклад о принципах ООП, сложности кода, и путях ее уменьшения
            Magento я намеренно зачеркнул, так как прямого отношения доклады к ней не имели
            Надеюсь организаторы скоро выложат видео
            • 0
              В прошлый раз выложили только через несколько месяцев, так что в ближайшее ждать не стоит
            • –1
              Gruyere написан на Python( Google App Engine). Какое отношение он имеет к PHP сайтам?
              • 0
                Цититую гугл:
                Specifically, you'll learn the following:
                How an application can be attacked using common web security vulnerabilities, like cross-site scripting vulnerabilities (XSS) and cross-site request forgery (XSRF).
                How to find, fix, and avoid these common vulnerabilities and other bugs that have a security impact, such as denial-of-service, information disclosure, or remote code execution.

                Добавлю от себя. Вчера на докладе первый раз услышал про Gruyere, в планах его опробовать. Докладчики его позиционировали как инструмент, с которым можно пройти первые шаги в тестировании PHP сайтов на безопасность.
              • +1
                JMeter написан на JAVA.
                По вашему этот инструмент подходит только для теста JAVA-сайтов?
                • 0
                  Опыта работы пока с таким софтом не имел. Тем не менее не думаю, что только для одного языка. А такие вещи как SQL-инъекции вообще универсальны.
                  • +1
                    coolweb, мой пост адресован gangrel, а не вам :)
                    Разумеется, что и JMeter, и любой подобный софт, работает с любыми сайтами.
                    Равно как и инструменты для поиска уязвимостей.
                • 0
                  как разница на чём написан Gruyere?
                  • 0
                    Чтобы изучить причины уязвимостей Gruyere необходимо смотреть его код.
                    Для PHP и MySQL актуальнее DVWA.
                • 0
                  JMeter — тестирование производительности
                  JsTestDriver — юнит-тестирование для JS
                  JSHint / JSLint — статический анализ кода для JS
                  • 0
                    Ох, помню для новичка тяжело разобраться в магенте без xdebug )
                    • –1
                      >Докладчики особое внимание уделяли утилитам и софту, которыми они активно пользуются в Magento. Один из спикеров ранее был разработчиком портала i.ua.

                      Кажется, знаю этого разработчика, с его женой вместе работали. Если чо, то Киме привет! :)
                      • 0
                        newrelic.com/ — хорошо покрывает задачи профайлинга и группировки ошибок, всё очень просто и быстро в старте. Два дня назад применили в своём проекте, тестируем :). Используется на GitHub.
                        • 0
                          по тестированию еще было
                          • 0
                            говори ли еще про Continuous integration
                            Bamboo — используют в Magento, Jenkins.

                            По поводу профайлинга
                            xDebug хорош для отладки на dev серверах, потому что собирают всю информацию (излишество информации)
                            xhprof — рекомендуют использовать для отладки на prod-сервере.

                            Также на конференции обсуждалась тема интеграция сервисов методом асинхронных сообщений и проблему транзакций в такой инфраструктуре
                          • +1
                            Гуишный инструмент для тестирования сайта на предмет использования запросов Mysql
                            Neor Profile SQL
                            image

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.