Date | Title | Description |
02.11.2024 | Navigating the Waters of .NET in Yandex Cloud Functions | In the ever-evolving landscape of cloud computing, Yandex Cloud Functions emerges as a player worth examining. This serverless computing model, known as Function as a Service (FaaS), allows developers to run code in response to events witho... |
31.10.2024 | Что не так с .NET в Yandex Cloud Functions | Привет! Я познакомился с Yandex Cloud Functions, когда готовил доклад на DotNext 2024. В процессе обнаружил особенности платформы. О них я и расскажу.
В статье объясню специфику Яндекс Функций. Покажу свой эксперимент с запуском приложений,... |
30.10.2024 | Путь к мастерству: Как стать успешным разработчиком | 👩💻 Программирование — это путь, полный вызовов и возможностей для роста. Я начал этот путь в 2010 году как Junior-разработчик и на данный момент достиг позиции Tech Lead, продолжая развиваться в профессии. Накопленный опыт позволяет мне с ... |
28.10.2024 | Streamlining Localization in Flutter: A Guide to Efficient File Sharing | In the world of app development, efficiency is king. When building large applications, developers often break their projects into smaller packages. This modular approach is beneficial, but it can lead to complications, especially when it co... |
26.10.2024 | Two-Tier Data Model архитектура: концепт и мысли | Краткая цель статьи — сделать потоки данных проще, более тестируемыми и управляемыми с DTO и Runtime Model структурой.
Эта статья — набор мыслей и экспрессии опыта моего текущего видения этой проблемы, как комбинации опыта от работы над про... |
24.10.2024 | Философия чистого кода: эмпатия гораздо важнее мастерства | «Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям», — сказал культовый британский разработчик программного обеспечения Мартин Фаулер и в этом утверждении присутствует доля правды. То есть, ... |
15.10.2024 | Декомпозиция монолитной системы с использованием Strangler-паттерна | Привет! Меня зовут Дима, я архитектор в Купере. Хочу сегодня рассказать о шаблоне проектирования Strangler, который мы использовали для выноса бизнес-логики из монолитной системы в отдельный сервис.
Сначала обратимся к первоисточнику, а зат... |
04.10.2024 | The API Testing Revolution: Ensuring Stability in a Microservices World | In the fast-paced world of software development, APIs are the lifeblood of applications. They connect disparate systems, enabling seamless communication and functionality. However, with the rise of microservices architecture, the complexity... |
01.10.2024 | Navigating the Data Jungle: Mastering Python Database Interactions | In the digital age, data is the lifeblood of applications. It flows like a river, carrying vital information. But to harness this power, developers need the right tools. Python offers a robust ecosystem for database interactions, and unders... |
01.10.2024 | Проверка содержимого PDF-файлов средствами Python и pdfminer. Часть 2 | В предыдущей части статьи мы рассмотрели общие подходы к тестированию PDF и познакомились с тем, как библиотеки pdfminer и PDFQuery помогают нам получать детальную информацию об объектах. Достаточно ли нам этой информации? Далеко не всегда.... |
27.09.2024 | Контрактные тесты с Pact: гарантия стабильности микросервисов | Привет! Меня зовут Юрий, я старший разработчик в Купере в команде Ruby Platform — занимаюсь разработкой внутренних библиотек, инструментов мониторинга и поддержки микросервисов.
У нас в Купере более 200 микросервисов на Go, Ruby, JS, Python... |
24.09.2024 | The Art of Refactoring: A Deep Dive into Code Transformation | Refactoring is like sculpting. You start with a block of stone, rough and unrefined. With each chisel strike, you reveal the masterpiece within. In the world of programming, refactoring is the process of improving existing code without chan... |
24.09.2024 | С 80-х по 2024-й: как создавались и оптимизировались CI-тесты | Современные команды разработки тестируют каждое изменение кода перед мержем. Это не просто общепринятая традиция: наряду с ревью кода, это стандарт по умолчанию, применяемый практически во всех кодовых базах компаний. Мы называем его тестам... |
23.09.2024 | Рефакторинг вглубь | Рефакторинг – это “это контролируемая техника совершенствования структуры существующего кода” [Фаулер]. Сейчас уже написано так много всего о запахах кода и приёмах рефакторинга в микромасштабе (есть, например, книги и целые сайты). А я хоч... |
21.09.2024 | The Shift from Monoliths to Modular Monoliths: Shopify's Architectural Evolution | In the world of software development, architecture is the backbone. It shapes how applications are built, maintained, and scaled. Shopify, a titan in e-commerce, recently embarked on a transformative journey. The company transitioned from a... |
20.09.2024 | Деконструкция монолита: Максимально производительный подход к проектированию программ | Как и почему компания Shopify перешла от монолитной архитектуры к модульно-монолитной.
У компании Shopify одна из крупнейших баз кода на Ruby on Rails. Над ней трудились более десяти лет свыше тысячи разработчиков. Она включает множество ра... |
13.09.2024 | Navigating the Microservices Maze: A Guide for Developers | In the world of software development, microservices are the new black. They promise flexibility, scalability, and the ability to innovate at lightning speed. But diving into microservices can feel like stepping into a labyrinth. Developers ... |
13.09.2024 | Тестирование исключений | Размышления о тестировании за пределами «идеального сценария» (happy path).
Разработка через тестирование (TDD) — это отличный метод, который позволяет быстро получать обратную связь по идеям дизайна и реализации, а также быстрее прийти к р... |
12.09.2024 | Микросервисы для тех, кто прикидывается разработчиком. Часть 2 | И вот настал тот день, когда я наконец соизволил встать с дивана и дописать следующую статью о микросервисах. Кто не в теме - в прошлой части мы выяснили, как сильно неправильная пунктуация и тупые приколы могут раздражать. Ну и немного обс... |
04.09.2024 | Диаграммы последовательности — единственная хорошая вещь, которую UML привнес в разработку ПО | От переводчика:
Я веду телеграмм‑канал, посвященный системному анализу, и провожу тренинги, и в какой‑то момент задался вопросом — а актуален ли сейчас UML? Если посмотреть обсуждения на SO, Reddit'e и в блогах — видно очень много постов в ... |
03.09.2024 | Building a Robust API: Lessons from a Decade of Development | In the fast-paced world of technology, building a reliable API is akin to constructing a bridge. It must withstand the test of time, handle heavy traffic, and remain flexible enough to adapt to changing needs. The journey of creating a robu... |
03.09.2024 | Тестирование ML систем | Приходят как-то на синк разработчик, тестировщик и time.sleep(1), а он им и говорит: ребята, мы что, в анекдоте?
→ Ну почти: они в подводке к статье про то, как тестировать мл системы, что бы не потерять $100k.1. Зачем тестировать ML-систем... |
02.09.2024 | Как создать идеальную команду | Всем привет. Знакомые, коллеги, друзья, часто спрашивают меня, как построить команду. «Вот ты свои строишь так, что они спустя некоторое время горы сворачивают, хотя отдельные сотрудники не являются гениями. Как ты это делаешь?» Как‑то само... |
28.08.2024 | От десятков до сотен тысяч RPS: как мы создали API, который развивается 10 лет без дропа обратной совместимости | Привет! Меня зовут Вадим Клеба, я руковожу командой бэкенд-разработки в Телемосте. Последние девять лет я разрабатываю высоконагруженные распределённые системы. Раньше я разрабатывал search-as-a-service-решение с эффективным полнотекстовым ... |
08.08.2024 | Владелец кода, отзовись! Как построить и применить систему владения кодом | Привет, Хабр! Меня зовут Марат, я работаю Android-инженером в большом проекте в приложении СберИвестиции. Над ним трудится около 30 разработчиков и множество кроссфункциональных команд, написано более миллиона строк кода, расположенного в б... |
05.08.2024 | ООП не определяет архитектуру проекта | Изначально этот материал планировался как урок в PHP-курсе по полиморфизму. Но он, в конце концов, перерос сам урок, и я решил сделать из него отдельную статью. В ней практически ничего PHP-специфичного, поэтому рекомендуется для прочтения ... |
30.07.2024 | Инверсия управления Контейнеров и паттерн Инъекции Зависимостей — перевод | Это перевод статьи Мартина Фаулера “Inversion of Control Containers and the Dependency Injection pattern
В сообществе Java наблюдается бурный рост числа легковесных контейнеров (lightweight containers), которые помогают собрать компоненты и... |
27.07.2024 | The Art of Reading: A Guide to Essential and Avoidable Books | Books are windows to new worlds. They can inspire, educate, and transform. Yet, not all books are created equal. Some are gems, while others are duds. In this article, we will explore a curated list of must-read books that can enhance your ... |
23.07.2024 | Стабы и моки нарушают инкапсуляцию | Отдавайте предпочтение фейкам, а не динамическим мокам.
С некоторых пор я предпочитаю использовать фейки вместо стабов и моков, поскольку использование фейковых объектов вместо других тестовых дублёров делает тестовые наборы более надёжными... |
23.07.2024 | Мой список лучших и худших книг | Сегодня я расскажу про книги которые помогли мне узнать что-то новое и полезное, а также расскажу про те книги, которые не в коем случае не надо читать. Место в списке ничего не значит, книги про разное и расставить их в топ невозможно.Спис... |
26.06.2024 | Анализ влияния тестирования | Test Impact Analysis (TIA, анализ влияния тестирования) — это современный способ ускорить этап автоматизации тестирования, который работает путём анализа графа вызовов исходного кода. Благодаря этому можно определить, какие тесты необходимо... |
25.06.2024 | Как отказаться от скриншотов в тестировании | Часто ли вы сталкивались с ситуацией, когда тесты падали из-за небольшой разницы между скриншотами? Например, не успел исчезнуть спиннер, не докрутился скроллбар, уведомление исчезло чуть быстрее, чем нужно и так далее.
Часто ли вы сталкива... |
24.06.2024 | О неотъемлемой сложности систем | В зависимости от личных предпочтений и потребностей, от уровня абстракций, на котором моделируется мир, а также от места в спектре между идеализмом и цинизмом, можно с полным правом сказать, что работа разработчиков ПО заключается в следующ... |
22.06.2024 | Мартышка и АйТи | Generated by Dall-E 4Введение
День добрый, господа хорошие. На данный момент я в IT уже порядка 15 лет. Большую часть времени я был разработчиком, и даже уход в ветку менеджмента скорее дал толчок к работе над личными пет-проектами, чем к о... |
20.06.2024 | Клятва на крови: контрактные тесты с Pact в .NET. Часть первая | Вторая часть статьи о тестировании асинхронных сценариев и PactBroker - тут.
Необходимость написания тестов каждый определяет сам для себя. Модульные и интеграционные тесты вполне могут спасти нас от ошибок, вызванных нашей забывчивостью: у... |
17.06.2024 | Древние свитки CI/CD: смыслы, которые мы потеряли | Привет, Хабр. Меня зовут Владимир Утратенко, я — Head of Infrastructure and Security в Uzum Market. У меня богатый опыт найма DevOps-инженеров, ведь последние 6 лет я — нанимающий менеджер. А ещё много лет подряд занимаюсь DevOps как модель... |
10.06.2024 | Интеграционные тесты | Интеграционные тесты помогают определить, правильно ли работают после соединения разные юниты программного обеспечения, которые были разработаны независимо друг от друга. Термин «интеграционные тесты» стал размытым даже в рамках неточных ст... |
05.06.2024 | Избавляемся от легаси: паттерн «Перехват Событий» | Когда мы постепенно переводим легаси систему на новые рельсы, возникает множество случаев, когда само легаси и то, чем мы его заменяем должны взаимодействовать. Поскольку внесение изменений в легаси — это всегда долго, дорого и сложно, нам ... |
22.05.2024 | Распределённый BPMS. Опыт Московской Биржи | Всем привет!
Меня зовут Сергей Максимов и я руковожу разработкой в Центре Управления Процессами (ЦУП) Московской Биржи. В статье я хочу рассказать о нашем опыте автоматизации бизнес-процессов (БП), когда система должна быть не только удобно... |
16.05.2024 | µDjango — технология создания асинхронных микросервисов | µDjango — технология для асинхронных микросервисов
Примерно 5 годами ранее появления FastAPI была обнародована идеология построения легковесных микросервисов на Django, которая стала актуальной только после внедрения асинхронности в этом фр... |
15.05.2024 | Бегство от реальности: как перестать подгонять свой код под устаревшие шаблоны | Привет, Хабр!
Как описать хороший код в трех словах? Исходя из опыта — это код, который [приятно поддерживать и эксплуатировать]. СОЛИД, SOLID, СОЛИД... Редко код ревью обходится без упоминания этих принципов, но для разработчика это не озн... |
03.05.2024 | Lombok — как с ним жить, а не страдать или вариант best practics для lombok | Когда я впервые увидел - lombok, у меня возникло, дикое сопротивление. Было очевидное ощущение, что что-то не так. Я думаю, у многих консервативных разработчиков возникло такое же ощущение. Однако, lombok популярен. Люди его любят, люди его... |
29.03.2024 | Проектируем микросервисы с Reactive Manifesto: 4 принципа распределенных систем | Работаете с распределенными системами или только пытаетесь к ним подобраться? Проектировать их с нуля бывает сложно и страшно: чтобы учесть все нюансы, нужен определенный багаж знаний.
На помощь приходит Reactive Manifesto — документ, котор... |
28.03.2024 | А в чем проблема работать с файлами? | Приветствую.
Год назад меня сильно увлекла тема отказоустойчивости приложений. Я начал изучать различные аспекты ее реализации в программах и больше всего меня заинтересовал процесс работы с диском. Ресурсов для изучения много, но они все р... |
18.03.2024 | Анемичная модель предметной области и логика в сервисах | Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель предметной области (Rich domain model), где лог... |
15.03.2024 | Элегантный стек данных для встроенной аналитики | Контекст
По работе мне доводилось иметь дело с аналитическими стеками любых конфигураций и размеров. Мы на собственном опыте изучили, что цена стека для встроенной аналитики данных, расположенного за фронтендом, может моментально вырасти на... |
13.03.2024 | Тестирование без моков: язык паттернов. Часть 2 | Продолжение первой части.Паттерны инфраструктуры
Инфраструктурный код предназначен для взаимодействия с внешним миром. Хотя он может содержать некоторую логику, она должна быть направлена на облегчение работы с инфраструктурой. Всё остально... |
07.03.2024 | Тестирование без моков: язык шаблонов. Часть 1 | Автоматизированные тесты очень важны. Без них программистам приходится тратить огромное количество времени на ручную проверку и исправление кода.
К сожалению, многие автотесты также тратят огромное количество времени. Простым и очевидным ва... |
29.02.2024 | Изоляция в тестах с Kafka | Опыт запуска Kafka в тестовых сценариях достиг высокого уровня удобства благодаря использованию Testcontainers и улучшенной поддержке в Spring Boot 3.1 с помощью аннотации @ServiceConnection. Однако написание и поддержка интеграционных тест... |
16.02.2024 | Микросервисы и RabbitMQ в Docker | Микросервисная архитектура предполагает декомпозицию монолитного приложения на несколько полностью независимо развёртываемых и масштабируемых сервисов. За пределами этого базового определения, то, что представляет собой микросервис, может б... |
12.02.2024 | Анализируем виды тестов для Frontend | С развитием веба сайты превратились в сложные приложения, которыми ежедневно пользуются десятки и сотни миллионов людей: почта, облачные хранилища, соцсети, маркетплейсы, стриминговые платформы и т. д. И каждое из них должно работать коррек... |
09.02.2024 | Меняем моки репозиториев на in-memory реализации | Одним из важнейших аспектов тестирования наряду с поиском ошибок в приложении является время, необходимое для его проведения. Если тестирование приложения занимает от нескольких минут до нескольких часов, то оно не подходит для разработки с... |
12.01.2024 | Четыре метрики, изменившие мой проект | Привет, Хабр! Я Федор Щудло, team lead и fullstack-разработчик. Всего я в разработке 15 лет, из них 11 в роли team lead.
Три года назад я сменил работу и занялся проектом, состояние которого можно описать кратко: ему 25 лет.
За этот долгий ... |
07.01.2024 | Чистая архитектура на примере | Приветствую!
Недавно познакомил друга с понятием "Чистая архитектура". С того момента он часто атаковал меня вопросами по типу "А как это сделать? А как то сделать?". В один момент хотел просто кинуть ему ссылку с тутори... |
30.12.2023 | Тестирование новых версий сервисов с помощью Canary Deployment (Kubernetes) | Обзор текущей ситуации.
Что такое Canary deployment.
Развертывание Canary Deployment c помощью Kubernetes.
Разделение трафика
Мониторинг и проверка
Масштабирование canary-deployment.
Заключение.
Список источников.
Не так давно я начал изуче... |
29.12.2023 | Как Додо Пицца доставляет свежий код: история мобильного CI для iOS | Мобильная разработка под iOS особенная: собрать приложение можно только на macOS, среда разработки по сути только одна, большая часть принятого в сообществе тулинга написана на Ruby, свой пакетный менеджер появился только пару лет назад. Тя... |
20.12.2023 | Победа над ORM путем кодогенерации | Сразу хочу отметить перед читателем, что это не просто вольные рассуждения на тему, а в том числе и презентация моей библиотеки для Python, которую можно найти на github и установить через pip, и которая трудится в моей многопользовательско... |
08.12.2023 | Детализированные стратегии кэширования динамических запросов | Сегодня я хотел бы поговорить о стратегиях кэширования для совокупных запросов к часто обновляемым данным, основанным на времени. На предыдущем месте работы я провел немало «мозговых циклов» и с удовольствием поделюсь некоторыми своими нахо... |
24.11.2023 | Сервисы дружитес. Как платформа упрощает создание интеграций без ошибок | Всем привет! Кратко обо мне: меня зовут Никита и я уже третий год работаю над тем, чтобы платформа СберМаркета становилась лучше день ото дня. Мой основной язык программирования — Go, но, учитывая специфику платформенной разработки, еще и b... |
12.11.2023 | Утверждение, что «199 из 200 соискателей не умеют писать код», некорректно | Насколько правомерно утверждение, что 199 из 200 соискателей вакансий в сфере программирования по факту программировать не умеют? Откуда взялось это утверждение, и какие основания под собой имеет?
Заголовок получился громоздкий, но в его ос... |
30.10.2023 | О сложности и монолитах | Изображение сгенерировано с помощью DALL·E. Запрос: a complex monolith in a server room, with the faces of IT consultants with suits engraved in it with twisted faces, mathematical formulations about complexity floating around, and with a m... |
19.10.2023 | Простые шаги к эффективному code review | Всем привет! Меня зовут Владислав Шиханов, я ведущий программист в CDEK. В нашей компании работает 500+ IT-специалистов, именно мы создаём продукты и сервисы, из которых и состоит СДЭК. Моя команда разрабатывает сервисы для автоматизации пр... |
16.10.2023 | Зачем нужны модульные тесты и как заставить их работать на вас | Программное обеспечение
Преимущество программного обеспечения заключается в том, что оно может изменяться. Именно поэтому его называют "soft" обеспечение - оно более податливо, чем аппаратное обеспечение. Отличная команда инженеро... |
09.10.2023 | Микросервисы победили. Или не совсем | «Мы хотим сделать систему по учету персонала. Только у наших архитекторов есть требование, что все у нас должно быть на микросервисах». Это, пожалуй, самый бесячий заход, который нам приходится слышать, как разработчику Jmix – платформы быс... |
07.10.2023 | Масштабирование приёмочных тестов | Эта глава является продолжением главы "Введение в приёмочные тесты". Готовый код этой главы можно найти на GitHub.
Приёмочные тесты очень важны, они напрямую влияют на вашу способность уверенно развивать систему с течением времени... |
06.10.2023 | Введение в приёмочные тесты | В компании $WORK мы столкнулись с необходимостью "плавного завершения работы" наших сервисов. Грациозное завершение работы позволяет убедиться в том, что система правильно финиширует перед завершением. В качестве аналогии можно пр... |
03.09.2023 | Моки и мокизмы, программистский идеализм, правильная изоляция в тестировании | Не так давно у меня появился интерес узнать, какие вообще нынче есть подходы и отношения к Юнит тестированию. Сделано это было скорее в познавательных целях. Сравнив труды по популярности, я решил ознакомиться с книгой "Unit Testing: P... |
29.08.2023 | Инструменты тимлида: как управлять техническим бэклогом | Привет! Меня зовут Дима Симушев, я технический руководитель юнита Fashion&Electronics в Авито. И это ещё одна статья про управление техническим бэклогом. В отличие от многих других статей, я не хочу фокусироваться на классификации и при... |
17.08.2023 | Зачем писать юнит-тесты на фронтенд? | Привет, хабр! Меня зовут Александр, я работаю фронтенд-разработчиком в компании Nord Clan.
Сегодня речь пойдет про тесты… Про юнит-тесты. Думаю, что почти все слышали про юнит-тесты, пробовали их писать, и, возможно бросали это «гиблое дело... |
23.07.2023 | Элегантные «квантовые» микросервисы | 1. Введение
Полтора года назад автор опубликовал на Хабре статью "Математические аспекты хорошего кода" [1]. Примерно в это же время автору случилось войти в команду, которой предстояло разработать микросервисную АСУ.
Изложенные в... |
18.07.2023 | Почему разрабатывать ПО действительно сложно? | Неизменные изменения
Давайте начнем с тривиального, но неоспоримого факта: программное обеспечение постоянно развивается – устаревает и обновляется, видоизменяется и дает дорогу новому.
Заметным исключением является наборная система TeX, ра... |
11.07.2023 | Изнанка архитектуры, или Менять нельзя оставить | Около десяти лет назад мы в CUSTIS реализовали систему распределения товара для «Спортмастера». Со времени ее запуска изменилось многое: корректировались цели заказчика, менялись возможности и потребности рынка, появились новые способы авто... |
05.07.2023 | Как я проходил опросник по c# | Только что мне предложили пройти анкету с вопросами по c#, ну я быстро ответил и довольный отправил. Удивило потом то что я оказывается мало на что ответил правильно. Было странно, вопросы то вроде простые, ну я начал разбираться и сравнива... |
27.06.2023 | Stop the world в Kafka или спасти рядового consumer :) | Меня зовут Андрей Бугаков, разработчик в компании Datanomica. Я решил написать эту статью после ошибки в production, думаю, она может оказаться полезной другим разработчикам. Ниже рассказал, как в рамках разработки нового сервиса мы выбирал... |
26.06.2023 | Мобильная разработка за неделю #494 (19 — 25 июня) | В этом выпуске перечисления Swift и осознанная оптимизация Compose, конфетные сетевые запросы и воображаемые проблемы, приложение для поиска друзей, пустые состояния, цвета Ripple, декораторы и многое другое. Заходите!
В нашем Telegram-кана... |
19.06.2023 | Реализация Transactional outbox pattern и немного DDD | Уверен, что многие, кто интересовался подходами к разработке микросервисной архитектуры, знакомы с трудами Криса Ричардсона на эту тему и уже встречали transactional outbox pattern. А для тех, кто не знаком, кратко расскажу основную идею:
В... |
05.06.2023 | Продакты VS Разработчики: как недоверие и отказ от сотрудничества замедляют выход продукта | Секрет успешного стартапа — в тесном сотрудничестве продуктовой команды и команды разработчиков. Но каждая команда по-своему представляет успех в работе и цели, которые нужно реализовать. Например, программисты хотят создать идеально масшта... |
30.05.2023 | Как Cypress развивался в качестве инструмента автоматизации тестирования фронтенда в QuintoAndar | От хакатона 2 года назад до 20+ фронтенд-приложений, выполняющих интеграционные тесты с Cypress. Проблемы и решения, с которыми мы столкнулись при автоматизации тестирования интерфейсов на данный момент.Почему Cypress
Cypress — это мощный и... |
23.05.2023 | О многообразии форм однонаправленных архитектур в Swift | Как SwiftUI и async/await изменили концепцию контейнеров состояний за последние шесть лет
Я уже писал о концепции “контейнеров состояний” в 2017 году. Шесть лет спустя мне все еще нравится строить на их основе большинство своих приложений, ... |
16.05.2023 | Тебе не нужно классическое ООП в твоём бэкенд микросервисе | Результат генерации по запросу «Классическое объектно-ориентированное программирование», стиль: 4k. Все изображения в статье сгенерированы нейросетью Kandinsky 2.1.
Заявление звучит довольно громко и, я бы даже сказал, провокационно. Но в п... |
11.05.2023 | Thoughtworks Celebrates 30 Years of Software Excellence and Innovation | HONG KONG, May 11, 2023 /PRNewswire/ -- On May 10, 2023, Thoughtworks (NASDAQ: TWKS), a global technology consultancy that integrates strategy, design and engineering, celebrates our 30-year anniversary of solving our clients' most complex ... |
08.05.2023 | Про тестирование мобильных приложений. Часть 3. Cквозное (UI, e2e) тестирование | Ранее мы с вами познакомились с пирамидой тестирования и ее основанием. В данной же статье предлагаю перейти к сразу к вершине пирамиды.
На вершине пирамиды, представленной в статье 1, расположены сквозные тесты. В контексте сквозных тестов... |
04.05.2023 | Укрощение имен. Как нейминг помогает оптимизировать код | Что такое имя? Имя — это ярлык, дескриптор, указатель в вашей памяти. Это краткое изложение сложной идеи. Оно позволяет ссылаться на «экономику» или «догфудинг» в середине предложения, избегая развернутого на три абзаца объяснения термина.
... |
30.04.2023 | Оптимизация бэкенда приложения с примерами на Symfony. Часть 2 | Всех приветствую!
Это продолжение серии статей, где мы рассмотрим еще несколько методов, которые помогут улучшить производительность приложения. Мы поговорим о том, как использовать entity manager, unit of work, bulk inserts и batching proc... |
20.04.2023 | Применение InnerSource в энтерпрайзе | InnerSource мне, как инженеру, очень симпатизирует, потому что позволяет сделать цепочку поставки бизнес-ценности децентрализованной. При всей красоте этого подхода у него есть трудности в реализации. Эти сложности можно разделить на технич... |
04.04.2023 | Как эффективно тестировать мобильные приложения? Пятиуровневая пирамида тестирования | Тестирование, вероятно, является одной из самых горячих тем в разработке программного обеспечения. Все согласны с необходимостью качественного тестирования и определенного количества тестов (или покрытия кода). Но каков масштаб, цель и зада... |
31.03.2023 | Как не превратить микросервисы в киберпанк-дистопию | Моя личная сага о микросервисах и книга, которая помогла мне найти путь в светлое будущее
Вашему вниманию представлена квинтэссенция подготовленной мной серии докладов под названием «Распределенное понимание распределенных систем» (“Distrib... |
28.03.2023 | Как прогнать все UI-тесты на мерж-реквесте и не состариться | Рано или поздно большой продукт сталкивается с проблемой количества тестов, а точнее с тем, сколько времени нужно, чтобы их прогнать. При этом не все команды готовы тратить кучу сил на оптимизацию этого процесса. Гораздо проще решить пробле... |
11.03.2023 | Переходите на микрофронтовую архитектуру | Содержание статьи
Что такое микрофронтенд?
Проблема монолитного приложения
На что стоит обращать внимание при выборе архитектуры?
Примеры архитектурных решений
В каких ситуациях стоит использовать Module Federation?
Проблемы
Полезные ссылки... |
07.03.2023 | Data Mesh: что это такое и для чего он нужен инженерам | Команда VK Cloud перевела статью о новом подходе к построению архитектуры данных Data Mesh с помощью lakeFS — системы управления версиями данных с открытым исходным кодом, которая преобразует хранилище объектов в Git-подобные репозитории. Р... |
06.03.2023 | Spring-потрошитель: жизненный цикл Spring Framework | Введение
Ни для кого не секрет, что Spring Framework один из самых популярных фреймворков для приложений на языке Java. Он интегрировал в себя самые полезные и актуальные технологии, такие как i18n, JPA, MVC, JMS, Cloud и т.п.
Но насколько ... |
18.02.2023 | Гайд по эвент-сорсингу | Считается, что эвент-сорсинг это просто паттерн работы с данными, но применение эвент-сорсинга на деле приводит к большому числу изменений в дизайне приложений. К тому же, сделать эвент-сорсинг правильно не так просто, с одной стороны потом... |
09.02.2023 | Что такое GitOps и почему он (почти) бесполезен | Новый авиалайнер. Входит стюардесса в пассажирский салон: «Вы находитесь на нашем новом авиалайнере, в носовой части самолёта у нас находится кинозал, в хвостовой — зал игровых автоматов, на нижней палубе — бассейн, на верхней — сауна. А те... |
09.02.2023 | Делай нейминг как сеньор | В чём разница между сочинением третьеклассника и статьёй в крупном таблоиде? Любой из нас сходу определит, что есть что. Даже если оба текста описывают одно и то же событие. А чем отличается код сеньора от кода мидла?
Разница в мелочах. В м... |
09.02.2023 | Делай нейминг как сеньор | В чём разница между сочинением третьеклассника и статьёй в крупном таблоиде? Любой из нас сходу определит, что есть что. Даже если оба текста описывают одно и то же событие. А чем отличается код сеньора от кода мидла?
Разница в мелочах. В м... |
31.01.2023 | JavaScript: заметка об операторе конвейера | Привет, друзья!
В этой небольшой заметке я хочу рассказать вам об одном интересном предложении по дальнейшему совершенствованию всеми нами любого JavaScript, а именно: об операторе конвейера (pipe operator) |>.
На сегодняшний день данное... |
27.01.2023 | Фича-тогглы: инструкция по применению | Всем привет! Я Павел, тимлид команды SLA, и занимаюсь оценкой надёжности Авито. В своей прошлой статье я рассказал про стратегии ветвления и Trunk Based Development. Если не читали, переходите по ссылке. А сейчас я хочу рассказать про фича-... |
23.01.2023 | Функциональное мышление | TL;DR: Конструирование приложения с чистой функцией в основе может стать первым шагом к идеалу «функционально-центричной императивной оболочки», что может упростить тестирование приложения и снизить планку его сложности.
Зачем?
Упрощение.
П... |
17.01.2023 | Nextdata launches to transform a vision of ‘data mesh’ into reality
Show your support for our mission by joining our Cube Club and Cube Event Community of experts. Join the community that includes Am... | Nextdata quietly emerged from stealth mode today, providing a glimpse of a company that intends to build technology to help organizations decentralize data at large scale.
The goal of the firm is to realize the concept of the “data mesh” an... |
17.01.2023 | Nextdata launches tools to transform its vision of a ‘data mesh’ into reality
Show your support for our mission by joining our Cube Club and Cube Event Community of experts. Join the community that i... | Nextdata is emerging from stealth mode today with the launch of a new toolset that’s designed to help organizations decentralize analytical data at large scale and finally realize the concept of the “data mesh” and its promise of revolution... |