Как стать автором
Поиск
Написать публикацию
Обновить
95.42
AGIMA
Крупнейший интегратор digital-решений
Сначала показывать

Почему джуны — это хорошая инвестиция

Большинство компаний неохотно нанимают начинающих разработчиков. Согласно статистике Хабр Карьеры, только 5% опубликованных вакансий ориентированы на джуниор-специалистов. Для сравнения: 50% — на мидлов, 31% — на сеньоров, 8% — на лидов, 6% — на стажеров. На рынке к джунам принято относиться с опаской. Есть стереотип, что они приносят мало пользы, зато требуют много вложений.

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

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

Есть и другие преимущества:

  1. Джуны берут на себя рутинные задачи, а значит, мидлы и сеньоры меньше выгорают. К тому же это выгоднее экономически: если кнопки на сайте красит джун, а не сеньор с огромной зарплатой — вы экономите.

  2. Джуны лояльнее к компании. Если всё сделать правильно, то джуниор останется в компании надолго. Так вы экономите на найме и закрываете на будущее вопрос с высококвалифицированными кадрами.

Больше об экономике найма джунов и о работе с ними — в большой статье.

Теги:
Всего голосов 7: ↑5 и ↓2+6
Комментарии7

Работа тимлида: ожидание vs. реальность

Недавно наш тимлид Иван Леонов написал статью о своем опыте тимлидства. Он долго работал разработчиком, а затем, несмотря на сомнения, согласился возглавить команду. Вот несколько его наблюдений о новой роли:

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

Это произошло в конце 2022 года, когда зарубежные сервисы массово уходили из страны. И мне пришлось экстренно осваивать навык ведения переговоров. Количество коммуникаций у меня выросло кратно: нужно было помногу общаться с заказчиком, другими подрядчиками и коллегами. Первое время на созвонах приходилось проводить по 6–7 часов в день.

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

Стоит ли идти в тимлиды? Я для себя определился быстро: да, тимлид — это хорошая перспектива. В конце концов вернуться в разработку можно всегда.

Полная история — в нашем блоге.

Теги:
Всего голосов 5: ↑3 и ↓2+1
Комментарии0

Как мы шаг за шагом актуализируем корпоративную базу знаний

В нашей корпоративной Wiki всегда была куча полезных статей, но, как водится, с годами эта ситуация изменилась. На страницах можно было найти пассажи вроде «Обязательно согласовать с Васей Пупкиным», хотя Вася Пупкин уволился три года назад. И такого добра становилось всё больше.

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

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

  • Пересобрать структуру Wiki и определить правила написания статей.

  • Наполнить бэклог статьями, которые нужно актуализировать, и процессами, которые нужно задокументировать.

  • Канбанизировать сервис (мы назвали его AGIMA Дума), который будет переваривать бэклог.

  • Постоянно развивать сервис, повышая его Throughput и Lead Time.

  • Актуализировать имеющиеся статьи, чтобы база знаний снова не превратилась в помойку.

Сейчас мы на четвёртом этапе, и в бэклоге 300+ тикетов. Но процесс стал прогнозируемым. Раз в две недели грумим бэклог, нарезаем тикеты (соблюдая WIP-лимиты), прогоняем по чек-листам новые материалы, еженедельно релизим статьи и онбордим в них нужные категории сотрудников.

Больше об управлении агентством — на странице нашего COO.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Как дизайн влияет на развитие продукта: 5 главных принципов

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

Но как именно дизайнер может формировать продуктовую стратегию? Отвечаем в пяти пунктах.

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

2. Эмпатия. Дизайнеру важно ею вооружиться, чтобы лучше понять свою аудиторию. Можно изучать интерфейсы популярных сервисов, типа OZON, чтобы предугадывать ожидания пользователей, или шерстить отзывы в поисках редких кейсов и инсайтов.

3. Работа в команде. В идеальном мире — дизайнеры работают вместе с аналитиками, участвуют в исследованиях и опросах. Так продукт сможет развиваться комплексно и отвечать актуальным запросам рынка.

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

5. Метрики. Успех дизайна можно и нужно оценивать с помощью метрик: это может быть вовлеченность, Retention Rate и время, затраченное на задачу. Простые опросы здесь тоже могут помочь.

Полная версия статьи с примерами и цифрами — у нас на Хабре.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Внедряем модели машинного обучения в мобильное приложение на Flutter

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

  • классификация изображений: чтобы приложение могло распознавать объекты на фотографиях или видео (например, Google Lens);

  • обработка естественного языка (NLP): в приложениях с голосовыми ассистентами или чат-ботами ML обрабатывает речь и тексты;

  • персонализация: алгоритмы ML анализируют поведение пользователей и предлагают персонализированный контент или рекомендации;

  • распознавание голоса: используется в приложениях для конвертации речи в текст и команд.

Существует несколько способов, как интегрировать модели машинного обучения в приложение. Можно воспользоваться ML Kit от Firebase или библиотеками на Dart. Но самое распространенное решение — фреймворк TensorFlow Lite (TFLite). Его главное (но не единственное) преимущество — что он будет работать в том числе тогда, когда смартфон не подключен к интернету.

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

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

10 советов, как собрать UI-кит

UI-кит помогает командам поддерживать консистентность интерфейсов и упрощает процессы дизайна. Лера Ган, дизайнер AGIMA, поделилась советами, которые помогут вам собрать хороший UI-кит:

  1. Используйте автолайауты. Они избавят от рутины и помогут избежать ошибок.

  2. Комментарии к элементам. Добавляйте пояснения к компонентам. Это упростит понимание функциональности и цель элементов для всей команды.

  3. Отбор компонентов. Включайте только часто используемые элементы. Избегайте перегрузки интерфейса ненужными компонентами, чтобы сосредоточиться на важном.

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

  5. Сетка и отступы. Убедитесь, что сетка и отступы подходят для разных разрешений. Это упростит адаптацию интерфейса на разных устройствах.

  6. Единый стиль изображений. Это важно для поддержания целостного внешнего вида, особенно — для иконок и графики.

  7. Состояния элементов. Отрисуйте все состояния элементов, чтобы они были готовы к любым сценариям использования.

  8. Общение с командой. Обсуждайте все изменения с коллегами. Это предотвратит непредвиденные ошибки.

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

  10. Цветовые темы. Протестируйте темную тему интерфейса. Актуально, т. к. пользователи часто используют оба режима.

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

Теги:
Всего голосов 9: ↑5 и ↓4+1
Комментарии1

Кейс: ИИ-система, которая может принять и проинспектировать груз вместо человека

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

Делимся любопытным кейсом об умной системе, которую разработали в AGIMA AI. В чем суть: теперь, когда на предприятие нашего заказчика привозят груз, его принимает не человек, а система на основе искусственного интеллекта.

Что эта система делает:

✔️ фиксирует сам факт прибытия груза на склад;

✔️ сама определяет тип упаковки;

✔️ находит все дефекты и повреждения;

✔️ измеряет габариты и вес груза;

✔️ заполняет все необходимые отчеты.

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

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

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

Какие книги читать дизайнеру: мнение экспертов

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

Вот какие книги они упоминают:

  • «Дизайн привычных вещей» Дона Нормана;

  • «Пиши-сокращай» Максима Ильяхова;

  • «Спроси маму» Роба Фитцпатрика;

  • «Начни с почему» Саймона Синека;

  • «Переломный момент» Малькольма Гладуэлла;

  • «Паттерны дизайн-менеджмента» Юрия Ветрова;

  • «ВкусВилл. Как совершить революцию в ритейле, делая всё не так» Евгения Щепина;

  • «Тайная жизнь цвета» Кассии Сен-Клер;

  • «Настольную книгу Project-менеджера» Владимира Завертайлова;

  • «То, что мы видим, то, что смотрит на нас» Жоржа Диди-Юбермана;

  • «История журнального дизайна» Ольги Рожновой;

  • «Об интерфейсе» Алана Купера.

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

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

Как научить ИИ переносить информацию с бумаги в ERP

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

Мы в таких случаях используем Datapipe — инструмент с открытым исходным кодом. Он помогает нам построить пайплайн обработки данных. Он устроен так:

  1. Данные, размеченные модератором в Label Studio, автоматически загружаются в пайплайн.

  2. Размеченные данные добавляются в т. н. «замороженный датасет» — он больше не изменяется и используется для обучения ML-моделей.

  3. Затем разбиваем данные на две части:

    • Тренировочный набор (train) — для обучения модели.

    • Проверочный набор (val) — для проверки и оценки качества модели.

  4. Изображения подвергаются трансформации: каждая картинка делится на более мелкие сегменты (кропы) для облегчения обучения модели. В каждом кропе выделяются еще более мелкие области, чтобы улучшить точность детекции и классификации.

  5. Приступаем к последовательному обучению моделей. Сначала обучаются модели для детекции объектов (YOLOv5), а затем применяются OCR-модели (Google Cloud Vision OCR) для распознания текста.

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

Как работает такая система — в нашем блоге.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Нативные инструменты для создания виджетов во Flutter-приложении

Несмотря на все преимущества Flutter, он не всегда оптимально решает задачи, которые требуют глубокой нативной интеграции. Существуют инструменты, разработанные специально под нативные платформы, но недоступные напрямую из Dart. И как правило, в таких случаях на помощь приходит PlatformChannel

Но существуют и нативные инструменты, которые интегрируются с Flutter. Они, например, позволяют внедрять Home Widgets — элементы, с которыми можно взаимодействовать напрямую с домашнего экрана

Когда виджеты разработаны, их нужно внедрить в приложение. Библиотека home_widget предоставляет набор инструментов для работы с нативными виджетами, данные методы мы можем вызвать при помощи класса HomeWidget. Вот самые важные из методов:

  1. Future<bool?> saveWidgetData<T>( String id, T? data ) 

    Метод позволяет сохранить передаваемые данные в хранилище нашего виджета.

  2. Future<bool?> updateWidget({String? name, String? androidName, String? iOSName, String? qualifiedAndroidName,})

    Метод вызывается для обновления нашего виджета.

  3. Future<T?> getWidgetData<T>(String id, {T? defaultValue,})

    Метод позволяет прочитать данные из нашего виджета. Он может быть полезен, если нужно синхронизировать информацию между виджетом и Flutter-приложением.

Больше подробностей о нативных инструментах с примерами кода вы найдете в отдельной статье.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

Про дизайн HR-сервисов. Часть 3

В первой части рассказали о важности дизайна для HR Tech в целом, а во второй — о хороших решениях для интерфейсов HR-сервисов. Теперь же опишем, насколько для подобных продуктов важна инклюзивность.

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

  • Работа с различными языками и культурами. Классно, когда компания транслирует уважение к чужим культурам и готовность принимать и понимать их. Интерфейс должен легко переводиться на различные языки, а цветовые схемы и иллюстрации учитывать культурный контекст.

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

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

Больше о карьерный сайтах рассказываем в отдельном статье, а о дизайне — в нашем телеграм-канале.

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

Про дизайн HR-сервисов. Часть 2

В первой части рассказали о важности дизайна для HR Tech в целом. Теперь же поговорим о том, на какие тонкости в интерфейсах дизайнеру стоит обращать внимание.

  1. Минимализм и простота. Чем больше в макете чистых линий и простых форм, тем лучше.

  2. Персонализация. Важно давать пользователю настраивать интерфейс под себя — менять цветовую схему или настраивать опции отображения информации.

  3. Мобильная адаптация. Адаптивный дизайн позволяет сотруднику управлять HR-задачами с телефона или планшета.

  4. Интерактивные элементы и сервисы. Анимации, интерактивные диаграммы и инфографика упрощают взаимодействие с сервисами.

  5. Чат-боты и возможности ИИ. Они берут на себя рутину и механическую работу.

  6. Система уведомлений. Если корпортал отправляет сотруднику пуши, тот оперативно узнает о важных событиях и заданиях.

  7. Использование иконок. Иконки нужны не только в цифровых продуктах, но и в HR-сервисах. Они упрощают навигацию и понимание функционала.

  8. Дизайн-системы. Обеспечивают консистентность дизайна. Человек должен чувствовать, что о нем заботятся.

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

  10. Голосовой интерфейс. Голосовые команды и функции распознавания речи делают сервис инклюзивным, улучшают доступность и увеличивают производительность.

В следующей части расскажем о важности инклюзивности для дизайна HR Tech сервисов. А больше про дизайн — в нашем телеграм-канале.

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

Про дизайн HR-сервисов. Часть 1

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

Вот какие задачи HR-сервисы должны закрывать:

  1. Привлечение талантов. HR Tech сервис, построенный на больших данных, анализирует карьерные предпочтения и ценности подходящих кандидатов, а затем транслирует им, что эти ценности у них совпадают. И напротив, если эти ценности отличаются, дизайн становится дополнительным фильтром.

    Как понять, нужен ли компании карьерный сайт.

  2. Персонализированный подход. ИИ и аналитика помогают строить персонализированные программы обучения и адаптироваться к уникальным запросам каждого сотрудника. Когда люди чувствуют поддержку со стороны компании, они более лояльны. И это заметно извне. Рекомендации, отзывы, посты в соцсетях — всё это создает привлекательный HR-бренд.

    О персонализации и автоматизации найма — в интервью с российскими HRD.

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

Во второй части расскажем о принципах построения интерфейса в HR-сервисах.

Теги:
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

Советы тимлиду: как не допускать выгорания в команде

Регулярные 1-to-1. Важно доверительно общаться со всеми участниками команды и следить за их настроением. Задавайте прямые вопросы: «Как ты себя чувствуешь?», «Что нравится в работе, а что нет?» и т. д. Люди не всегда откровенно отвечают, но всегда нужно давать шанс высказаться.

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

Гибкий график. Не нужно караулить коллег с часами утром и вечером. Если кому-то нужно начать день попозже или закончить пораньше — пожалуйста. Главное — оставаться на связи с командой, не пропадать и делать задачи в срок.

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

Ротация задач. Внутри команды стоит периодически менять роли. Тут всё просто: одна из причин выгорания — рутина и однообразие. Если ставить перед сотрудником новые цели, ему будет интереснее работать.

Мотивация и поддержка. Материальная мотивация — это хорошо, но все хотят еще и признания. Поэтому хвалить и благодарить сотрудников за достижения — важная практика.

Больше о выгорании и управлении командой — в большой статье.

Теги:
Всего голосов 5: ↑5 и ↓0+10
Комментарии2

Ближайшие события

🕵️ Как создать продукт, до которого не доберутся кибермошенники

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

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

Об этом мы и поговорим с коллегами на четвертой встрече клуба «Ecom и Вино». Она пройдет 6 сентября в офисе AGIMA. Мы позвали Ecom-экспертов и специалистов по кибербезопасности из Ростелеком, Flowwow, Ozon, F.A.C.C.T, и AGIMA.

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

В программе — дискуссия с экспертами в формате круглого стола, бизнес-игра, много живого общения, хорошие напитки и вкусная еда.

Встреча вновь будет закрытой — только для Ecom-директоров и CMO.

Зарегистрироваться и узнать детали можно на странице события.

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

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

По данным NN/g, люди не вчитываются в каждое слово на странице с текстом, а воспринимают только 20% контента. Они сканируют и вычленяют отдельные слова и фрагменты.

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

1. Создавайте сканируемый контент.

Используйте списки с буллитами, пишите короткими абзацами, сокращайте предложения. Следуйте правилу «одна идея на один пост». Избегайте длинных слов, которые состоят из пяти и больше слогов.

2. Помогайте людям сканировать ваш контент.

Расставьте по тексту крючки, за которые зацепится глаз читателя.

3. Сделайте так, чтобы человек перешел к чтению после сканирования.

Если человек сканирует интересный и полезный текст, он начнет его читать подробнее. А это и есть ваша цель — донести сообщение до клиента.

>> Больше интересных примеров и кейсов из мира диджитал найдете в Telegram-канале нашей дизайн-команды.

Теги:
Всего голосов 9: ↑5 и ↓4+3
Комментарии0

4 принципа из художки, которые помогают в работе дизайнера

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

1. Сперва общая композиция, потом — детали.

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

2. Результат зависит от контекста.

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

3. Критика — не руководство к действию.

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

4. Сложные вещи лучше упрощать.

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

>> Полная версия статьи Юли — по этой ссылке.

Теги:
Всего голосов 6: ↑6 и ↓0+10
Комментарии0

Как JIT в PHP 8 ускоряет парсинг CSV-файлов

С выходом PHP 8 появилась одна из самых мощных функций — JIT-компиляция. Она ускоряет выполнение PHP-скриптов, и это особенно полезно при парсинге больших CSV-файлов.

JIT компилирует opcode в машинный код, который выполняется напрямую на процессоре. В результате скомпилированный код используется в циклах, исключая повторную интерпретацию.

Как это помогает при обработке файла:

  1. Ускорение циклов: Цикл обрабатывает строки файла быстрее благодаря компиляции его тела в машинный код.

  2. Оптимизация работы со строками: Функции типа fgetcsv становятся эффективнее, что особенно важно при сложной обработке данных.

  3. Снижение накладных расходов: JIT минимизирует затраты на вызов функций, делая их выполнение более быстрым.

Можно провести эксперимент: подготовить CSV-файл с 10 миллионами строк и запустить PHP-скрипт — с включенным JIT и без него. Получится, что включение JIT позволит сократить время на парсинг файла примерно на 33%.

Больше деталей и пример скрипта найдете в Телеграм-канале Саши Шутая, нашего руководителя отдела PHP.

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

Плюсы шаблона Saga для микросервисной архитектуры

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

Например, вы разработали систему для покупки билета на самолет. В нем три сервиса: оплата, уведомление, бронирование. Сервис успешно списал деньги, выслал уведомление о покупке, но возникла ошибка на этапе бронирования. Как откатить изменения, когда у нас три независимых сервиса? В монолитном приложении нас бы спасли транзакции ACID. А в случае с микросервисами — Saga. 

Принципы работы Saga:

  1. Разбиение на шаги: Saga состоит из шагов (транзакций) в каждом микросервисе, таких как списание средств и бронирование.

  2. Компенсирующие транзакции: если один шаг не удался, запускаются компенсирующие действия для отмены изменений предыдущих шагов.

  3. Асинхронное выполнение: шаги могут выполняться асинхронно, а при ошибке запускаются компенсирующие транзакции.

Стратегии реализации:

  • Оркестрация: один сервис или оркестратор управляет всем Saga, что упрощает реализацию, но создает единую точку отказа.

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

Читайте больше про веб-разработку в канале нашего руководителя отдела PHP Саши Шутая.

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии4

🛠️ Главные инструменты Rive

Для работы с Rive Animation лучше использовать их UI-интерфейс, в котором и происходит создание и настройка самой анимации. Анимация состоит из нескольких составляющих. Они больше знакомы дизайнерам, но, если кратко, вот некоторые из них.

  1. Artboard: слой, который является холстом анимации — на нем располагаются остальные элементы. В нем можно задать цвет и размер фона. В каждом файле Rive есть хотя бы один такой.

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

  3. Shape: Rive позволяет создавать, редактировать и анимировать векторную графику, используя процедурные или пользовательские фигуры. Из них чаще всего и состоит весь интерфейс.

  4. Pen: это инструмент, который позволяет делать очень сложные кастомные фигуры.

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

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

Информация

Сайт
www.agima.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Кристина Ляпцева