All streams
Search
Write a publication
Pull to refresh
65
0
Petr Myazin @PQR

Разработчик

Send message
Никогда не останавливаюсь в поиске, параллельно с основным редактором частенько пробую и другие.
1.5 года назад (и несколько лет до этого) основным редактором у меня был NuSphere, пока не наткнулся на PhpStorm, версия которого тогда была < 1.0. Зацепило много мелких фишек в PhpStorm и я поменял основной редактор на него.

Главное не пожалеть времени на изучение этих мелких фишек. В самом PhpStorm есть отличная система: открыть любой, в меню Help -> Productivity Guide — показывает различные функции IDE и статистику их использования. Можно кликнуть и посмотреть описание со скриншотом и хоткеем.

Из того, чем активно пользуюсь и чего не хватает в NuSphere, вспомнил:
— поиск всех мест в проекте, где вызывается данный метод (раньше для этого в NuSphere использовал текстовый поиск по всему проекту)
— переход к определению метода в классе предка и в классах потомка (если потомков несколько, предлагает выбрать конкретный класс)
— автодополнение по заглавным буквам (camel words), например, напечатав $foo->gMV я получу в подсказках ->getMyVariable()
— при автодополнении не обязательно писать нижнее подчёркивание, чтобы получить элементы которые с него начинаются, например $this->v в подсказке даст мне $this->_variable
— локальная история изменений файлов (это не просто ctrl+z, можно посмотреть diff и откатить произволные строки или блоки кода)
— language injection: я могу в php коде в кавычках написать фрагмент html кода и он распознается как html с соответсвующей подсветкой. А при ctrl+click на имени класса или id внутри тега откроется соответсвующий css файл. Аналогичный language injection позволяет писать sql запросы с подсветкой и автодополнением внутри php кода, если подключить Data Source
— много различных подсказок предотвращающих потенциальные ошибки, например: эта переменная нигде не используется; это блок кода никогда не выполняется; функция не всегда возвращает значение, несовпадение типов и т.п.
— автоматическое форматирование кода под различные Coding Standarts
— интеграция с Mercurial
— ну и самое главное рефакторинг: можно переименовать класс, при этом файл в котором он лежит, все упоминания этого класса и упоминания файла в конструкциях include/require

Преимущества NuSpehere:
— редактор более быстрый (отзывчивость интерфейса)
— встроенный дебагер, который позволяет перемещать текущую точку выполнения. Кроме того, при работе с PhpStorm у меня иногда падает соединение с XDebug и в браузере вижу ошибку 500. Приходится запускать отладку заново.
— встроенный профайлер. В PhpStorm версии 3 (которая вышла пару недель назад) вроде появился генератор отчётов на основе логов профайлера XDebug, но я ещё не попробовал
— встроенный веб-сервер и браузер делают NuSpehere решением «всё в одном» — удобно для быстрого старта работы. Конечно, при работе с серьёзными проектами этим уже не пользуешься, т.к. нужен нормальный веб-сервер и тесты во всех популярных браузерах, а не во встроенном.
Раньше NuSphere PhpEd, сейчас PhpStorm.

Есть отличное сравнение разных PHP IDE в виде таблицы: docs.google.com/spreadsheet/ccc?key=0AkrYE-JB0U-lcGJ2QzVueEdpaW9sZ1YzS0dpT1JkQlE
Прочитал название в топике как «Vibory» — подумал, что далее будет описание отличного _микрофона_ для улучшение качества звука при съемках на мобильный телефон фальсификаций на выборах…
Кто-нибудь знает подробности что это за компания Obsidian Finance Group и в чём конкретно был негатив?
Когда у автора была только жена, она работал в офисе до позднего вечера, приходил домой и продолжал работать. Когда появилась дочь — автор наконец осознал ценность общения с семьёй! Да и то, с оговоркой «Когда дочь ложится спать, я провожу время с женой, кодирую или делаю что-то еще или работаю, если нужно.» — мне кажется, жене должно быть обидно.
Напомнило мне сервис shortmail.com — почта с ограничением 500 символов.
Если приходит письмо длиной больше 500 символов, оно попадает в какое-то отдельное хранилище или как-то так… вобщем стимулирует на переписку «чётко и по делу». Один из плюсов, как утверждают, весь спам автоматически фильтруется, т.к. обычно он длиннее 500 символов.
А есть ли что-то аналогичное для Mercurial?
Интересно, у кого в думе хватило политической воли на создание сайта с такой потрясающей функциональностью!
Ох и правда, ватты это же мощность, что-то я затупил :(
Спасибо.
вообще как-то странно видеть в одном описании и ватты и джоули — надо бы унифицировать
Прототипы в JavaScript это не следствие какой-то ущербной реализации ООП, это просто другой подход к ООП. В определённом смысле даже более прогрессивный. Посмотрите вот эту лекцию по истории появления JavaScript (там рассказывается не только известная всем история, как его создали за 10 дней, но и какие теории и практики легли в его основу): youtu.be/JxAXlJEmNMg

Видео длинное и начинается оно с лекции по истории развития компьютеров вообще, поэтому если интересно узнать именно про JavaScript, мотайте на вторую половину, где описывается история развития языков программирования, которая плавно переходит к JavaScript, объясняя почему он именно такой.
Логотип какой-то невнятный. На белом фоне вообще с артефактами.
Логотип вырвеглазный
Вставьте ссылку на статью про текучие интерфейсы на PHP в первое предложение поста, пожалуйста!
Кто-нибудь может сравнить (или видел внятное сравнение в интернете) jQuery и YUI 3.x?
В одном из комментариев выше кто-то сравнил два варианта:
$('.hello').delegate('click', '.world', fn);
$('.hello .world').click(fn);
Безотносительно того комментария, из которого взят пример, задам свой вопрос. Правильно ли я понимаю, что:
1. в первой строке сначала будут найдены все элементы класса hello и на каждый из них будет повешен делегат, который будет отслеживать всплытие событий click от дочерних .world
2. во второй строке никаких делегатов нет, просто на все элементы удовлетворяющие селектору ".hello .world" будут повешены обработчики click.

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

Я правильно всё понял?
В чем разница между $('a').on('click', myHandler); и $(document).on('click', 'a', fn);?
"… будет использована и грядущая Windows 8 от Microsoft. Эта операционка должна появиться уже через несколько месяцев."

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

А кто-нибудь знает, на сколько качество кода в MariaDb и drizly (это форки mysql) лучше? Вопрос не про патиции, а в целом…

Information

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

Specialization

Fullstack Developer
Lead
PHP
MySQL