Я исправил это, добавив DirectoryIndex
перед FallbackResource
для того же индексного файла:
<Directory /var/www/my-app/public>
AllowOverride None
Order Allow,Deny
Allow from All
DirectoryIndex /index.php
FallbackResource /index.php
</Directory>
Я буду делать попытку его и выдумывать имя "ленивый фильтр (анти-) шаблон".
Я видел что однажды. Тот программист не был вокруг слишком долго.
Мы назвали это "методом пожарного шланга".
Мне это - текучая абстракция Joel Spolsky.
Это не точно антишаблон, но кто бы ни написал этот код, действительно не понял, где Активная Рекордная абстракция шаблона протекает.
Я не уверен, что это - обязательно связанная база данных, так как у Вас могла быть сложная и дорогая процедура (например, больше, чем флаг) для применения фильтра для группы.
Я не думаю, что существует имя к нему, так как первый дизайн просто не хорош, и это нарушает one-responsibility-only принцип. Если Вы ищете, фильтруете и печатаете фильтрованный, Вы делаете несколько вещей, таким образом, необходимо осуществить рефакторинг его в "искавший фильтрованный" и печать.
Единственная вещь, отличающаяся, чем простой рефакторинг вот, состоит в том, что он также влияет на производительность, таким же образом что внутренние циклы могут быть разработаны способами, которые вредят производительности.
Я видел подобные проблемы в другом месте, где вместо простого массива вещей сделать, был "кластер транзакции" на основе "кластера списка" на основе "кластера набора" на основе "кластера памяти". Само собой разумеется, самая простая вещь превратилась в большое большое долбаное' соглашение.
Я назвал его скачущий общность.
Кажись, произошли из следующих антишаблонов:
Исходному разработчику возможно не разрешили бы записать find_unsent_emails () реализация и поэтому снова использует миниатюрную функцию. И затем, почему изменение это после разработки и тестирования?
Это часто происходит из-за него являющийся намного легче использовать существующий запрос и затем просачивающийся код, чем получение нового добавленного SQL-запроса. Возможно, потому что DBAs управляют всеми запросами, и получение нового утвержденного запроса занимает дни, или возможно потому что инструмент ORM, который Вы используете, делает очень трудным определить Ваши собственные запросы.
Если бы я должен был назвать его, то я назвал бы это "Простым способом" (анти-) шаблон. Является ли это антишаблоном или не действительно зависит от отдельной ситуации. Если это всегда будет справедливо небольшое количество объектов, необходимо получить, делая просачивающийся, код действительно не является большой проблемой. Но если количество объектов является большим и имеет потенциал для непрерывного роста, то, очевидно, фильтрация должна быть сделана на сервере.
Производительность первой может на самом деле быть прекрасной, в зависимости от типа Emails
. Если это - просто итератор (думать std::vector::begin()
в C++
) затем это прекрасно и лучше, чем хранение всех неотправленных электронных писем в некотором контейнере сначала.
Любители Stoopid.
Серьезно, я только видел этого у людей с градусами Информатики и никаким профессиональным опытом вообще. Когда я преподавал в Duke, мой советник и я выполнили "Крупный масштаб, Программируя" класс, где мы заставили людей посмотреть на точно эти виды ошибок.
Этот антишаблон имеет несколько возможных имен.
Отчасти вдохновленный "ленивым (анти) паттерном" 1800-х годов, как насчет "дисфункционального программирования" (т.е. противоположности функционального программирования)?