Skip to content

Instantly share code, notes, and snippets.

@disolovyov
Created September 28, 2011 14:56
Show Gist options
  • Select an option

  • Save disolovyov/1248154 to your computer and use it in GitHub Desktop.

Select an option

Save disolovyov/1248154 to your computer and use it in GitHub Desktop.
Панда II — Меню на осень

Подробнее об осенних темах Панды II

Событийное веб-программирование

Это похоже на будущее веб-разработки. Такой подход к созданию веб-приложений позволяет с лёгкостью разворачивать в вебе системы, выдерживающие тысячи одновременных и непрерывных подключений. Что греет сердце и душу, создание таких систем возможно в привычной многим среде языка JavaScript. Используя такие ключевые технологии, как Node.js, Socket.IO и HTML5 Canvas, мы убедимся, что событийное веб-программирование в JavaScript может соревноваться в производительности с Erlang и делать Python с завязанными глазами.

Статическое метапрограммирование

Мы уже немного затронули эту тему летом, но не раскрыли её во всех цветах. В рамках обсуждения этой темы мы получим в своё распоряжение набор мощных иснтрументов, позволяющих менять все правила в используемом языке программирования. Например, менять поведение конструкций языка, добавлять новые конструкции (расширять язык), а главное — ответим на вопрос, кому и зачем всё это нужно, как это позволяет упростить себе жизнь и повысить читабельность исходного кода.

Разработка на основе поведения

Оно же, на английском, Behavior Driven Development. BDD является закономерным продолжением практик Test-Driven Development, которые популярны в кругу приверженцев «гибкой» разработки ПО (Agile). Высшая цель этих практик — путём следования простым, логичным правилам в разы повысить надёжность и документированность своего кода. В рассмотрение BDD входит знакомство с распределёнными системами контроля версий на примере Git.

Операционное исчисление

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

Low Level Virtual Machine

LLVM — это универсальный бэк-энд для языков программирования. Он позволяет превратить академические наброски вашего языка в настоящий компилятор, генерирующий оптимизированный код для большинства популярных платформ (x86, x86-64, ARM и другие). У Анатолия есть планы по завоеванию галактики через применение статического метапрограммирования для выращивания на примитивном наборе инструкций LLVM языка сверх-высокого уровня. Для вникания в эту тему требуются знания из курса «Проектирования компиляторов».

Теория групп

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

Теория функций комплексного переменного

Теория функций комплексного переменного сшивает воедино многие, казавшиеся разрозненными, части элементарной математики. Это приводит к целостному пониманию многих элементов вычислительной математики, а также даёт основу для вникания в современные физические теории (такие как теория струн).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment