"Не используйте регулярки - иначе вместо 1 проблемы, у вас их станет 2!" - как то так говорят знатоки... А что остается делать непослушным, желающим эффективный поиск по большому количеству шаблонов?
Да, для такой довольно специфичной проблемы существуют крутые решения вроде Ragel или re2c. Тем не менее, для своего проекта мне показалось нецелесообразным пока осваивать эти прекрасные технологии.
В этой статье мы рассмотрим альтернативы стандартной библиотеке для регулярных выражений в Go, проведем их бенчмарк по скорости и потребляемой памяти. А также с практической точки зрения рассмотрим различия между ними.
Бесплатно? Конечно же никто у вас деньги за "пойти в гугл" не возьмет... А что если попытаться автоматизировать сей процесс? Вот тут то возникают проблемы и чернозём для бизнесов.
Как и в прошлой статье я полез доставать файлы из интернетов, на этот раз из Гуглов. История повторилась и я осознал, что где-то в закромах у меня был код для этого. С радостью начав его изучать, понял, что радости там не много и легче найти что-то готовое...
Далее мы мельком посмотрим: какие решения на текущий момент нам может предложить рыночек, что и с какими дефектами отдают даром. Также изучим какие проблемы возникают при автоматизации сего процесса и как в конечном итоге это можно сделать легко и бесплатно!
Когда-то давно передо мной стояла задача по поиску файлов на ресурсах, которые могли уже не работать или определённые данные с них были удалены. Тогда для этой цели я использовал веб архивы Common Crawl и самопальный инструмент для автоматизации взаимодействия с ним.
Сейчас мне понадобилось решить схожую задачу, но Common Crawl упал и пока не встаёт… Поэтому было принято решение допилить свой инструмент до уровня скоростного велосипеда с использованием Wayback Machine и поделиться небольшим опытом извлечения архивных данных.
Не погружаясь сильно в детали, далее, в общих чертах я опишу что используют сервисы для архивации, как мы можем этим пользоваться через API, а в конце мы сертифицируемся по-ЦРУшному используя инструмент GoGetCrawl.