Реализация функции получения среднего времени ответа сервера с помощью команды ping

Вам приходилось когда-либо писать клиент-серверные приложения? Если да, то, вероятно, вы сталкивались с необходимостью получения времени ответа сервера. Такая необходимость может быть вызвана, например, при работе клиента с сетью серверов, имеющих разное географическое положение, для выбора оптимального сервера. В этом небольшом рецепте показан пример реализации функции получения среднего времени ответа сервера с помощью системной утилиты […]

Подробнее

Пользовательские атрибуты (UDA) [перевод]

Пользовательские атрибуты (User-Defined Attributes, UDA) — это выражения времени компиляции, которые можно добавить к объявлению чего-либо. Затем эти атрибуты можно запрашивать, извлекать и изменять во время компиляции.

Подробнее

Перемещение объектов в heap

Официальная документация частенько удивляет! На этот раз мы нашли полезный рецепт в changelog к старой (на данный момент) версии компилятора. Шаблон moveToHeap принимает некий объект, извлекает указатель на него, производит выделение памяти с помощью GC.malloc и  moveEmplace (который лежит в std.algorithm) осуществляет перемещение данных из одного участка памяти в другой. С помощью взятия и распечатки […]

Подробнее

Idiomatic D. Подводные камни при портировании с C

Очень часто программистам приходится портировать код из одного языка программирования в другой, ведь не писать же свой «велосипед», когда можно просто «скопипастить» чужой код и немного подправить… Однако, не все так просто! Существуют различные сложности, связанные с архитектурой языков, компиляторов и «железа». Это, своего рода, «подводные камни», для преодоления которых, при портировании кода из C […]

Подробнее

Документация Vibe.d на русском языке. Веб-фреймворк

Перевод документации к Vibe.d. Часть 3. Основываясь на низкоуровневой базе HTTP/HTML, высокоуровневая структура веб-приложений обеспечивает более быструю и надежную их разработку. Она использует декларативный подход, основанный на классах, для избегания повторов кода. Статическая типизация используется как можно больше для исключения ошибок преобразования, или ошибок доступа к неправильным ключам времени выполнения (например, несуществующее или ошибочное поле […]

Подробнее

Документация Vibe.d на русском языке. HTTP

Перевод документации к Vibe.d. Часть 2. Конфигурация сервера HTTP-сервер поддерживает некоторое количество параметров конфигурации для настройки его поведения. По умолчанию сервер будет прослушивать все локальные сетевые адаптеры на порту 80 и выполнять полный синтаксический анализ запроса.

Подробнее

Документация Vibe.d на русском языке. Первые шаги

Перевод документации к Vibe.d. Часть 1. Сначала установите диспетчер пакетов DUB, чтобы он обрабатывал загрузку и создание vibe.d и производных приложений. В системах, отличных от Windows, необходимо установить ряд дополнительных зависимостей. Подробную информацию см. в описании проекта на GitHub. Ручная сборка (например, с использованием RDMD) является альтернативой, но вы должны убедиться, что внешние библиотеки прилинкованы […]

Подробнее