Август 02, 2021
ExecutorService в Java и его разновидности

Для параллельных вычислений Java предоставляет интерфейс Executor, который помогает отделить описание задач от того, как они будут выполнены, как будут использоваться потоки, как будет производиться scheduling и т.д. Пакет java.util.concurrent предоставляет несколько фабричных методов, которые помогают создать пулы, ведущие себя по-разному в зависимости от особенностей их создания, и каждый их них эффективен для своей определенной разновидности вычислений. >>
Теги: ,

Апрель 11, 2017
Полугруппа, моноид, бифунктор, профунктор

В статье при помощи синтаксического подхода рассмотрены такие абстракции из теории категорий, как полугруппа, моноид, бифунктор и профунктор. Данные конструкции являются либо более специализированными конструкциями, либо комбинациями базовых абстракций (ковариантный функтор, контравариантный функтор). >>

Февраль 05, 2017
Идиомы и механизмы абстракции функционального программирования. Функторы

Каждой парадигме языков программирования свойственны свои механизмы абстрагирования и идиомы. Если для объектно-ориентированных языков это классы, наследование, полиморфизм, инкапсуляция, делегирование и шаблоны проектирования, то для функциональных языков это шаблоны высшего порядка, типы, зависимые от пути, классы типов и идиомы, которые их используют: ковариантный функтор, аппликативный функтор, монада и т.д. В статье рассмотрены понятия ковариантного, контравариантного и инвариантного функтора. >>

Январь 22, 2017
Теги типов в Scala (TypeTags)

Во всех JVM-языках существует понятие type erasure. Из-за того, что JVM ничего не знает о generics, компилятор удаляет всю "generic" информацию типа после компиляции. Для того, чтобы решить эту проблему, в Scala 2.10 появились "теги типов". >>
Теги:

Январь 02, 2017
Начало работы с Shapeless

Shapeless - это инструментарий, который заставляет работать систему типов Scala на вас. Здесь приведен список основных возможностей Shapeless, которые могут пригодиться практически в любом нетривиальном проекте. >>
Теги: ,

Февраль 22, 2016
Почему я использую пробелы, а не табы

Вопрос о том, пробелы или табы лучше использовать в коде, часто является предметом споров. Хочу высказать свое мнение на этот счет. Надеюсь, статья получилась достаточно аргументированной. >>
Теги:

Май 08, 2014
Использование Zope Component Architecture (ZCA) в Pyramid

Pyramid использует реестр компонентов фреймворка Zope Component Architecture в качестве своего реестра приложения. Pyramid, как правило, скрывает наличие ZCA от разработчиков приложений, но позволяет использовать ZCA при создании приложений Pyramid. Есть некоторые проблемы, если попытаться использовать в Pyramid-приложении паттерны, которые используются при создании обычного Zope-приложения. Но Pyramid предлагает несколько вариантов решения этой проблемы. >>
Теги: ,

Октябрь 12, 2013
Разновидности программных тестов

Программные тесты делятся на: юнит-тесты, интеграционные тесты, функциональные тесты. Эти виды тестов не исключают друг друга, они находятся на разных уровнях абстракции. >>
Теги: ,

Май 01, 2013
Деплой Django-приложения на сервере с использованием Nginx, Gunicorn и Python 3.x

Один из способов деплоя проекта на Django, начиная с установки интерпретатора Python 3.x, и заканчивая настройкой серверов Gunicorn и Nginx. Gunicorn - WSGI сервер для UNIX, написанный на Python, не имеющий зависимостей и легкий в установке и настройке. Позволяет запускать python-приложения в изолированных окружениях. >>
Теги: , ,

Февраль 06, 2013
Как развернуть Pyramid-проект с SQLAlchemy и URL-менеджером

Фреймворк Pyramid содержит разнообразные скаффолды, которые можно использовать для генерации проектов. Скаффолды имеют различные конфигурации, в зависимости от типа генерируемого приложения. При использовании скаффолда, мы получаем приложение в виде пакета, который в последствии легко расширять и распространять. >>
Теги: ,