После «прощального» поста о «NetBeans tips & tricks» перешел на еще одну замечательную IDE — PhpStorm. И хочу начать серию статей с заметки о том, как эта IDE облегчила процесс рефакторинга для меня.
После «прощального» поста о «NetBeans tips & tricks» перешел на еще одну замечательную IDE — PhpStorm. И хочу начать серию статей с заметки о том, как эта IDE облегчила процесс рефакторинга для меня.
В процессе использования IDE иногда случайно, иногда специально находятся полезные фишки, сочетания клавиш и прочие заложенные разработчиками приятные штуки, которые никогда не оседают в памяти без регулярного их использования и всячески ускользают при чтении мануалов.
Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?» Читать полностью »
Помимо выхода PhpStorm 5.0 и очередного «майлстоуна» проекта Kotlin, про которые мы уже писали на Хабре, за последний месяц вышел еще целый ряд обновлений, которые могли ускользнуть от вашего внимания:
Пришло время очередного дайджеста новостей. Как и прежде, мы постараемся рассказать про все или почти все основные события, а также самые свежие релизы и апдейты, которые состоялись за последний месяц.
После того как 26-го июля вышел долгожданный мажорный релиз ReSharper 7, произошел целый ряд событий, о которых мы не можем не упомянуть хотя бы в формате дайджеста.
Итак, перечислим важнейшие из них в обратном хронологическом порядке:
Множество событий может произойти в компании за неделю. Выходят релизы, выпускаются апдейты и багфиксы, наши представители выступают с докладами, которыми мы хотим поделиться с огромной аудиторией Хабра. К сожалению, далеко не все инфоповоды успевают перерасти в отдельные статьи.
Чтобы компенсировать это мы решили выпустить экспериментальный дайджест новостей, которые вы могли пропустить на прошлой неделе:
Как можно было заметить из моей предыдущей статьи со сравнением библиотек LINQ для PHP, библиотек много, а качества мало: ленивые вычисления не реализованы ни в одной библиотеке, тесты есть в половине случаев, типы коллбэков ограничены, а иногда и вовсе незнамо что выдаётся за LINQ. Поэтому я написал свою библиотеку. Встречайте:
Возможности:
Пример кода:
// Отфильтровать продукты с ненулевым количеством, поместить в соответствующие категории,
// отсортированные по имени. Продукты отсортировать сначала по убыванию количества, потом по имени.
from($categories)
->orderBy('$v["name"]')
->groupJoin(
from($products)
->where('$v["quantity"] > 0')
->orderByDescending('$v["quantity"]')
->thenBy('$v["name"]'),
'$v["id"]', '$v["catId"]', 'array("name" => $v["name"], "products" => $e)'
);
Сказ о том, как PHP на LINQ портировали. Сравнение ныне существующих библиотек с табличками, но без графиков — прилагается.
Картинка код для привлечения внимания (картинок не дождётесь!)
echo Phinq::create($people)
->groupBy(function($person) { return $person->residence->region; })
->select(function($grouping) {
$obj = new stdClass();
$obj->people = $grouping;
$obj->region = $grouping->getKey();
return $obj;
})->orderBy(function($obj) { return $obj->people->count(); }, true)
->aggregate(function($current, $next) {
$count = $next->people->count();
return $current . sprintf(
"%d %s (%s) live in the %s regionn",
$count,
$count === 1 ? 'person' : 'people',
$next->people->aggregate(function($current, $next) {
if ($current !== null) {
$current .= ', ';
}
return $current . sprintf('%s [%s]', $next->name, $next->residence->code);
}),
$next->region
);
});
Кто видел C# или любой функциональный язык — при виде этого шедевра закатит глаза (если они предварительно не вылетят из орбит). И, наверное, будет прав. Но можно ещё вот так:
$lowNums =
from('$n')->in($numbers)->
where('$n < 5')->
store($digits)->into('digits')->
select('$digits[$n]');
С некоторых пор мне стали нравиться темные цветовые схемы для текстовых редакторов. Соответственно, мне захотелось окрасить в темные цвета и редактор моего основного рабочего инструмента IDE IntelliJ IDEA. Но после установки темной схемы я увидел, что схема применилась только к редактору, а окраска остальных элементов не изменилась. Например, дерево проекта не перекрасилось.
Разработчики сообщают о множестве изменений. Выделим основные:
Ссылки на скачивание:
Mac OS X
<a rel="nofollow"Читать полностью »