Tourmaline Core
50 subscribers
8 photos
9 videos
1 file
12 links
Индивидуальная разработка IT для бизнесов.

Запускаем MVP, делаем экспериментальные R&D-проекты, сложные корпоративные веб-сервисы и сайты. Пишем код для встраиваемых систем, внедряем машинное обучение.

Узнать больше:
tourmalinecore.com/ru
Download Telegram
Media is too big
VIEW IN TELEGRAM
Поздравили СЕО с днем рождения! 🎉
❤‍🔥7
Media is too big
VIEW IN TELEGRAM
Ловим уходящую зиму на корпоративе в горах 🏔

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

Task: Research on skiing in Kusa - done ☑️
❤‍🔥7💘3
16 мая на UWDC Александр расскажет про шаблон проекта с открытым исходным кодом для .NET API. Это поможет сделать разработку в команде кроссплатформенной, контейниризованной и автоматизированной. Большой частью доклада будут пайплайны непрерывной интеграции и приятные мелочи, которые улучшают ежедневный опыт разработчиков.

Доклад подойдет как .NET-разработчикам, так и бекенд-разработчикам других стеков, включая DevOps-инженеров.

Доклад на сайте конференции: https://uwdc.ru/events/uwdc2026/talks/avtomatiziruem_i_uluchshaem_devexp_vokrug_odinokog
❤‍🔥10❤1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
В субботу на UWDC выступил Александр. Он рассказал, как в Tourmaline Core устроен DevExp для .NET-бэкенда.

Главная идея: чтобы любой разработчик компании на любой операционной системе открыл репозиторий, нажал «Open in Dev Container» и через минуту получил полностью рабочее окружение. API, PostgreSQL, PgAdmin, MockServer, xUnit, Karate для E2E — всё уже поднято, ничего не надо ставить локально. Еще один большой раздел раскрывает тему автоматизации: какие CI-пайплайны обогащают ежедневный опыт разработчиков и помогают качественной разработке. Это фундамент, на котором у нас живёт устойчивая TDD-практика.

В докладе конкретика: как устроен devcontainer.json и зачем нужен Docker-outside-of-Docker, как мы развели порты по продуктам и сервисам, почему отказались от Visual Studio в пользу VS Code, как считаем покрытие Karate + xUnit и склеиваем в один отчёт в пайплайнах, как генерируем js-client для фронтенда из OpenAPI и автоматически обновляем его в UI-репозитории.

Внутри презентации есть QR-коды на наши открытые репозитории, где всё это реализовано. И на плейлист на YouTube: скоро там начнут появляться видео, как по шагам настроить такой же шаблон проекта.

Для тех, кто не успел на конференцию, скоро выложим студийную видеозапись выступления.
🔥5❤‍🔥3
UWDC_DevExp_in_.NET.pdf
4.8 MB
Презентация с UWDC доклада ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2
❤‍🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Прямо на UWDC, сразу после доклада, мы анонсировали ещё кое-что: первый номер нашего журнала «Турмалин Код» ❤️

Это журнал про инженерную культуру, код и бизнес-процессы. Его мы писали так, чтобы материал приносил пользу как тем, кто принимает бизнес-решения и ведет за собой команды разработчиков, так и тем, кто проектирует системы и пишет их код.

Открывающий выпуск про Test-Driven Development (разработку через тестирование): зачем TDD бизнесу, как он меняет дизайн кода системы, что мешает внедрению, какие есть открытые материалы у нас уже сейчас.

О том, где и как получить этот и следующие выпуски — ждите новостей в соцсетях компании 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🔥3❤1
Студийная видеозапись доклада Александра с UWDC уже на YouTube 🎬

Доклад о том, как в Tourmaline Core устроен DevExp для .NET-бэкенда.

Открываешь репозиторий, жмёшь «Open in Dev Container», и через минуту локально поднято всё: API, PostgreSQL, PgAdmin, MockServer.
Плюс CI-пайплайны: от базовых сценариев с запуском тестов до более сложных по публикации js-client и генерации схемы базы данных в README.

Как обычно, не только рассказываем, но и даём посмотреть: весь код из доклада находится в наших открытых репозиториях.

Ссылка на запись: https://www.youtube.com/watch?v=GOG7j3H0x-c
❤‍🔥5🔥4🐳3❤1🤩1
Дизайн-разбор: как мы перепроектировали сайт Челябинского зоопарка 🫶

UX/UI-дизайнер Настя рассказывает, как складывалась визуальная концепция «животные и люди здесь — одна семья», почему отдельная версия для слабовидящих на самом деле не работает и какие приёмы помогают делать интерфейс, который не устареет через 10 лет.

Ссылка на видео: youtube.com/watch?v=lwizp6czHPA
❤‍🔥5💅3❤2⚡1🐳1
Media is too big
VIEW IN TELEGRAM
Упираетесь в лимит минут GitHub Actions для раннеров на приватных репозиториях?
Мы тоже упёрлись: 2000 минут на всю организацию закончились за первую неделю.

Написали статью, как поднять несколько изолированных self-hosted раннеров на одном хосте:

1️⃣ Путь Bare Metal → Docker-out-of-Docker → Docker-in-Docker
2️⃣ Мультиплатформенные образы для amd64 и arm64
3️⃣ Репликация и настройка ресурсов в Docker Compose

Ссылка на статью:
https://habr.com/ru/articles/1047640/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🐳5❤‍🔥1
Media is too big
VIEW IN TELEGRAM
Кейс по проекту: новый сайт Челябинского зоопарка 🦁

Старому сайту Челябинского зоопарка было 10 лет. Он уже не отражал зоопарк после стольких лет изменений и не всегда открывался с первого раза.

Мы решили поддержать зоопарк и благотворительно сделать редизайн и разработку нового сайта ❤️

Фишки проекта:
• полный open source 
• разработка через тестирование (Test-Driven Development)
• инклюзивные дизайн и вёрстка вместо отдельной версии для слабовидящих 
• редактирование контента сайта через систему управления сайтом (CMS), без участия разработчиков

Лендинг про весь процесс работы команды над этим проектом теперь живёт на главной странице нашего сайта и собирает все ссылки по проекту в одном месте.

Посмотреть можно тут:
tourmalinecore.com/ru/chelzoo
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3🐳2❤‍🔥1💘1
This media is not supported in your browser
VIEW IN TELEGRAM
Можно неделями полировать макет. А потом презентовать разработчикам и услышать: это нельзя сделать. Или окажется, что фича не нужна или не приносит пользы.

Узнать об этом в конце, когда всё задизайнено на 100%, дорого и больно.
Узнать об этом на этапе черновика от руки в первую неделю — дёшево и проще эмоционально.

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

В новой статье про итеративный дизайн разобрали, как это устроено у нас.

Что внутри:

1️⃣ как делим работу над дизайном на прототипы 0–1–2, и где подключаем разработчиков

2️⃣ как выглядят короткие спринты, когда фича доходит до прода за неделю

3️⃣ плюсы, минусы и сложности: как жилось разработчикам, как перфекционисту отдавать неготовый результат и как понять, что пора остановиться

4️⃣ где итеративный подход выручает ещё: презентации, сайты и лендинги

Читать на Хабре:
habr.com/ru/articles/1048298/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3💘3❤2🥰2🐳2
Media is too big
VIEW IN TELEGRAM
Зарисовка из жизни: стоимость одной дизайн-правки ✨

О том, как итеративный подход к дизайну помогает снижать стоимость на наших проектах, рассказали в статье:

habr.com/ru/articles/1048298/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6❤‍🔥4🐳4
Media is too big
VIEW IN TELEGRAM
У нас была одна не кирпичная офисная стена, скучающий иллюстратор и несколько идей по добавлению брендинга в офисное пространство.

Что из этого вышло — можно посмотреть в видео.

Наш офис и раньше рассказывал о нас без слов: много экзотических растений, яркие цвета, поднимающиеся столы, прозрачные переговорки. У нас даже есть флаг, с которым покоряются горы!
Но всё это — детали, которые можно встретить у многих. Теперь же в офисе появился уникальный пазлик: наш маскот в полный рост на стене ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤5🐳4
Уникальность фотографии. На первый взгляд её можно только ощутить.

Три года назад мы решили проверить, можно ли ощущение уникальности превратить в число, которое было бы понятно человеку и считалось автоматически.

Сначала мы подумали о плагиате. Если фото выглядит также или сделано с немного другого ракурса — фото не уникально. Но потом поняли: два фото могут быть визуально разными, но не быть уникальными, потому что у них схожая концепция.

Отсюда появились вопросы:

📍 Можно ли вообще говорить об уникальности фотографии в вакууме, не сравнивая её с другими фотографиями в мире?
📍 Бинарный ли это признак или у него есть диапазон?
📍 Можно ли отсортировать фотографии по степени уникальности?
📍 Можно ли оценивать уникальность концепции фото автоматически?

Пока мы размышляли над этими вопросами, сделали исследовательский проект в open source, чтобы показать идею вживую: уникальность — это метрика, у которой есть диапазон. Проект назвали Tourmanique.

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

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

Узнать о проекте больше и погрузиться в задачи дизайна можно в новом дизайн-кейсе по ссылке:
https://dprofile.ru/case/188024/servis-dlia-opredeleniia-unikalnosti-fotografii
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11❤6👍3🐳2
Выложили первый выпуск журнала «Турмалин Код» — теперь его можно полистать в электронном формате

✨ tourmalinecore.com/ru/magazines/tourmaline-code-about-tdd

№1 — про Test-Driven Development (разработку через тестирование).

Что внутри:
📍 комикс, чтобы через простой сюжет понять ценность процесса
📍 когда тесты не нужны, а когда без них — никак
📍 что на самом деле показывают исследования: где TDD снижает количество дефектов, а где просто удлиняет старт
📍 семь условий, при которых TDD работает
📍 почему с приходом ИИ тема стала острее: код генерируется быстрее, техдолг вместе с ним
📍 как TDD выглядит на примере фронтенда


Печатную версию мы презентовали на UWDC, чтобы понять, нужен ли такой журнал вообще.
Оказалось, нужен: расширенный печатный выпуск везём осенью на DotNext, Heisenbug и HolyJS.

Пишите, чего не хватило: раскроем все тезисы во второй редакции журнала.

#magazines
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤7👍3👏3❤‍🔥2🐳2
✨ Сначала тесты, код потом

26 сентября наш руководитель Александр Шинкарев выступает на DotNext с докладом про Test-Driven Development на .NET-бэкенде.
В докладе чистая практика — на примере ToDo-приложения посмотрим разработку через E2E, интеграционные и юнит-тесты на реальном стеке: .NET 10, EF Core, PostgreSQL, Dev Container. Весь код будет открыт на GitHub.

Доказываем: TDD хоть и superpower, но не rocket science 🚀

https://dotnext.ru/talks/20010634-tdd-in-backend/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10⚡7🐳4
Что может быть хуже, чем скопированный в нескольких местах код, который нужно держать в синхронном состоянии?

Раньше у нас так было на фронтенде. Сайдбар был скопирован в 6 репозиториев микрофронтендов, и любую правку пунктов меню нужно было добавлять во все репозитории. А потом следить, чтобы доехали до продакшена все «одновременно».
Когда добавляли 7-ой сервис, мы решили — так больше нельзя. Вынесли сайдбар и другие общие части интерфейса в отдельный модуль на Module Federation.

В новой статье ретроспективно смотрим на два плагина для подключения Module Federation:
📍 на каком этапе развития они были 2 года назад и что с ними сейчас
📍 как выглядит конфиг настройки на Vite для обоих плагинов
📍 пристально вглядываемся в технические детали и ограничения

Местами будет сложно, но вы можете в навигации по статье найти интересующий вас раздел или сразу перейти к практическому примеру.

Приятного хардкорного чтения!

💯 https://habr.com/ru/articles/1085936/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🤩4🐳2