|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Хабрахабр: PHP / Блог / Захабренные/Записи в блоге |
|
Хабрахабр: PHP / Блог / Захабренные
Голосов: 1 Адрес блога: http://habrahabr.ru/blog/php/ Добавлен: 2008-06-12 19:52:35 блограйдером ZaiSL |
|
[Из песочницы] Хранение иерархических структур. Симбиоз «Closure Table» и «Adjacency List»
2015-07-27 15:24:43 (читать в оригинале)Когда перед нами встаёт задача хранения и управления иерархическими структурами данных всегда приходится выбирать из довольно ограниченного набора паттернов. Для того чтобы найти наиболее подходящий шаблон необходимо проанализировать особенности каждого способа хранения и обработки данных и оценить их с учётом задачи и специфики используемой СУБД.
Предположим, существует задача, предоставить возможность пользователям сайта оставлять комментарии к публикациям. Комментарии должны иметь древовидную структуру, пользователи должны иметь возможность оставить один или более комментариев к посту, а также отвечать на любые комментарии других пользователей. То есть, нужна система комментариев аналогичная той, что мы можем видеть на Habrahabr. По каким-то причинам, нам не подходят готовые решения, допустим из-за того, что предполагается дополнительная очень сложная бизнес-логика, которая должна быть интегрирована в систему комментариев.
Наша цель – разработать свою реализацию, учитывающую требования нашего приложения.
Читать дальше →
Тэги: adjacency, closure, list, mysql, php, table, данных, иерархических, структур, хранение
Постоянная ссылка
[Перевод] Киски: Рефакторинг. Часть третья или причесываем шероховатости
2015-07-24 15:00:23 (читать в оригинале)
В первой и второй частях серии статей мы проделали немного работы по разделению того кода и тех лишних действий, которые мы понаписали в одной функции. В основном же мы имели дело с классами HttpClient и Cache, и их разными реализациями, чтобы написать тестируемый клиент для апи кисок.Представление данных
До этого мы обращали много внимания на поведение и общую структуру кода, но заб
Читать дальше →
Тэги: matthias, noback, php, refactoring, киски, кисок, клиент, программирование, проектирование, рефакторинг
Постоянная ссылка
Nested Intervals и их реализация под Yii2
2015-07-24 08:49:02 (читать в оригинале)
Привет, Хабр!Большинство разработчиков знает, что такое Nested Sets, их сильные и слабые стороны. Сегодня я хочу представить на суд общественности реализацию модификации этой методики, которая частично решает недостатки оригинального алгоритма, правда имеет и свои отрицательные стороны.
Читать дальше →
[Из песочницы] Snipper — маленький помощник программиста
2015-07-23 12:51:37 (читать в оригинале)Snipper — простое, консольное приложение, написанное на PHP, для удобного импорта фрагментов кода из популярного сервиса GitHub Gist.
Предыстория
В один прекрасный день я понял, что порядком задолбался переписывать мелкие файлы конфигураций из проекта в проект и стал искать ответ на вопрос — как избавить себя от страданий и не добавить новых?
Рассмотрев, как мне показалось, достаточное количество решений я взялся писать собственное консольное «приложение» для загрузки часто используемых файлов с кодом (речь идёт именно о файлах а не о работе с буфером обмена). Для хранения выбрал сервис от GitHub, так как в работе без него никак (готовых библиотек для работы с API великое множество), а для сипатичного внешнего вида — знакомый всем компонент Console из арсенала Symfony.
Что из этого получилось?
[Перевод] Киски: Рефакторинг. Часть вторая или лечение зависимостей
2015-07-22 15:00:42 (читать в оригинале)
Этот перевод является продолжением цикла статей про рефакторинг от Matthias Noback. Мир не так надежен, чтобы на него опираться
Во время юнит тестирования нет необходимости в том, чтобы внешняя среда была вовлечена в сам процесс тестирования. Выполняя реальные запросы к базе данных, HTTP запросы или же запись в файлы, вы замедляете тесты, так как эти операции непредсказуемы. Например, если сервер, к которому вы совершаете запросы во время тестирования упал или же ответил не лучшим образом — юнит тест упадет даже в том случае, если все остальное работает верно. Это плохо, так как юнит тесты должны падать только тогда, когда код выполняет что-то, чего он делать не должен.
Как можно было заметить в прошлой статье, оба класса (CachedCatApi и RealCatApi) зависят от внешних факторов. Первый из них записывает файлы в файловую систему, второй — делает реальные HTTP запросы, в то время как эти моменты довольно низкоуровневые и для них не используются правильные инструменты. Более того, в этих классах не учитывается большое количество пограничных случаев.
Оба класса могут быть лишены подобных зависимостей и для этого достаточно того, чтобы новые классы инкапсулировали все эти низкоуровневые детали. Например, мы запросто можем убрать вызов file_get_contents() в другой класс с названием FileGetContentsHttpClient.
class FileGetContentsHttpClient
{
public function get($url)
{
return @file_get_contents($url);
}
}
Читать дальше →
Тэги: dependency, injection, matthias, noback, php, refactoring, зависимостей, киски, кисок, клиент, лечение, программирование, проектирование, рефакторинг
Постоянная ссылка
Категория «Блогосфера»
Взлеты Топ 5
|
| ||
|
+1241 |
1261 |
Robin_Bad |
|
+1175 |
1263 |
Futurolog |
|
+1090 |
1094 |
MySQL Performance Blog |
|
+1028 |
1098 |
Ksanexx |
|
+1023 |
1097 |
Refinado |
Падения Топ 5
|
| ||
|
-2 |
511 |
партнерки |
|
-3 |
605 |
Блог о раскрутке и монетизации сайта. |
|
-3 |
86 |
Mandalaй.ru |
|
-4 |
589 |
Блог Демона |
|
-4 |
17 |
Выводы простого человека |
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.
