Как стать автором
Обновить
4
0
Алексей Старчиков @alexeystarchikov

Пользователь

Отправить сообщение

Чистая архитектура на примере

Уровень сложностиПростой
Время на прочтение27 мин
Количество просмотров42K

Познакомил друга с понятием "Чистая архитектура" и он стал часто спрашивать меня как лучше сделать то или другое. Хотел дать ему к какому-нибудь туториал, но, к удивлению (плохому), не нашел подходящего.

Поэтому выкладываю небольшой обзор:

1.. Что такое чистая архитектура;
2.. Как можно реализовать;
3.. Мои мысли.

Читать далее
Всего голосов 13: ↑11 и ↓2+11
Комментарии23

Пишем простые расширения VS Code для автоматизации задач командной строки

Время на прочтение8 мин
Количество просмотров6.9K

VS Code – популярный редактор исходного кода. Им пользуются разработчики многих компаний, в том числе и мы в МойОфис. Мы привыкли использовать его для написания кода (включая сборку, тестирование и отладку), но при этом часто упускаем из виду, что благодаря встроенным возможностям по разработке расширений, VS Code можно легко превратить в средство автоматизации практически любых повседневных задач в нашей работе. Например, тех, которые мы привыкли рутинно делать в командной строке.

Для написания расширений используется Typescript, который достаточно просто освоить. Однако существенным препятствием является то, что в документации часто нет ответов на вопросы, которые возникают при реальной разработке.

В серии статей, посвящённых не самым очевидным вариантам использования VS Code, я наглядно разберу процесс разработки шаг за шагом на примерах подходов из реальных расширений. Надеюсь, это сэкономит ваше время и усилия при написании собственных расширений и избавит от необходимости штудировать горы документации и чужого кода.

Читать далее
Всего голосов 18: ↑17 и ↓1+17
Комментарии11

Как рисовать Sequence без боли и страданий в PlantUML

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров9.3K

Привет! Меня зовут Настя, я старший системный аналитик в X5 Tech. Я рисую sequence-диаграммы каждый день на протяжении четырёх лет. За это время я прошла все круги ада по Данте, то есть попробовала разные инструменты для рисования этих самых диаграмм. Пока не встретила его – PlantUML. 

Что удивительно, инструмент довольно не новый, но тем не менее лучше него я пока не встречала. А ещё удивительно, что он не особо популярный. Когда мы запустили в управлении системного анализа первый воркшоп по PlantUML, за 3 минуты после анонса пришли 12 заявок от аналитиков разных грейдов – от Junior до Lead. 

В процессе подготовки материалов к воркшопу мы искали статьи и литературу, которые помогли бы дополнительно изучить sequence-диаграммы в PlantUML. Ничего интересного мы не нашли. 

На самих воркшопах участники часто говорили о том, что они пытались самостоятельно изучить PlantUML, но их пугало то, что нужно писать какой-то код и учить какой-то синтаксис. Документация достаточно обширная, но информации о том, как последовательно строить sequence почти нет. 

Поэтому и появилась эта статья. 

Почему PlantUML?
Всего голосов 28: ↑28 и ↓0+34
Комментарии35

Стенд для нагрузочного тестирования на Testcontainers

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2K

Использование Testcontainers кардинально улучшило процесс работы с тестовыми сценариями. Благодаря этому инструменту, создание окружений для интеграционных тестов стало проще (см. статью Изоляция в тестах с Кафкой). Хотя нагрузочное тестирование встречается реже, чем функциональное, оно может быть гораздо более увлекательным. Изучение графиков и анализ работы конкретного сервиса может доставить настоящее удовольствие. Такие задачи редки, но для меня они особенно захватывающие.

Цель данной статьи — продемонстрировать подход к созданию стенда для нагрузочного тестирования в том виде, в котором пишутся обычные интеграционные тесты: в форме spock-тестов с использованием Testcontainers в среде Gradle проекта. В качестве утилит нагрузочного тестирования используются Gatling, WRK и Yandex.Tank.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

.NET Aspire — империя дотнета наносит ответный удар

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров30K

Когда я первый раз услышал про .NET Aspire, я подумал что это какая-то очередная лажа от Майкрософта, про которую все забудут через неделю.

Особенно, учитывая какую дичь часто завозят в шарп (например те же ужасно спроектированные Primary Constructor'ы про которые я писал, или вот прикол-пропозал от самого Тоуба). Так что ожидания у меня, честно говоря, были ниже нуля.

Но попробовав его лично, я был, честно говоря, шокирован. Трепещите, жависты!! Трепещите гошники! Трещепищите питонисты - такого вы еще точно не видели.

Я даже представить не мог, что DevEx можно сделать настолько офигительным.

Узнать про Aspire без смс и регистрации
Всего голосов 38: ↑36 и ↓2+42
Комментарии51

Firebase Analytics в KMP: Android, iOS, Desktop (MacOS, Windows)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров981

Я — Денис, Middle Android-разработчик в «Black Bricks». В этой статье я расскажу о том как я подключил Firebase Analytics в KMP проект для Android, iOS, Desktop (MacOS, Windows).

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Как сделать форму согласия на обработку персональных данных на сайте. Справится даже школьник

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.6K

Привет, Хабр! Меня зовут Тимур уже два года я развиваю в HFLabs продукт «Центр управления согласиями» для энтерпрайза. Тема эта интересная, болезненная и острая одновременно, ведь персональные данные собирает не только крупный бизнес, а вообще все. Любой сайт — от продажи крафтового печенья до крупного автодилера и страховой компании — имеет если не форму регистрации, то анкету для подписки на новости уж точно. 

Когда-то я уже делал разбор форм ввода персональных данных на разных сайтах. Выяснил, что часто они сделаны «как исторически сложилось», а не как требуется. Грешат этим не только небольшие компании, но и крупные игроки — например, банки.

Если сайт сделан N лет назад и на CMS (а такое встречается сплошь и рядом), то нередко используется стандартный инструментарий самой CMS. Плюс фантазия заказчика, умноженная на осведомленность разработчика о том, как сделать эти самые формы регистрации. Получается, как смогли, так и сделали. 

Мы подготовили инструкцию, как самостоятельно настроить формы ввода. Для примера взяли CMS «1С-Битрикс: Управление сайтом» и в основном ту самую стандартную функциональность CMS. Материал будет полезен web-студиям и отдельным web-мастерам, а также всем, кто так или иначе работает с согласиями — пусть и в других системах. Расскажем, как формы должны выглядеть и как объяснить заказчику, почему предпроставленная галочка — это не очень хорошо. 

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии2

TMS на замену TestRail: писали для себя, а выложили в open source

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров11K

В прошлом году TestRail прекратил предоставлять и продлевать лицензии компаниям из России, поэтому мы в YADRO решили разработать собственную тест-менеджмент систему TestY. Опирались на опыт работы с другими сервисами, чтобы добавить тот функционал, которого не хватало нашим командам тестирования. За несколько месяцев написали core-часть системы и выложили ее в open source, чтобы другие компании и разработчики, для которых актуален вопрос лицензионной чистоты используемого софтай, пользовались решением и развивали его.

В этой статье рассказываем об отличиях TestY от других TMS и преимуществах нашей системы для команд любого размера. Спойлер: в TestY могут одновременно работать 300 тестировщиков — система справляется. Для тех, кто хочет опробовать TestY в своей команде, в конце статьи есть короткая инструкция, как ее развернуть.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии12

Как оценивать работу тестировщиков по науке

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.6K

Тестировщик с 50-летним стажем Александр Александров рассказывает про количественное управление процессом тестирования: какие метрики в ИТ-проектах бывают, как можно спрогнозировать количество дефектов в коде и зачем вообще оценивать результаты тестирования по численным KPI.

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии6

Ликбез по вложенной прокрутке в Jetpack Compose

Время на прочтение11 мин
Количество просмотров2.4K

В основе большинства приложений для Android лежат списки. За многие годы появилось множество различных решений, реализующих взаимодействие других компонентов пользовательского интерфейса со списками — например, как панель приложения реагирует на прокрутку списка или как вложенные списки взаимодействуют друг с другом. Вы когда-нибудь сталкивались с ситуацией, когда один список находится внутри другого, и, прокручивая внутренний список до конца, вы хотите, чтобы внешний список продолжил движение? Это классический пример вложенной прокрутки!

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Drag and Drop в Jetpack Compose

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2K

В январе 2024, крупное обновление Jetpack Compose добавило два новых модификатора: dragAndDropSource и dragAndDropTarget. В этой статье я расскажу как реализовать эффект Drag and Drop в Jetpack Compose.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Автоматизация публикации Android приложений в Google Play и Huawei AppGallery — инструкция от А до Я

Уровень сложностиСложный
Время на прочтение19 мин
Количество просмотров15K

Всё еще публикуете релизы Android приложений вручную? Почитайте наше подробное руководство как полностью автоматизировать публикацию Android приложений в Google Play и Huawei AppStore через Gradle и CI/CD. Подробно от А до Я.

Почитать инструкцию
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Заблуждения Clean Architecture

Время на прочтение15 мин
Количество просмотров419K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии203

Ускоряем сборку за счёт миграции с kapt на ksp

Время на прочтение11 мин
Количество просмотров3.8K

Всем привет! Меня зовут Катя Гущина, я — Android-разработчик hh.ru. Хочу поделиться нашим опытом отказа от kapt в пользу ksp для обработки аннотаций и ускорения скорости сборки в большом проекте. В этой статье расскажу, что такое ksp, почему мы решили на него перейти, как проводили исследование и что из этого получилось.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Берём Glance Widgets под контроль

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.5K

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

Читать далее
Рейтинг0
Комментарии0

Миграция приложения на Jetpack Compose

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров9.8K

Jetpack Compose — крутой набор инструментов, который упрощает работу над интерфейсами для Android. С ним не нужно писать так много кода, как в обычных XML-разметках. А ещё в нём много полезных для разработчика фич — в этой статье расскажем о них подробно. И, конечно, выясним, как перенести UI и архитектуру приложений на Jetpack Compose и забыть View на 10 000 строк, как страшный сон.

Читать далее
Всего голосов 10: ↑9 и ↓1+10
Комментарии14

Оптимизация анимации на Compose: крутим лоадеры, ищем неочевидные функции

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров5K

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

Подписываем Android-приложение внутренним ключом Google Play для публикации в сторонних магазинах (RuStore, Huawei..?)

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров9.5K

В процессе публикации своего приложения в RuStore, я столкнулся с проблемой обновления сборки, первоначально-установленной из Google Play. Дело в том, что несколько лет назад, когда я размещал приложение в Google Play, я доверил управление ключами подписи Google App Signing. Это значит, что мой локальный ключ используется в качестве "загрузочного", а пользователи на устройства получают уже сборки, подписанные внутренним ключом Google. Прямого доступа к этому ключу нет, и, соответственно, я не могу подписать им сборку для RuStore для бесшовного обновления приложения.

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии2

Как бесплатно запустить Windows на Mac M1/M2 (Apple Silicon)

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров141K

В статье описана инструкция по установке Windows внутри MacOS.

Читать далее
Всего голосов 13: ↑10 и ↓3+7
Комментарии22

Как заонбордиться тимлиду — первые 90 дней на новой работе

Время на прочтение7 мин
Количество просмотров9.9K

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

Ещё дадим несколько советов на тот случай, если всё-таки не удаётся показать результат за отведённое время.

Читать далее
Всего голосов 12: ↑11 и ↓1+13
Комментарии5
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Lead