четверг, 26 августа 2010 г.

Статьи на тему бизнес-логики.

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

Итак, ссылки:
  1. Где бизнес-логика, сынок? (рус.)
  2. О бизнес-логике от Inside C++ (рус.)
  3. Паттерн Domain Model (рус.)
  4. Anemic Domain Model vs Rich Domain Model (рус.)
  5. Организация Модели в Zend Framework (рус.)
  6. Организация Модели: Валидация данных (рус.)
  7. Организация Модели. Управление доступом (рус.)
  8. Domain-Driven Design: Repository (рус.)

четверг, 19 августа 2010 г.

Как укоротить текст до 10 символов?

И так задача: http://pyha.ru/forum/topic/4916. Необходимо ссылку /some-link-with-fabulous-text сократить до 10 символов.

Первое, что мне приходить в голову это архивирование, но текст слишком маленький и архив получиться очень большой. По этому этот вариант отпадает. 
И я решаюсь на хэш-таблицы, где ключ - это будет уникальный хэш в 10 символов, а значение - длинная ссылка. Пример реализации приведу на файлах, вы сможете сделать тоже самое использую субд или другое хранилище. Для этого вам придется всего лишь реализовать интерфейс IHashTable и передать его в объект класса ShortifyUri. 
Пример рабочего кода: 
<?php 
// including library
require_once 'shortify-uri.php';
// creating shortifier instance
$shortifier = new UriShortifier(
    new FileHashTable('data.txt'));
// prepare uris`
$uris = array(
    'some-long-uri-with-text',
    'not-so-long-uri',
    'less-little-uri');
// shortifing uris`
$keys = array();
echo '<pre>';
foreach ($uris as $uri) {
    $key = $shortifier->
              shortify($uri);
    echo "Before shortifing: {$uri}, 
          after {$key} \n";
    $keys[] = $key;
}
// unshortifing uris`
foreach ($keys as $key) {
    $uri = $shortifier->
               unshortify($key);
    echo "Before {$key} 
          after {$uri} \n";
}
echo '</pre>';

Исходный код классов и интерфейса можно скачать отсюда

Изучение английского языка для программиста

Для программиста английский язык - это первый язык. И я решил заняться его изучением всерьез. Пока, что я сделал так. зарегистрировался на StackOverflow.com и стараюсь отвечать на вопросы по -английски. Помимо этого я нашел прекрасный сервис lingualeo.ru (реф. ссылка), меня он впечатляет, я читаю текст и не знакомые мне слова отмечаю, а потом эти слова закрепляю. Очень удобно, поверьте.

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