Эссе о разработке игр, мышлении и книгах

Опыт портирования проекта на Python 3

Лого Python 3.

Портировал Сказку на Python 3.

Хочу поделиться опытом портирования проекта с Python 2.7 на Python 3.5. Необычными засадами и прочими интересными нюансами.

Немного о проекте:

  • Браузерка: сайт + игровая логика (иерархические конечные автоматы + куча правил);
  • Возраст: 4 года (начат в 2012);
  • 64k loc логики + 57k loc тестов;
  • 2400 коммитов.

Далее

Задачи DevOps

На работе потребовалось сформулировать задачи для DevOps. Эта роль протянула свои щупальца почти во все аспекты разработки ПО, и человеческим языком описать её задачи оказалось довольно сложно. В итоге получился такой вот перечень (конечно, это задачи именно melesta-вского DevOps):

Далее

Про собирание метрик в линуксах

Историческая справка по собиранию метрик в линуксах, маленький кусочек вырванный из грандиозного контекста.

Далее

О распределении долей в стартапах

Меня периодически спрашивают как же мы в «Сказке» договорились о распределении долей потенциальных безумных доходов. Никакого секрета в этом нет, сейчас расскажу.

Тем более, что несмотря на практическое отсутствие денег для делёжки, выработанный подход за 3 года продемонстрировал свою адекватность.

Далее

Тестирование семантики кода

Одной из практик тестирования является написание тестов по уже найденным ошибкам, чтобы исключить их в будущем. Но что делать, если ошибка не специфична для конкретной логической сущности, а может встретиться в любом месте?

Писать для каждого модуля одинаковые тесты — не самая вдохновляющая идея, тем более, о них ещё помнить надо. В некоторых случаях тест можно написать не для проверки поведения программы, а для проверки непосредственно её кода. Этакий семантический pep-8, если хотите.

В коде «Сказки» уже давно прописалось несколько таких тестов, собранных в файле test_code.py . О них и расскажу, для иллюстрации идеи.

Далее