ritnet.ru

9 Декабрь 2008

Синхронизация событий

Рубрика: Новости — admin @ 12:20

Как следует поступить, если код должен быть выполнен после наступления нескольких разноплановых событий, таких как, например, успешная инициализация формы, загрузка данных из удаленного источника, либо окончание работы другого потока?

Ответ на этот вопрос можно найти в моей новой статье.

4 Ноябрь 2008

О строках PHP

Рубрика: Новости — admin @ 17:03

Как известно, PHP позволяет использовать в качестве символа, обозначающего строку как двойную («), так и одинарную (‘) кавычку. Принципиальной разницей между этими символами является то, как их обрабатывает интерпретатор.

Внутри строк, обозначенных двойными кавычками, он используя регулярные выражения, пытается найти переменные, чтобы заменить их на значения. Если такой переменной не существует вместо неё будет использована пустая строка. Строки, обозначенные одинарной кавычкой анализу не подвергаются. В качестве примера:

$price = 15;
$result1 = $result2 = '';
for($count = 0; $count < 10; $count++)
{
  $amount = $count * $price;
  $result1 .= "Count = $count and amount = $amount<br/>";
  $result2 .= 'Count = $count and amount = $amount<br/>';
}

echo $result1;
echo '<br/><br/>';
echo $result2;

Соответственно в первом случае на вывод пойдет строка вида: Count = 1 and amount = 15, а во втором: Count = $count and amount = $amount.

Для эквивалентного вывода в случае строк с одинарными кавычками необходимо воспользоваться конкатенацией:

$result2 .= 'Count = '.$count.' and amount = '.$amount.'<br/>';

Альтернативой является использование встроенной функцией sprintf:

$result4 .= sprintf('Count = %d and amount = %d<br/>', $count, $amount);

К сожалению, весьма часто встречаются ситуации, когда все строки в коде заключены в двойные кавычки, вне зависимости от наличия или отсутствия переменных в них. А значит ресурсы веб-сервера на их анализ тратятся впустую.

Встаёт вопрос, какой из трёх способов вывода строк работает быстрее всего? Опыт показывает, что для наибольшей производительностью обладает конкатенация строк помеченных одиночными кавычками с переменными. Использования sprintf представляет собой баланс между скоростью работы и качеством кода. Как правило я использую именно её. Заключать строки в двойные кавычки ради вывода переменных я бы не рекомендовал.

Первая статья, посвященная сериализации объектов

Рубрика: Новости — admin @ 3:51

Опубликовал первую статью из цикла, посвященного сериализации объектов. Исходный код будет вывешен с последней статьёй.

13 Октябрь 2008

О расположении файлов на диске

Рубрика: Новости — admin @ 0:57

Все файлы моих проектов находятся на специально выделенном для этих целей диске. Такой способ хранения обладает рядом преимуществ:

  1. Все данные собраны в одном месте, что упрощает навигацию.

  2. Это позволяет безболезненно использовать абсолютные пути к файлам сторонних библиотек (таких как SharpZipLib).

  3. У Visual Studio есть противная бага. При разработке WPF окон, дизайнер не работает, если длинна пути до .cs файла окна больше 255 символов. При использовании выделенного диска такой проблемы как правило не возникает.

  4. Главным же преимуществом использования выделенного диска является возможность безболезненного переноса папок с программным кодом на другой компьютер. К примеру, в основном я пишу на стационарном компьютере, где развернута большая часть дополнительного программного обеспечения и т.д. Но иногда я пользуюсь ноутбуком. Соответственно, все файлы с программой записываются в криптоконтейнер TrueCrypt, файл контейнера записывается на флешку, а на целевом компьютере монтируется как диск X. В итоге, независимо от местонахождения, программа компилится и работает без проблем.

6 Октябрь 2008

Получение строки соединения с БД

Рубрика: Новости — admin @ 13:14

Для быстрого и простого получения строки соединения с БД можно воспользоваться следующим приёмом.

Создаём простой текстовый файл. Расширение изменяем с .txt на .udl. При открытии изменённого файла появится диалог подключения к БД, в котором мы можем выбрать поставщика данных, указать сервер, имя пользователя и пароль (либо использование авторизации Windows) и кучу дополнительной информации. Нажимаем на кнопочку «OK», переименовываем файл обратно в .txt и открываем блокнотом. Теперь внутри него будет строка подключения.

Сайт работает на WordPress