Pull to refresh
1
0
DROS @DROS

User

Send message

Шаблон backend сервера на Golang — часть 2 (REST API)

Reading time32 min
Views33K

UPD. Ссылка на новый репозиторий проекта с поддержкой развертывания в Kubernetes


Представленный ниже шаблон сервера на Golang был подготовлен для передачи знаний внутри нашей команды. Основная цель шаблона, кроме обучения — это снизить время на прототипирование небольших серверных задач на Go.


Первая часть шаблона посвящена HTTP серверу:


  • настройка HTTP сервера через командную строку и конфигурационный файл
  • настройка параметров TLS HTTP сервера
  • настройка роутера и регистрация HTTP и prof-обработчиков
  • настройка логирования HTTP трафика, логирования ошибок в HTTP
  • HTTP Basic и MS AD аутентификация, JSON Web Token
  • запуск сервера с ожиданием возврата в канал ошибок
  • использование контекста для корректной остановки сервера и связанных сервисов
  • настройка кастомной обработки ошибок и кастомного логирования
  • сборка кода с внедрением версии, даты сборки и commit

Вторая часть шаблона посвящена прототипированию REST API.
Ссылка на репозиторий проекта осталась прежней.


Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Архитектура шаблона REST API


В ходе тестирования шаблона на стенде были получены следующие результаты.

Читать дальше →

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Reading time44 min
Views237K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →

Автоматический регулятор температуры газовой колонки

Reading time5 min
Views58K
Хочу рассказать о создании несложного устройства, которое сильно облегчило жизнь домашним обитателям — автоматический регулятор температуры газовой колонки. Подобные устройства уже создавались и описывались здесь на хабре, хотелось сделать чуть более продвинутый девайс и подробно описать весь процесс создания от задумки и измерения до реализации, без использования готовых модулей типа Arduino. Устройство будет собрано на макетной плате, язык программирования — C. Это моя первая разработка законченного (и работающего!) устройства.
Читать дальше →

Контроль температуры воды в газ. колонке

Reading time5 min
Views163K
Я очень люблю проводить время в ванной, даже очень люблю.
Ничего нет лучше взять пивка, жареных пельмешек, айпадик и быдлокодить лежа в горячей водичке.

Но эту идилию нарушает ужасное существо, и зовут его «Газовая колонка».

Читать дальше →

3D-сканирование с использованием Intel RealSense

Reading time6 min
Views12K


Недавно выпущенный SDK для камеры Intel RealSense F200 включает функцию 3D-сканирования. Это удивительная функция, которая позволит разработчикам и специалистам по компьютерной графике сканировать реальные объекты и применять их в своих проектах. Один из примеров использования этой технологии — сканирование реальных объектов для использования в игровом движке Unity. В этой статье я познакомлю вас с подробностями этого процесса.
Читать дальше →

CanHacker на базе Adruino (без глюков)

Level of difficultyEasy
Reading time3 min
Views38K

Итак, моя задача: подключение рулевой рейки тигуана на столе без подключения к машине. Для этого требуется имитация активности в CAN шине. Для этого требуется адаптер, позволяющий работать с программой CanHacker и, собственно, трейс CAN пакетов с автомобиля.

Читать далее

Собираем удобный CAN bus сниффер с интерактивной консолью за $3

Level of difficultyMedium
Reading time13 min
Views27K

Привет, Хабр!

Протокол CAN сейчас широко распространён не только в автомобильной сфере, но и на предприятиях, в различных самоделках, и даже в Средствах Индивидуальной Мобильности (контроллеры VESC, например). В ноябре прошлого года я сделал для себя удобный инструмент для анализа CAN и отправки фреймов, сейчас же хочется сделать код опенсорсным и рассказать о самом проекте.

Читать далее

KatWalk C2: ч.4: поиграемся с прошивкой

Level of difficultyMedium
Reading time13 min
Views1.2K

Для тех, кто только подключился -- я рассказываю про платформу для VR игр, как с ней интегрироваться и как добраться до ее сенсоров напрямую.

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

Давайте что-нибудь в нём пропатчим!

KatWalk C2: ч.5: Учимся разбирать ARM в Ghidra (aka оверклокинг и багфиксинг)

Level of difficultyMedium
Reading time23 min
Views3.5K

"Что б они ни делали -- не идут дела. Видимо в прошивке багов дофига". Как я напомнил в прошлой статье (где я подготовил утилиты для перепрошивки сенсоров) -- я рассказываю про платформу для VR игр, как с ней интегрироваться и как добраться до ее сенсоров напрямую.

Её исходный ресивер обновляет сенсоры с частотой в 86Гц, тогда как технически возможно разогнать до 133 Гц, получив ощутимо ниже задержки, но связь была нестабильной.

Давайте начнём погружение в сенсоры -- посмотрим, что за игра ghidra_11.0_PUBLIC установлена у меня в C:\Games, заглянем одним глазком в саму прошивку и поковыряемся там грязными патчиками, да исправим race condition плюс выкинем немного отладочных глюков. В общем, готовимся к погружению. В этот раз -- всё серьёзно.

Ныряем

KatWalk C2: ч.3: отрезаем провода

Level of difficultyMedium
Reading time28 min
Views2.7K

Итак, мы познакомились с платформой как пользователи. Посмотрели на связь игр с софтом. Софта с платформой. Пришла пора посмотреть как платформа общается со своими сенсорами: нужен ли нам провод до платформы вообще?

Теперь познакомимся с Bluetooth LE и узнаем, почему приходится писать свой приёмник а не просто полагаться на операционную систему.

Кабель? Нет, спасибо. Но как?

KatWalk C2: ч2, подслушаем, подсмотрим и разнюхаем или как общаться с незнакомым железом на незнакомом языке

Level of difficultyMedium
Reading time27 min
Views1.2K

В прошлой статье я рассказал что это за платформа, и показал как можно получить данные с неё и как встроить код в стороннее приложение.

Однако, получение данных требует постоянно висящего приложения (на C#), и надо понять что же конкретно оно делает.

Давайте разберёмся как общаться с железом и избавимся от балласта!.. Переписав на Kotlin. Почему Kotlin? Потому что я на нем никогда еще не писал.

Погружаемся

Играем с KAT Walk C2. (часть 1: собственно, играем)

Level of difficultyMedium
Reading time22 min
Views4.1K

У меня есть дурная привычка: я играю в игры. Впрочем, понятие "играю в игры" довольно своеобразное.

Уже несколько лет как я обзавелся VR платформой от KAT VR. Согласно её внутренней статистики, я прошел на ней около 30 километров и сделал 40к шагов. Статистика, конечно, врёт и сильно, было гораздо, гораздо больше. Однако же да, на ней я играл гораздо меньше времени чем с ней.

Впрочем, обо всём по порядку.

Непрерывный мониторинг радиационного фона в Москве

Reading time2 min
Views20K
В этой заметке я хочу кратко рассказать о проекте команды нердов-энтузиастов по непрерывному мониторингу радиационного фона в Москве, на базе счетчика Гейгера и Arduino, а также полученной статистике.
Читать дальше →

Telogreika v1.0 — носимое устройство персонального обогрева на Arduino

Reading time8 min
Views31K
image

На картинке скрин из нашумевшей игры про не очень далёкое будущее. Заметили странный воротник у типа? Думаете что это такое? Признаюсь честно, я совсем не пытался выяснить назначение этого устройства по сюжету, но мне сразу подумалось, что художник пытался изобразить ИНФРАКРАСНЫЙ ОБОГРЕВАТЕЛЬ! По-моему, логично. Сколько бы вы не протезировали органов и сколько бы дырок в черепе под нейролинк не насверлил вам Илон Машк, остатки вашей биологической плоти будут предательски старомодно мёрзнуть, создавая всем хорошо знакомое угнетающее ощущение «божечки, я сейчас точно кони двину от холода, если этот автобус не приедет в ближайшую минуту!»

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

Газоразрядное табло для машины времени, или как я оказался в титрах к японской дораме

Level of difficultyEasy
Reading time9 min
Views11K

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

Большинство конструкций на газоразрядниках, которые мне попадались в категории «для начинающих», использовали давно снятые с производства микросхемы по типу К155ИД1 или SN74141. Также многие встреченные схемы экономили на оных, используя один дешифратор для всех ламп сразу, коммутируя аноды через оптопары.

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

Кто же знал, чем это всё для меня обернётся!

Читать далее

ATWatch: Долгий путь разработки умных часов на Arduino

Reading time12 min
Views17K

Привет, меня зовут Артем. Не так давно я спросил Артёма о том, почему бы нам не рассказать о своём проекте, думаю многие смогут подчеркнуть в нашей истории, что-то своё.

Проект ещё начинался, когда я был в 9 классе школы. В университете к разработке присоединился мой друг Артём. Сейчас я закончил университет и темой моей работы стал данный проект.

Читать далее

Мини-куб из 3456 светодиодов

Reading time4 min
Views29K


Не знаю почему, но мне очень нравятся светодиоды, и видеть их можно почти во всех моих проектах. Буквально недавно меня вдохновил Грег Дэвилл своим проектом миниатюрного LED-куба с 3456 светодиодами. Немного поразмышляв на эту тему, я решил собрать такой же чудесный куб сам, о чем и поделюсь с вами в данной статье.
Читать дальше →

Создаём систему радиоуправления для самодельного самолёта. Ч.1

Level of difficultyMedium
Reading time13 min
Views56K
Картинка Viarprodesign, Freepik

У каждого человека есть определённая тема, к которой он испытывает некое иррациональное влечение. У автора этой статьи такой темой является авиамоделирование: на тот момент, когда ещё существовали авиамодельные кружки, автор пришёл в него записываться и ему сказали, что он ещё слишком мал и лучше прийти через пару лет. А через пару лет распался Советский Союз и всем стало совсем даже не до кружков — на дворе наступили «благословенные» 90-е годы…

Однако, «гештальт сам себя не закроет» и автор решил тряхнуть стариной и попробовать собрать свою первую авиамодель (лучше поздно, чем никогда, да и в авиамодельный кружок опять не возьмут — теперь уже по причине старости :-)
Читать дальше →

Самодельная подводная лодка с надводной wi-fi антенной

Reading time8 min
Views62K

Как всё начиналось


Всех приветствую. Я Максим и хочу поделиться информацией о том, как собирал радиоуправляемую подводную лодку без каких-либо знаний об электронике в начале своего пути.



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

Всю жизнь меня интересовала тема подводных исследований, началось всё тогда же, в детстве, с Ж.И. Кусто, а закончилось разработкой игры про подледные океаны Европы. Но, впрочем, сейчас не об этом.

Решив, что пора увлечения перевести в плоскость практики — я отправился на Youtube. Получил горсть самых базовых знаний и дальше мой путь лежал уже на AliExpress, как и у многих. Закончилось всё покупкой 27-ми наименований различных модулей и прочих компонентов.



Сотрудник почтового отделения был очень недоволен когда искал 27 посылок…

Карманный ПК своими руками

Level of difficultyMedium
Reading time7 min
Views41K

Несколько лет я искал такой проект, в котором мог бы сполна реализовать свою креативность. Собственный проект, который бы стал испытанием моих навыков и принёс внутреннее удовлетворение.

Карманные ПК всегда занимали в моём сердце особое место. Первым был Palm III, а чуть позже я стал обладателем Sharp HC-4500. Меня заинтересовали проекты Yarh.io, и в начале этого года я задумал купить uConsole. Предполагалось, что этот девайс будет отправлен в марте, но заказ всё ещё находится на стадии подготовки. Так что, вооружившись множеством идей и сильной мотивацией, я приступил к реализации собственного проекта по сборке карманного ПК: Decktility.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity