Читая статью на Хабре про скидки на PHPStorm, которым я давно уже пользуюсь и очень доволен, набрел в комментах на отличный список преимуществ PHPStorm перед Netbeans. Не могу удержаться от цитирования:
22 Апр 2011
Jooq – «LINQ» для Java, типобезопасный построитель SQL запросов в Java коде
Недавно, в поисках золотой середины между JDBC и ORM, я натолкнулся на интересную open source библиотеку (лицензия Apache Software License), с помощью которой можно строить SQL прямо в Java-коде достаточно удобно и безопасно. Библиотека называется jooq. jooq включает в себя генератор кода, который парсит структуру вашей базы данных и создает необходимые Java-классы. На деле получается примерно такой код:
Integer taskId = sqlFactory.select(ID).from(TASK).where(STATUS.equal(TaskStatus.QUEUED)).
orderBy(LAST_UPDATED).limit(1).fetchOne(ID);Как видите, конструирование запроса и его выполнение для простых типов занимает одну строку. Немного о jooq:
Читать дальше «Jooq – «LINQ» для Java, типобезопасный построитель SQL запросов в Java коде»
09 Мар 2011
Используем CDN Яндекса для jQuery в XenForo
Если форум предназначен для России, можно использовать CDN Яндекса. Только нужно немного форум подпатчить.
1. Открываем library\XenForo\Dependencies\Public.php и заменяем метод getJquerySource на такой (просто добавляем еще один case фактически):
/**
* Fetch the path / URL to the jQuery core library
*
* @param boolean $forceLocal If true, forces the local version of jQuery
*
* @return string
*/
public static function getJquerySource($forceLocal = false)
{
$jQueryVersion = XenForo_Application::$jQueryVersion;
$min = '.min';
// CDN sources from http://docs.jquery.com/Downloading_jQuery#CDN_Hosted_jQuery
$source = ($forceLocal ? 'local' : XenForo_Application::get('options')->jQuerySource);
switch ($source)
{
case 'jquery':
case 'mt':
return "http://code.jquery.com/jquery-{$jQueryVersion}{$min}.js";
case 'google':
return "http://ajax.googleapis.com/ajax/libs/jquery/{$jQueryVersion}/jquery{$min}.js";
case 'microsoft':
return "http://ajax.microsoft.com/ajax/jquery/jquery-{$jQueryVersion}{$min}.js";
case 'yandex':
return "http://yandex.st/jquery/{$jQueryVersion}/jquery{$min}.js";
default:
return "js/jquery/jquery-{$jQueryVersion}{$min}.js";
}
}
}2. В Debug режиме идем в панель управления, находим там опцию jQuery Source (CDNjQuery) в разделе Performance (Производительность) и нажимаем карандашик справа (редактирование). Format Parameters (Параметры формата) заменяем на:
local=Local google=Google Ajax API CDN jquery=jQuery CDN microsoft=Microsoft CDN yandex=Яндекс CDN
Вот и все. Теперь в настройках форума можно выбрать Яндекс CDN и jQuery будет загружаться с Яндекса. Только не забудьте отключить Debug режим.
22 Ноя 2010
Регулярка для ника: либо по-русски, либо по-английски, но не смешивая
Недавно меня попросили написать регулярное выражение, которое бы пропускало ники на форуме написанные либо целиком русскими буквами, либо целиком английскими (чтобы не допускала смешение букв). На форуме используется кодировка UTF-8.
^(([a-zA-Z0-9_\-\?]+)|(((\xD0[\x80-\xBF])|(\xD1[\x80-\xBF])|([0-9_\-\?]))+))$
Вот она такая получилась. Обратите внимание, что пробелы запрещены. Если требуется их разрешить, можно добавить после 0-9 \x20.
22 Ноя 2010
Регулярное выражение для русских букв в UTF-8
(\xD0[\x80-\xBF])|(\xD1[\x80-\xBF]) – одна любая русская буква
13 Ноя 2010
Примеси VS делегирование: преимущества и недостатки при реализации «плагинов»
В данной статье я предлагаю вам свой взгляд на выбор использования примесей или делегирования в проектах для внесения в класс нового функционала.
Начальные условия такие: мы рассматриваем примеси, имеющие свое состояние и имеющие доступ ко всем членам класса-агрегатора. Все публичные члены класса примеси становятся частью агрегатора. Мы оставляем за кадром вопрос быстродействия.
В основном данная статья относится к PHP, но с некоторыми оговорками подходит и для многих других динамических языков, позволяющих тем или иным способом реализовывать примеси.
Читать дальше «Примеси VS делегирование: преимущества и недостатки при реализации «плагинов»»
12 Ноя 2010
ООП практикум в PHP5: Анализ ошибок, преимуществ и недостатков двух реализаций примесей в PHP
После выхода моей статьи о примесях мы продолжали дискуссии и в комментариях к статье и в личных сообщениях. Сегодня увидел в моем блоге комментарий от читателя, который попросил объяснить, в чем я вижу преимущество своей реализации перед реализацией Леонида Шлейхера.
Я собирался было ответить в комментарии к посту своем же сайте, но неожиданно оказалось, что вопрос довольно интересен. Вернее, не сам вопрос, а анализ, который я провел, подготавливая ответ.
11 Ноя 2010
Краткий очерк истории объектно-ориентированного программирования
Эта статья была написана под влиянием впечатлений, полученных автором в ходе одного хабрасрача дискуссии, и представляет небольшую серию переводов материалов из свободных источников об истории объектно-ориентированного программирования, основным из которых является Википедия, плюс абсолютно предвзятые выводы автора из прочитанного материала.
Если вам интересно узнать, какой язык в действительности был первым ООП-языком на свете, могут ли Java и C# называться чистыми ООП-языками, а также проникнуться некоторыми другими деталями, приглашаю вас под кат..
Читать дальше «Краткий очерк истории объектно-ориентированного программирования»
10 Ноя 2010
Автоинкрементные первичные ключи (суррогатные ключи) = зло?
В этой статье я приведу взгляд (отрицательный по большей части) Джоша Беркуса, CEO компании PostgreSQL Experts Inc. на использование суррогатных ключей для таблиц базы данных, тех самых INT NOT NULL AUTO_INCREMENT PRIMARY KEY, к которым мы привыкли. Фактически, это будет вольный, сильно сокращенный перевод его статьи на ittoolbox.
За статьей последует разбор моих собственных ошибок по этой теме, допущенных в одном старом проекте. Я был молод и глуп, но это меня не извиняет.
Честно говоря, прочитав эту статью и не заметив, кто автор, я подумал, что он все же преувеличивает и вообще, я без него как-нибудь разберусь, где и какие ключи мне использовать. Потом я еще немного подумал и полез за дампом структуры базы моего старого проекта. Было интересно.
Если вы опытный DBA, наверное, вам стоит пройти мимо, чтобы не расстраиваться.
Но обо всем по порядку. Сначала ОЧЕНЬ сокращенный перевод:
Читать дальше «Автоинкрементные первичные ключи (суррогатные ключи) = зло?»
07 Ноя 2010
ООП Практикум PHP5: эмуляция примесей (mixin) в языке
Как-то вечером для реализации моделей поведения в ORM в моем велосипеде фреймворке мне понадобилось что-то, ведущее себя как примесь (mixin) в Ruby или как метод расширения (extension method) в C# (или как трейт / графт в будущих версиях PHP) Я решил для интереса посмотреть, как у меня получится реализовать примеси на PHP. Если вы не знаете, что такое примесь, не беда, сейчас все расскажу.
Приглашаю последовать за мной в рассуждениях о реализации примесей на PHP и программировании небольшой библиотеки, позволяющей их реализовать. Статья ориентирована на PHP разработчиков начинающего и среднего уровня. В процессе я также сделаю небольшую ошибку, касающуюся тонкостей работы PHP 5.3 с классами, через какое-то время на нее укажу и предложу исправить. А также предоставлю свое решение для вашей критики. Приятного чтения.
Читать дальше «ООП Практикум PHP5: эмуляция примесей (mixin) в языке»
Следующая страница →




