Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

JetBrains WebIDE — третья публичная сборка

PHP
Вышла третья предварительная сборка (номер 445) новой среды разработки для PHP — JetBrains Web IDE PHP developers edition.
В этой версии мы приняли во внимания пожелания пользователей (в том числе и фидбэк с хабра:) и добавили несколько новых функций — YAML, дополнение членов объявленных через теги PHPDOC @property и method, а также усовершенствовали дебаггер. Исправлено множество различных ошибок и серьезно улучшена производительность автодополнения в редакторе.

Загрузка новой версии с официальной страницы «программы ранней доступности» Web IDE.
Детальный список изменений — в блоге Web IDE.

UPD: Напоминаю всем что это даже не бета — мы просто демонстрируем над чем работаем. Вы главное пишите чего ВАМ в вашем любимом IDE не хватает и что вы больше всего цените — а мы позаботимся чтобы появилась достойная альтернатива!

YAML + structure PHPDOC completion
Всего голосов 36: ↑32 и ↓4+28
Просмотры2.9K
Комментарии 220

JetBrains WebIDE — четвертая публичная сборка (#470)

PHP
Мы продолжаем нашу борьбу за идеальное IDE для PHP ^) Анонс предыдущей сборки на хабре подарил нам огромное количество информации и указал основные направляния для совершенствования. В этот раз мы сосредоточились на выведении типов, (авто)дополнении и производительности. Под «выведением типов» подразумевается определение типов переменных, выражений и функции на основе анализа кода (а не PHPDOC @аннотаций)

В этой сборке мы добавили:
— автоматическое выведение типов возвращаемых значений функций на основе анализа операторов return
— автоматическое определение фактических свойств класса и их типов путем анализа кода конструктора (см. скриншоты)
анализ функций
анализ конструктора
— автоопределение типов глобальных переменных без аннонаций
— полную поддержку аннотаций var и global
— автовызов дополнения после $ и ->
— дополние внутри PHPDOC @тегов (частично), $переменных (из следующей декларации) и видимых типов
— сокрытие __magic() методы при первом вызове (если есть другие члены класса)
— ограничили дополение внутри catch() подклассами Exception

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

Скачать Анонс Подробный список изменений

Приглашаем всех пробовать и продолжать дискуссию :)

UPD: в этом билде был найден серьезный баг — дополнение часто не срабатывает для классов не из текущего файла :((( уже исправлено — будет доступно на следующей неделе.
Всего голосов 71: ↑63 и ↓8+55
Просмотры1.3K
Комментарии 197

JetBrains WebIDE — публичная сборка #500

PHP
Квест «идеальное IDE для PHP» продолжается :) За прошедшую с предыдущей сборки неделю стали доступны две наиболее востребованые фичи — PHPUnit и FTP, ну и конечно мы постарались исправить как можно больше ошибок.

IDE
— начальная версия поддержки удаленных хостов — пока что только FTP upload. (Планируется: открытие удаленного проекта, автосинхронизация, SFTP/SSL/всякие cloud storage). Находится в меню Settings — Deploy&Run.
— Новые удобные закладки (F11)

PHP
— начальная версия поддержки PHPUnit (пока только локальный запуск)
— добавлено выведение типов для переменной в «foreach(...)», элемента массива «array[...]» и тернарного оператора "?:"
— добавлены поиск использований (Ctrl-Alt-F7) и переименование (Shift-F6) для глобальных переменных
— исправлены поиск использований и переименование для статических членов класса
— исправлены различные ошибки форматирования кода и комментариев

Загрузка Анонс

FTP PHPUnit
Всего голосов 51: ↑41 и ↓10+31
Просмотры1.1K
Комментарии 117

Конфигурационный менеджмент (часть 2, обзор инструментов)

Управление проектами
Прошло много времени, прежде чем я созрел на написание второй части статьи, посвященной управлению конфигурациями. Тому, что это наконец таки свершилось способствует тот факт, что не так давно мне посчастливилось выступать на конференции PHPCONF 2009 8 октября (Web Architect Workshop Day) с мастер-классом «Метод организации репозитория исходного кода». Для выступления были заблаговременно подготовлены презентация, а также текст доклада. Несмотря на отличную организацию мероприятия, для публичного доступа так и не были выложены материалы докладов, входящих в программу конференции. В качестве компенсации я решил таки опубликовать материал, использованный в моем выступлении. Кроме данной статьи, (которая является логическим продолжением предыдущей), посвященной конфигурационному менеджменту, для публичного обозрения доступны слайды презентации.
В данной статье пойдет речь об инструментах, использующихся при управлении конфигурациями. Поэтому в первую очередь хотелось бы заострить внимание на том, как инструменты, использующиеся в разработке могут влиять на процесс создания ПО.
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Просмотры3.6K
Комментарии 25

JetBrains WebIDE — публичная сборка #701 / немного о ZendCon'09 / кое что о неочевидных возможностях

PHP
И снова «идеальное IDE для PHP» от JetBrains ^) За прошедшее с предыдущей сборки время мы успели обзавестись официальным сайтом, посетить ZendCon'09 и наконец заняться обещанной оптимизацией производительности. Нашлось время и на несколько новых фич. Пока качается билд загляните под кат — кроме обычных подробностей там будет пара слов о ZendCon и о уникальных функциях платформы/WI.



Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Просмотры1.2K
Комментарии 200

JetBrains PhpStorm (AKA WebIDE) — публичная сборка 94.335

PHP
В этой сборке вас ждут:

Новое имя. Два варианта Web IDE получили свои официальные названия: JetBrains WebStorm и JetBrains PhpStorm. Брендинг еще не закончен так что вы увидите знакомые белые сплэши и иконки WI в самых разных местах. Цель разработки остается прежней — идеальный инструмент для PHP/JS разработчиков и веб-дизайнеров.

Полностью настраиваемый PHP formatter – эта фича получила наибольшее количество голосов в трекере.
Читать дальше →
Всего голосов 41: ↑35 и ↓6+29
Просмотры3.2K
Комментарии 108

CSSDoc — формат комментариев для CSS

CSS
Уже неоднократно видел утверждение, что CSS необходимо комментировать, чтобы потом было проще сориентироваться себе или тому, кто также поддерживает или будет в дальнейшем поддерживать ваш код. Но почему-то никто не предлагает использовать какой-то универсальный формат комментариев, который был бы понятен всем, хотя в программировании такое используется повсеместно: JavaDoc, JSDoc, PHPDoc и т.п.

Несложно догадаться, что рано или поздно кто-нибудь бы захотел использовать подобный формат комментариев в CSS и такой формат появился: CSSDoc. Спецификация пока что имеет статус черновика, но ничто не мешает начать пользоваться основными правилами уже сейчас.

Если интересно, то нужно нажать на эту ссылку.
Всего голосов 59: ↑51 и ↓8+43
Просмотры11K
Комментарии 75

Документирование шаблонов

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

Под катом пара наглядных примеров документации к шаблонам.


Читать дальше →
Всего голосов 48: ↑32 и ↓16+16
Просмотры1.7K
Комментарии 27

Обеспечение качества программного продукта

PHP
Дисциплина «Метрология программного обеспечения» входит в учебный план подготовки дипломированных специалистов по направлению 654600 — «Информатика и вычислительная техника» по специальности 220400 — «Программное обеспечение вычислительной техники и автоматизированных систем». Дисциплина изучает проблемы оценки метрических характеристик качества ПО на этапах от разработки спецификаций до завершения отладки и тестирования программного продукта. В курсе рассматриваются критерии, характеристики и метрики качества ПО; особый упор делается на характеристики корректности, надежности и сложности программ. Изучаются формальные модели и методы оценки как статических, так и динамических характеристик качества ПО, позволяющие на различных стадиях разработки выявлять просчеты и дефекты программного изделия. Рассматриваются инструментальные средства поддержки и автоматизации измерения характеристик ПО.
Далее по тексту будет находится краткий обзор инструментов с помощью которых можно анализировать различные характиристики в приложениях созданных на PHP. Данный материал появился на свет в результате некоторых экспериментов в области непрерывной интеграции, и должен был являться частью статьи про непрерывную интеграцию (спойлерить пока не буду, боюсь сглазить) все в том же РНР, но я решил все-таки выделить его в самостоятельный обзор, так как возможно, в последующих статьях я буду ссылаться на него, а так же надеюсь узнать об аналогичных инструментах еще не попавших мне на глаза. Некоторые инструменты уже были рассмотрены достаточно подробно, но тем не менее полного списка всех доступных еще не было.
Читать дальше →
Всего голосов 127: ↑115 и ↓12+103
Просмотры11K
Комментарии 43

Непрерывная интеграция и TeamCity

PHP
Непрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий.

imageВ этом топике мы в общих чертах рассмотрим процесс реализации непрерывной интеграции на примере TeamCity Enterprise 6.0 EAP (build 15400) и обратим внимание на применении инструментов рассмотренных в прошлой теме: Обеспечение качества программного продукта.
Читать дальше →
Всего голосов 49: ↑44 и ↓5+39
Просмотры97K
Комментарии 49

Docblox — система документирования, совместимая с PHP 5.3+

PHP
Из песочницы
При очередном обновлении Phing с помощью PEAR я обратил внимание на список дополнительных зависимостей и решил посетить сайты тех проектов, названия которых мне ничего не говорили. Среди прочего я нашел один многообещающий проект, которым бы и хотел с вами поделиться. Представляю вам Docblox — новую систему документирования PHP-приложений, развивающую идеи, заложенные во всем известном PHP Documentor'е. На данный момент согласно нотации PEAR проект находится в стадии бета-тестирования, но уже используется при разработке таких проектов, как Zend Framework, Phing, Fuel и некоторых других.

Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Просмотры3.5K
Комментарии 24

Docblox — некоторые нововведения

PHP
Эта статья более подробно рассматривает некоторые нововведения, предложенные Docblox,- системой документирования для PHP 5.3+. Для понимания некоторых вещей необходимо прочитать предыдущую статью. Для простоты в качестве каталога с тестовыми исходными кодами я использовал /src/example/ (/src— симлинк на реальный каталог с моими исходными кодами).
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Просмотры1.9K
Комментарии 2

Автодокументация PHP в NetBeans 7.01 с использованием phpDocumentor, рассказываем, настраиваем, исправляем

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

Итак вы узнаете:
  • Базовую информацию о том, что такое автодокументация и как она делается в PHP
  • Настройка генератора документации phpDocumentor в NetBeans 7.01
  • Ссылка на исправленную мной библиотеку phpDocumentor со списком внесенных изменений, думаю некоторым может сразу же понадобиться
  • Ссылки на почитать

На проекте столкнулся с тем, что потребовалось создать нормальную документацию. Писать отдельно документацию не самый лучший способ, базовое описание библиотеки можно выполнить и в стиле автодокументации. Начал разбираться в вопросе и о чудо, в NetBeans 7.01 оказывается поддерживается PHPDoc, вполне достойно и удобно. Был удивлен бедностью информации по этой тематике в русском сегменте сети. Кроме того, я нашел несколько подводных камней, которые создавали проблемы при настройке под Windows.

Если заинтересовались, то добро пожаловать под кат
Читать дальше →
Всего голосов 38: ↑32 и ↓6+26
Просмотры16K
Комментарии 23

Пишем на php… статично

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

Я как и многие php программисты думал что статическая типизация это «усложнение». Она ограничивает гибкость и вообще: как люди с ней работают? И искренне не понимал, почему многие опытные программисты отдают предпочтение языкам со статической типизацией и строгой проверкой типов.

Дебаты о типизации

Я относился к правой половине людей, которые мало что знают о типах, но при этом искренне верят, что это не удобно. И так было до тех пор пока я не познакомился с одним из строго типизированных языков (c#) вплотную. С тех пор мое отношение к php да и вообще к программированию в целом изменилось.

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

Читать дальше →
Всего голосов 90: ↑63 и ↓27+36
Просмотры33K
Комментарии 101

Зачем ограничивать наследование с помощью final?

PHPСовершенный кодПроектирование и рефакторингООП
Из песочницы
🔥 Технотекст 2020

Вы наверняка слышали это знаменитое высказывание от GoF: «Предпочитайте композицию наследованию класса». И дальше, как правило, шли длинные размышления на тему того, как статически определяемое наследование не настолько гибко по сравнению с динамической композицией.


Гибкость – это конечно полезная черта дизайна. Однако при выборе архитектуры нас интересуют в первую очередь сопровождаемость, тестируемость, читабельность кода, повторное использование модулей. Так вот с этими критериями хорошего дизайна у наследования тоже проблемы. «И что же теперь, не использовать наследование вообще?» – спросите Вы.


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


Проблема хрупкого базового класса


Проблема хрупкого базового класса

Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Просмотры24K
Комментарии 44