Наверняка, большинство из тех, кто разрабатывает или деплоит Python приложения, использует виртуальные окружения. В частности через virtualenv, написанный Ian Bicking.
Идея оказалась так хороша и распространена, что нечто похожее теперь присутствует в Python 3.3 из коробки в виде модуля venv. Он почти такой же, как virtualenv, только немного лучше.
Совсем недавно вышла первая beta php 5.4, а пока я писал топик подоспела и вторая. Одно из нововведений в 5.4 – это traits (типажи). Предлагаю разобраться во всех деталях в том, что же типажи из себя представляют в php.
Простой пример типажа, чтобы не заглядывать в Википедею:
//определение типажа
trait Pprint
{
public function whoAmI()
{
return get_class($this) . ': ' . (string) $this;
}
}
class Human
{
use Pprint; //подключаем типаж, ключевое слово use
protected $_name = 'unknown';
public function __construct($name)
{
$this->_name = $name;
}
public function __toString()
{
return (string) $this->_name;
}
}
$a = new Human('Nikita');
echo $a->whoAmI(), PHP_EOL; //=> Human: Nikita
Как видно, к классу Human было добавлено поведение из типажа Pprint.
Google App Engine позволяет легко создавать приложения, надежно работающие даже при большой нагрузке и с большими объемами данных. Но ещё проще создать программного монстра, который будет работать очень медленно или вовсе не работать, постоянно возвращая ошибку HTTP 500.
Как писать быстрые и хорошо масштабируемые приложения – об этом пойдет речь в этой статье.
Все ниже изложенное прежде всего касается приложений, написанных на Java, но большей частью должно быть справедливо и для приложений написанных на языке Python.
После того, как у меня недавно похудела карма, захотелось кое-что «доточить» на Хабре. Учитывая мой текущий отпуск и наличие времени, я попробовал добавить улучшения через GreaseMonkey-скрипт.
Начав, я уже не смог остановиться и добавил ещё пару дополнений.
Upd: теперь и для Opera Upd от 3 марта 2009: в новой версии перестал работать, да и некоторые функции работают не верно, ждите обновлений… позже Upd от 6 марта 2009: исправил критические ошибки, по которым перестало работать.
Речь идёт о распространённой ошибке в интернет-магазинах. В offline-магазине для выбора 555-и синих пластиковых тазика вам придётся: положить в корзину все 14 штук с витрины, залезть на верхнюю полку стеллажа и достать ещё 43, а за остальными идти с продавцом на склад и найти там ещё лишь 143 штуки.