Чаще всего микрооптимизации производительности только ухудшают качество кода, его становится сложнее читать. Но их полезно знать и хорошо бы в них разбираться, потому что сам процесс исследования позволяет глубже понять язык.
Чаще всего микрооптимизации производительности только ухудшают качество кода, его становится сложнее читать. Но их полезно знать и хорошо бы в них разбираться, потому что сам процесс исследования позволяет глубже понять язык.
Scrapy – прекрасный фреймворк для парсинга данных с сайтов. Правда, сайты не любят, чтобы их данные парсили, ещё и бесплатно. И поэтому банят беспощадно. Но иногда очень хочется спарсить немножко данных. На помощь приходят прокси-сервера для скрейпинга. Например, stormproxies, proxymesh и другие.
Допустим, есть следующая иерархия классов:
class X(object): pass class Y(object): pass class A(X, Y): pass class B(Y, X): pass
И в ней, вообще говоря, ничего криминального нет. Но если вы захотите отнаследоваться от A и B, то вас ждёт разочарование.
Все мы рано или поздно сталкиваемся с необходимостью сохранить какую-то информацию, да так, чтобы намертво, чтобы внуки потом ещё прочитать смогли. А если ещё нужно делать хитрые выборки по сохранённому, то обычно мы приходим к использованию реляционных СУБД. Чаще всего, если посмотреть рейтинги популярности, это MySQL.
Сортировка массива — базовая операция. Каждый программист может написать несколько, а просто назвать алгоритмов сортировки — ещё больше.
«Естественная» необходимость и любовь к красивым решениям дала нам MergeSort, QuickSort, HeapSort и т.д. Самоирония, видимо, породила такие алгоритмы, как StupidSort, SleepSort и мой любимый — TwitterSort.
Как известно каждому программисту, если собираешься решить свои проблемы регулярками, то у тебя просто станет на одну проблему больше. Но иногда выхода нет и приходится «расчехлить» свою машину регулярных выражений.
Собственно алгоритм, который лежит в её основе схож у многих популярных языков: Python, Perl, Java, Ruby и т.д. И с ним есть проблема: он может жутко «тупить» на некоторых видах регулярок. В частности, это регулярные выражения, где используется backtracking, т.е. возвращение назад в строке при поиске.