Использование TCP-соединения для получения среднего времени ответа сервера

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

Подробнее

Реализация функции получения среднего времени ответа сервера с помощью команды 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 и выполнять полный синтаксический анализ запроса.

Подробнее