Интересные концепции: опциональная статическая типизация

Не секрет, что Python (CPython) - динамически типизируемый язык (все типы выясняются во время выполнения программы). Это как дар так и проклятие. С одной стороны - можно быстрее писать программы, с другой - тяжелее найти ошибки. При этом, если была бы статическая типизация - уже на этапе компиляции мы знали бы где мы затупили с типами.

В русскоязычном Python Андрей Власовских из Jetbrains наиболее ...

more ...

Интересные концепции: webhook

Webhook — механизм получения уведомлений об определённых событиях (в основном о действиях пользователей) на свой собственный сайт. В момент срабатывания события - бросается запрос (чаще всего POST) на указанный URL.

Например, разновидность Webhook - GitHook - отслеживает статус Git-репозитория на предмет изменений - пришел коммит на определенную ветку, проставили тэг и другое.

Но что же особенного в этом? Автоматизация. Это отличный инструмент автоматизации. Можно принять ...

more ...

Интересные концепции: утиная типизация

Слышали фразу: "Если что-то выглядит как утка, плавает как утка и крякает как утка, то, вероятно, это утка"? Эта поговорка характеризует утиную типизацию == утипизацию

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

more ...

Интересные концепции: fuzzy-testing - тестирование грубой силой

Тестирование программ повышает уверенность в ее способности работать. Есть даже большие школы, которые говорят о тестах, например, TDD, BDD.

У ручных тестов есть недостаток, среди прочих - тесты пишет человек. В следствии этого - он не сможет проверить работу функции/класса/etc на всех данных. А когда нам быть уверенным что даже на самых невалидных данных работает корректно, то без случайных данных ...

more ...


Интересные концепции: mixin'ы (примеси)

В определенных случаях множественное наследование это зло. Добро - когда классы родители не перекрывают друг друга. Частный случай такой схемы - примиси == миксины == mixin == mix in. Концепция примисей строится на идеи четкого разделения свойств и методов для сущностей.

Например,

  • если есть летающее животное, то можно смело иметь метод fly;
  • если есть раскрашиваемый объект, то можно завести методы "покрасить", и два состояния - "раскрашен ...
more ...

Интересные концепции: Трансдьюсеры

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

more ...