Попробуйте
grep -f the_ids.txt huge.csv
Кроме того, поскольку ваши шаблоны кажутся фиксированными строками, использование опции -F
может ускорить grep
.
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings, separated by
newlines, any of which is to be matched. (-F is specified by
POSIX.)
Идея MVC состоит в том, чтобы разделить архитектуру приложения на три независимых уровня и разрешить каждому этих уровней, чтобы использовать другую реализацию, не затрагивая другие уровни. В основном различие заключается между бизнес-логикой (Модель) и представлением (Представление).
Многие PHP-фреймворки пытаются использовать философию Ruby on Rails «самоуверенного программного обеспечения», поэтому для правильного функционирования Модели и Представления вместе требуется, чтобы оба соответствовать определенной реализации. То есть классы должны быть названы определенным образом, файлы в проекте должны быть организованы в соответствии с определенной структурой каталогов, обозначения в сценариях просмотра должны соответствовать соглашению и т. Д.
JavaServer Faces - довольно хорошая структура полного стека для MVC. У него есть хорошие компоненты View, хорошие контроллеры с управляемыми компонентами, а для модели вы можете создавать бизнес-классы.
Cake и большинство фреймворков «MVC» - это то, что вы могли бы назвать MVC «пассивного просмотра». Вот отличная статья, объясняющая: http://www.martinfowler.com/eaaDev/PassiveScreen.html
Иногда людям нужно сделать шаг назад и посмотреть на «рамки» реальной жизни, из которых цифровой мир получил термин. Это может помочь объяснить его значение, несмотря на бесконечные онлайн-варианты, искажающие слово в соответствии с личными планами и принижающие значение других систем.
Структура должна помочь вам во всех сферах вашей работы.
Итак, если у вас есть только одна страница портфолио, вам понадобится лишь крошечный набор инструментов. Если вы запустите следующий Facebook, ваша «структура» будет сильно отличаться.
Настоящая структура MVC не имеет слоя M (odel). У CakePHP и его друзей есть несколько умных классов для доступа к базе данных, которую они называют моделью, оставляя большую часть обработки данных контроллеру.
Это неверно. Модель должна выполнять всю обработку данных (и она может использовать для этого вспомогательные классы базы данных), а Контроллер должен быть шлюзом между пользователем / веб-страницей и моделью. В большинстве случаев модель представляет собой простой объект PHP, не подчиняющийся никаким правилам, поэтому структура не может определять эти правила.
Фреймворк, как следует из его названия, предназначен для поддержки структур - в данном случае вашего приложения. Обычная (и печальная) вещь в большинстве фреймворков, которые вы можете увидеть плавающими, заключается в том, что они сами становятся навязывающими структурами, диктуя свой собственный способ разделения бизнес-логики, представления, маршрутизации / управления. Вы увидите код приложения, который выглядит так, будто вам нужна целая команда только для поддержки того, что вы написали год назад. Похоже, что цель - это богатство функций во фреймворке. Нет, это не так. Речь идет о том, чтобы дать программисту свободу решать, какие компоненты приложения должны быть разделены и где должно быть разделение - до тех пор, пока задача может быть распределена между рабочей группой людей с их собственным опытом.
Должно ли быть разделение между моделью, представлением и элементом управления - которые, кстати, должны каким-то образом где-то сообщаться друг с другом - размытие или различие должно быть решено архитектором решений.