<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>@smbvk</title><generator>teletype.in</generator><description><![CDATA[@smbvk]]></description><link>https://teletype.in/@smbvk?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/smbvk?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/smbvk?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 19 Jun 2026 04:06:38 GMT</pubDate><lastBuildDate>Fri, 19 Jun 2026 04:06:38 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@smbvk/rdkMF_z5fcW</guid><link>https://teletype.in/@smbvk/rdkMF_z5fcW?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><comments>https://teletype.in/@smbvk/rdkMF_z5fcW?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk#comments</comments><dc:creator>smbvk</dc:creator><title>Что такое kPHP и с чем его едят</title><pubDate>Mon, 19 Dec 2022 12:09:59 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/88/62/88628f10-d28f-4a4a-b2a4-206ed1c5f3bf.png"></media:content><description><![CDATA[kPHP – это:]]></description><content:encoded><![CDATA[
  <p id="Mssi"><strong>kPHP – это:</strong></p>
  <ul id="BZpf">
    <li id="u11q">общее ускорение работы кода за счет перегонки всей кодовой базы в плюсы;</li>
    <li id="ypBk">кастомный компилятор и транслятор кода, который перегоняет php <br />в C++ современная версия kphp позволяет писать на php очень близкому к современным стандартам и делает код понятным, предсказуемым и отлаживаемым;</li>
  </ul>
  <ul id="kwWx">
    <li id="p0CL">kPHP уже 2 года в OpenSource и получил тысячи звёзд <a href="https://github.com/VKCOM/kphp" target="_blank">на GitHub.</a></li>
  </ul>
  <p id="cEdn"></p>
  <p id="xrIz"><strong>Какие возможности дает kPHP нашей команде?</strong><br />1. Мы получаем строго типизированный php = снижение потенциальных рисков написать код с ошибкой;<br /><br />2. В php нет полноценного параллелизма, а в kPHP – есть: сам механизм реализован на основе джоб-воркеров и сейчас полноценно работает из коробки. Это дает возможности к кратному росту скорости исполнения кода. Например, при переводе одного из основных методов API на этот подход нам удалось сократить время исполнения кода на несколько сотен миллисекунд;<br /><br />3. Общее ускорение работы кода за счет перегонки всей кодовой базы в плюсы.</p>
  <p id="niP2"><strong>Но, как говорится, есть нюанс: </strong><br />PHP и C++ – это хоть и близкие языки, но в ряде случаев их внутрянка сильно отличается. Самый яркий пример – это массивы, которые имеют отличие в реализации. Обычно, в такие моменты kPHP довольно демократичен к разработчику: есть полифилы, которые позволяют сохранить привычные методы с их сигнатурой. Но все же kPHP не даст использовать то, что не вписывается в концепт перегонки в плюсы.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@smbvk/qI5DnFuhNjw</guid><link>https://teletype.in/@smbvk/qI5DnFuhNjw?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><comments>https://teletype.in/@smbvk/qI5DnFuhNjw?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk#comments</comments><dc:creator>smbvk</dc:creator><title>is_predicted_as_business - как мы создали классификатор бизнес-сообществ</title><pubDate>Wed, 12 Oct 2022 11:37:29 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/38/cd/38cdbef0-9f25-4f99-ad69-946c8213512f.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/84/2d/842dae94-4bc8-4b28-a4e6-2223416e5418.jpeg"></img>
Действительно, сообществ внутри ВКонтакте очень много – больше 200 млн. Помочь сообществам развиваться, а пользователям находить нужное помогают технологии machine learning. Так команда разработки фичей для бизнеса и покупателей может предложить инструменты поиска, рекомендаций, мессенджер для бизнеса, формирование корзины и оплаты заказов и сделать это точно под запрос конкретного бизнеса или пользователя.

Первая моделька идентификации сообществ появилась в социальной сети больше 8 лет назад. С тех пор мы не раз оценивали качество и эффективность ML-модели, а этим летом пошли еще дальше и создали новую модель, которую обучили и постепенно обновляем.]]></description><content:encoded><![CDATA[
  <p id="ezWB"><br />Действительно, сообществ внутри ВКонтакте очень много – больше 200 млн. Помочь сообществам развиваться, а пользователям находить нужное помогают технологии machine learning. Так команда разработки фичей для бизнеса и покупателей может предложить инструменты поиска, рекомендаций, мессенджер для бизнеса, формирование корзины и оплаты заказов и сделать это точно под запрос конкретного бизнеса или пользователя.<br />Первая моделька идентификации сообществ появилась в социальной сети больше 8 лет назад. С тех пор мы не раз оценивали качество и эффективность ML-модели, а этим летом пошли еще дальше и создали новую модель, которую обучили и постепенно обновляем.</p>
  <h3 id="50Qu"><strong>По каким критериям мы определяем качество новой ML-модели:</strong></h3>
  <ol id="0aUC">
    <li id="DptG">recall – насколько точно модель не упускает из виду сообщества. Здесь мы получили +4 п.п. от точности предыдущей модели;</li>
    <li id="xNb5">precision – надежность оценки: прирост +12 п.п. среди тех, кого модель считает бизнесами, реально являются бизнесами;</li>
    <li id="A1MU">accuracy – новая модель модель на 9% чаще правильно определяет бизнес-сообщество.</li>
  </ol>
  <figure id="3IVQ" class="m_custom">
    <img src="https://img1.teletype.in/files/84/2d/842dae94-4bc8-4b28-a4e6-2223416e5418.jpeg" width="688" />
  </figure>
  <p id="egTC">Чтобы модель использовалась на проде, мы создали собственное хранилище. Признак сообщества можно брать напрямую из кода, что упрощает исследования и эксперименты, разработку и выкатку новых фичей.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@smbvk/n26IHflTvE1</guid><link>https://teletype.in/@smbvk/n26IHflTvE1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><comments>https://teletype.in/@smbvk/n26IHflTvE1?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk#comments</comments><dc:creator>smbvk</dc:creator><title>Рефакторинг карточки товара</title><pubDate>Thu, 06 Oct 2022 11:05:26 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/b8/9a/b89a0526-472d-444e-b78d-52131dcdf0bb.png"></media:content><description><![CDATA[Как мы решали задачу обновления карточки? ]]></description><content:encoded><![CDATA[
  <p id="yI9O"><strong>Как мы решали задачу обновления карточки? </strong></p>
  <p id="c0or">Мы условились, что новая карточка товара в Маркете должна выглядеть для клиента точно также, как и прежняя. Также нашей задачей было сохранить весь доступный функционал.</p>
  <p id="ttAY"><strong>Какие особенности разработки мы учли?</strong></p>
  <p id="vO9x">Основная сложность при разработке была в том, что мы не знали всех кейсов: когда и какой функционал карточки должен демонстрироваться. При рефакторинге мы параллельно написали документацию, описав все состояния компонента.</p>
  <p id="a9xr"><strong>Что получилось?</strong></p>
  <p id="aa8F">В результате рефакторинга скорость разработки новых фичей в карточке товара увеличилась в ~3 раза. После тщательного тестирования, мы убедились, что весь функционал сохранен. Теперь все карточки написаны на React – маленький шаг для человечества, но большой для социальной сети с огромной историей и количеством пользователей.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@smbvk/MVpF3tiSRZj</guid><link>https://teletype.in/@smbvk/MVpF3tiSRZj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><comments>https://teletype.in/@smbvk/MVpF3tiSRZj?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk#comments</comments><dc:creator>smbvk</dc:creator><title>Как звучит твоя квартира?</title><pubDate>Fri, 09 Sep 2022 13:21:55 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/99/79/9979bdfe-cd73-4d3b-9fe3-f5a1e32d098b.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/af/92/af92b585-a432-4bd1-b517-c07b66d445d2.jpeg"></img>Вчера на мансарде офиса Rambler&amp;Co вместе с мобильными разработчиками из Okko, СберЗдоровье и VK для бизнеса +Юла (это кстати мы 😄) обсудили как сохранить непрерывность процессов: реально ли запустить приложение за 3 дня, можно ли подружиться с техподдержкой Apple TV и как повелевать пространственным звуком Spatial Audio.]]></description><content:encoded><![CDATA[
  <p id="vpId">Вчера на мансарде офиса Rambler&amp;Co вместе с мобильными разработчиками из Okko, СберЗдоровье и VK для бизнеса +Юла (это кстати мы 😄) обсудили как сохранить непрерывность процессов: реально ли запустить приложение за 3 дня, можно ли подружиться с техподдержкой Apple TV и как повелевать пространственным звуком Spatial Audio.</p>
  <p id="abyv">iOS-разработчик из команды VK для бизнеса и Юлы, Фамил Гаджиев, эффектно завершил митап: мы не только услышали музыку Стравинского и посмеялись над фламинго, но и вручили подарок за лучший вопрос. Какой? Можно ли встроить звук в приложение выбора недвижимости – спросили Фамила из зала. Одному из участников пришла в голову идея будущего стартапа и, кто знает, возможно совсем скоро мы сможем ещё до аренды или покупки «услышать свою будущую квартиру» (актуально, для тех, кого беспокоят активные соседи и шумные улицы).</p>
  <p id="z3FT">А ещё, мы пригласили ребят на экскурсию в офис VK и вдохновились идеей провести собственный лайв-стриминг для мобильных разработчиков.</p>
  <p id="EaiK">Для тех, кто не добрался вчера до митапа, <a href="https://www.youtube.com/watch?v=ZkQ2YXZ2DT0" target="_blank">доступна  запись выступления</a>.</p>
  <p id="4wug">А какие сайд-проекты есть у вас?</p>
  <figure id="9fia" class="m_original">
    <img src="https://img3.teletype.in/files/af/92/af92b585-a432-4bd1-b517-c07b66d445d2.jpeg" width="1280" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@smbvk/qTDuUgU3kBT</guid><link>https://teletype.in/@smbvk/qTDuUgU3kBT?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><comments>https://teletype.in/@smbvk/qTDuUgU3kBT?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk#comments</comments><dc:creator>smbvk</dc:creator><title>Как мы тестируем уведомления в мобильном приложении Юлы</title><pubDate>Tue, 06 Sep 2022 12:56:39 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/30/2b/302b7257-5658-4617-8606-6420330d0f67.png"></media:content><description><![CDATA[Команда качества проверяет различные сценарии с учётом статуса авторизации пользователя (авторизован или неавторизован). Примеры сценариев, которые мы берем в тестирование:]]></description><content:encoded><![CDATA[
  <p id="W37v">Команда качества проверяет различные сценарии с учётом статуса авторизации пользователя (авторизован или неавторизован). Примеры сценариев, которые мы берем в тестирование:</p>
  <ul id="BXIs">
    <li id="Fogu">не приходят уведомления;</li>
    <li id="i32c">переходы по push-уведомлению – с заблокированного экрана, из «шторки», из открытого или свернутого приложения;</li>
    <li id="vSoz">переход из состояния разлогина после получения push;</li>
    <li id="tIxd">переход по push-уведомлению с включенным «Don&#x27;t keep Activities» (характерно для Android-приложений).</li>
  </ul>
  <p id="CMkb">Отдельно мы проверяем переход по push на определенный экран с выбором определенных фильтров. Если это был поисковой запрос, то задача тестировщика убедиться, что текст поискового запроса отображается в строке поиска и выдача товаров соответствует поиску.</p>
  <p id="OyBN">Если push-уведомление ведет на WebView, то надо обратить внимание, что WebView открывается корректно на обеих платформах, и что в push зашит корректный URL.</p>
  <p id="VvFs">На что стоит обратить внимание при тестировании уведомлений:</p>
  <ol id="XiMY">
    <li id="PkqT">устаревший токен;</li>
    <li id="LL29">очередь со стороны Apple;</li>
    <li id="eTm5">максимальное и минимальное количества отображаемых символов;</li>
    <li id="p8s4">звуковое сопровождение нотификации и встроенные изображения;</li>
    <li id="dsFx">проблемы на серверной стороне.</li>
  </ol>
  <p id="gHk9">Подробнее о тестировании push-уведомлений можно почитать здесь:<br /><a href="https://habr.com/ru/company/youla/blog/553762/" target="_blank">https://habr.com/ru/company/youla/blog/553762/</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@smbvk/Opyt-perehoda-na-mvi-08-03</guid><link>https://teletype.in/@smbvk/Opyt-perehoda-na-mvi-08-03?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><comments>https://teletype.in/@smbvk/Opyt-perehoda-na-mvi-08-03?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk#comments</comments><dc:creator>smbvk</dc:creator><title>Опыт перехода на mvi </title><pubDate>Mon, 05 Sep 2022 09:33:34 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/72/80/7280118b-2bfc-42c5-a86d-8ea618c31c73.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/a2/62/a2623613-4862-41ed-8856-7e00716c301c.png"></img>Эта статья из Telegram канала «Разработка Юлы». Хотите больше полезных материалов и новостей разработки под Android и iOS, описания схем реализации, ссылки на библиотеки и приглашения на митапы команды - подпишитесь на канал.]]></description><content:encoded><![CDATA[
  <p id="xr3c"><em>Эта статья из Telegram канала <a href="https://t.me/youlatech" target="_blank">«Разработка Юлы».</a> Хотите больше полезных материалов и новостей разработки под Android и iOS, описания схем реализации, ссылки на библиотеки и приглашения на митапы команды - <a href="https://t.me/youlatech" target="_blank">подпишитесь на канал</a>.</em></p>
  <p id="2D0b"><strong>Что такое MVI?</strong></p>
  <p id="QwfD">MVI (Model-View-Intent) – это архитектурный паттерн, <strong>Unidirectional Data Flow </strong>подход проектирования системы, в которой все представляется в виде однонаправленного потока действий и управления состояния.</p>
  <p id="h3Wp"><strong>Как это работает?</strong></p>
  <p id="Fh3r">Мы создаем интерфейс-маркер, который будет отвечать за какое-либо событие, состояние экрана и при этом не влиять на состояние экрана.</p>
  <p id="ciYw">При таком подходе состояние представления <strong>(View)</strong> описывается моделью <strong>(Model)</strong>, которая сохранена в объекте <strong>ViewModel</strong>.</p>
  <p id="gdhj">View подписывается на изменения модели – в нашем случае путем RxJava– и делает изменения в себе в соответствии с новым состоянием.</p>
  <p id="pkLJ">View может взаимодействовать с ViewModel путем простого вызова методов, или, как у нас было реализовано, путем реактивной подписки ViewModel на новые события, которые отправляет View.</p>
  <p id="2jFy"><strong>Как и почему мы реализовали свой MVI-фреймворк на Android?</strong></p>
  <p id="cERN">Изначально в проекте у нас не было никаких ограничений на реализацию бизнес-логики и взаимодействия с стейтом, поскольку мы описывали только контракт взаимодействия представления и модели.</p>
  <p id="EWRk"><strong>С какими проблемами мы столкнулись в результате?</strong></p>
  <p id="1cWZ"><strong> 1. код на больших и сложных экранах становился трудным в поддержке и расширении;</strong></p>
  <p id="hSrl"><strong>2. из-за ошибок проектирования мы сталкивались с неконсистентностью системы,</strong></p>
  <p id="dsKv"><strong>3. отсутствие логирования приводило к долгому поиску багов.</strong></p>
  <p id="T3aS">Решение, которое позволило избежать этих проблем, – создать единую формализованную и надежную систему обработки событий, исходящих извне, и реакции на эти события в виде  потокобезопасного изменения стейта. Все наши архитектурные хотелки должна была решить MVI-библиотека.</p>
  <figure id="4FeL">
    <img src="https://img3.teletype.in/files/a2/62/a2623613-4862-41ed-8856-7e00716c301c.png" />
  </figure>
  <p id="2vKG">MVI строится на основе трех компонентов – модели, намерения (действия) и состояния экрана. Логика приложения диктуется пользователем: например, он хочет загрузить картинку в высоком разрешении, и различными внешними эффектами (далее – side-effects), например, внезапной потерей соединения.</p>
  <p id="Zbqi">MVI подход решают задачу реализовать механизм, который будет обрабатывать намерения пользователя и их следствия (например, ответ от api).</p>
  <p id="rTV3"><strong>Наш опыт внедрения MVI-фреймворка.</strong></p>
  <p id="MgW7">Мы начали искать готовые opensource решения, чтобы встроить их в наш проект. Однако ресерч привел нас к тому, что ни одно из готовых решений не удовлетворяло нашим требованиям. В нашем случае код, написанный на mvi решении, должен был отвечать следующим критериям:</p>
  <ul id="np6c">
    <li id="neon"><strong>Масштабируемость и независимость от платформы и внешних библиотек.</strong> Архитектура должна быть в крайней степени гибкой и расширяемой.</li>
    <li id="UWMN">Сейчас у нас в проекте используется RxJava, при этом мы планируем перейти на compose и использовать coroutines в будущем. <br />Отсюда требование: фреймворк не должен зависеть на сторонние библиотеки.</li>
    <li id="qgVs"><strong>Сопровождаемость.</strong> <br />Чем проще исправлять ошибки и управлять  проектом после передачи в эксплуатацию, тем легче новым разработчикам поддерживать проект;</li>
    <li id="uEhN"><strong>Надежность.</strong> <br />Внутри реализации системы исключены проблемы многопоточной среды. Единый контракт должен обеспечивать безопасность интерфейсов;</li>
    <li id="oCtJ"><strong>Тестируемость;</strong></li>
    <li id="E8Iz"><strong>Возможность переиспользования;</strong></li>
    <li id="njZF"><strong>Легкая встраиваемость в проект;</strong></li>
    <li id="eibe"><strong>Детальные и хорошо читаемые логи.</strong></li>
  </ul>
  <p id="J45G">Дополнительные критерий – активное комьюнити, поскольку библиотека должна сохранять  актуальность, ее должны обновлять, ревьюить и поддерживать в порядке.</p>
  <p id="BzrD">В момент, когда мы изучали opensource решения, и не нашли нужного, помог наш активный круг общения и дружная команда :)</p>
  <p id="znqc">Собственное решение реализовал наш бывший коллега Георгий Ипполитов – reduktor. Мы совместно посмотрели предложенный Гошей вариант, после чего он внес  значительные доработки и довел либу до идеального состояния, отвечающего всем нашим критериям.</p>
  <p id="eAdp">Библиотека прошла 2 волны улучшений: от первой версии мы довели ее до второй и окончательной, изменив основу либы <strong>(Store)</strong>. В результате мы получили:</p>
  <ul id="yE2L">
    <li id="CocD">уход от жесткой привязки к RxJava. Появилась возможность использовать в качестве межпотокового взаимодействия любой из общеизвестных способов;</li>
    <li id="2BGj">новые плюшки для удобства написания кода в sideEffect-ах.</li>
  </ul>
  <p id="oFLC"><strong>А вот и вики либы:</strong></p>
  <p id="zI8E"><a href="https://github.com/g000sha256/reduktor/tree/wiki" target="_blank">https://github.com/g000sha256/reduktor/tree/wiki</a></p>
  <p id="HgpM">Всё взаимодействие происходит через объект Store. У него есть одно публичное поле – <strong>states</strong>. При подписке на эту цепочку сразу будет отдано актуальное состояние в текущем потоке. Однако дальнейшие обновления могут приходить в других потоках. Внутри есть проверка состояний на эквивалентность.</p>
  <p id="p0nm"><strong>Принцип работы:</strong></p>
  <ul id="sUgH">
    <li id="pgDN">Действие может попасть в систему через <strong>Initializer</strong>. Это может быть событие от взаимодействия с пользователем или любое другое внешнее событие (например, новое сообщение из сокета).</li>
    <li id="GDiS">Далее действие проходит через <strong>Reducer</strong>. Тут действие может повлиять на изменение состояния. Если состояние изменилось,  информация об этом будет отправлена тем, кто на него подписался.</li>
    <li id="MHhM">После этого действие и новое (либо не изменившееся) состояние попадают в <strong>SideEffect.</strong></li>
    <li id="UGA6">Оттуда возвращаются новые цепочки с действиями. Подписываемся на них и ожидаем событий.</li>
    <li id="GiWl">Новые действия будут снова отправлены в <strong>Reducer.</strong></li>
  </ul>
  <figure id="uZ3c">
    <img src="https://img1.teletype.in/files/48/e7/48e745fa-29c4-45a9-81bd-f3a82e276e40.png" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@smbvk/Dostupnye-veb-interfejsy-07-18</guid><link>https://teletype.in/@smbvk/Dostupnye-veb-interfejsy-07-18?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><comments>https://teletype.in/@smbvk/Dostupnye-veb-interfejsy-07-18?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk#comments</comments><dc:creator>smbvk</dc:creator><title>Доступные веб-интерфейсы</title><pubDate>Mon, 05 Sep 2022 09:34:58 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/9a/75/9a75f714-82c0-4eb1-b0de-10f77b18e9df.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/51/c4/51c4b341-1358-4e7d-9680-4dc2a2fbb784.png"></img>Что такое доступность и зачем она нужна?]]></description><content:encoded><![CDATA[
  <p id="9p7Z"><strong>Что такое доступность и зачем она нужна?</strong></p>
  <p id="HsDl">Прежде всего, это это обеспечение возможности использования сайтов как можно большим числом людей, включая тех, чьи способности как-либо ограничены.</p>
  <p id="oltg">Когда мы говорим про доступный интерфейс – важно упоминать не только про помощь и эмпатию, но и про помощь всем пользователям.</p>
  <p id="T01u"><strong>На какой набор факторов обратить внимание при внедрении доступности в сервис / продукт?</strong></p>
  <p id="ZGrc">- Семантичная вёрстка;</p>
  <p id="x1s1">- Доступность элементов с клавиатуры;</p>
  <p id="Sd4M">- Подписи и aria-лейблы;</p>
  <p id="uEGM">- Правильный атрибут lang.</p>
  <p id="nfZq"><strong>Но, как бы радостно не было – это ещё не всё. Важно упомянуть и про библиотеки компонентов:</strong></p>
  <p id="6gjm">- Angular Material, Material UI, Chakra UI;</p>
  <p id="wae5">- angular-eslint, eslint-plugin-jsx-a11y.</p>
  <p id="sewW"><strong>На какие процессы можно обратить внимание тимлиду?</strong></p>
  <p id="PgmG">- Формулирование требований к доступности в сервисе;</p>
  <p id="l7nD">- Мотивация команды на обучение;</p>
  <p id="qnfe">- Адаптация процессов внедрения.</p>
  <p id="2Lbu"><strong>Хотите научиться? </strong></p>
  <p id="I7Si"><strong>Как и обещали, делимся полезными ресурсами для изучения темы от нашей команды:</strong></p>
  <p id="Lnlq">📌<a href="https://www.w3.org/Translations/WCAG20-ru/" target="_blank">Web Content Accessibility Guidelines (WCAG)</a></p>
  <p id="djGj">📌<a href="https://www.youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g" target="_blank">A11ycast with Rob Dodson</a></p>
  <p id="Ia7C">📌<a href="https://weblind.ru/" target="_blank">Веблайнд </a></p>
  <p id="Cb43">📌<a href="https://kurmak.info/" target="_blank">Курс по цифровой доступности </a></p>
  <p id="6plP">📌<a href="https://www.sberbank.ru/ru/person/specialbank/digitalguide" target="_blank">Гайд по цифровой доступности</a></p>
  <p id="bvOx">📌<a href="https://www.digitala11y.com/digital-accessibility-courses-roundup/" target="_blank">Список платных и бесплатных курсов</a></p>
  <p id="kpyg">📌<a href="https://css-live.ru/articles/versiya-dlya-slabovidyashhix-a-mozhno-ne-nado-rasshifrovka-doklada.html" target="_blank">Расшифровка доклада Лены Райан о версиях для слабовидящих</a></p>
  <figure id="EqZ1">
    <img src="https://img2.teletype.in/files/51/c4/51c4b341-1358-4e7d-9680-4dc2a2fbb784.png" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@smbvk/Intervyu-s-komandoj-07-11</guid><link>https://teletype.in/@smbvk/Intervyu-s-komandoj-07-11?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk</link><comments>https://teletype.in/@smbvk/Intervyu-s-komandoj-07-11?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=smbvk#comments</comments><dc:creator>smbvk</dc:creator><title>Интервью с командой</title><pubDate>Mon, 05 Sep 2022 09:36:55 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/1c/0e/1c0e8160-6d0d-48d0-8e62-a40bc0e41d26.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/63/b5/63b56360-c88f-4a19-9a06-107475631a74.gif"></img>Расскажите об образовательных проектах VK. Как считаете – насколько полезен ваш опыт, когда работаете со студентами не первый год?]]></description><content:encoded><![CDATA[
  <p id="sVco"><strong>Расскажите об образовательных проектах VK. Как считаете – насколько полезен ваш опыт, когда работаете со студентами не первый год?</strong></p>
  <p id="CVhn">Мы вместе с командой образовательных проектов помогаем VK найти и развивать талантливых ребят, даем возможность разобраться в профессии и понять, что действительно важно знать и уметь, когда приходишь в мобильную разработку.</p>
  <p id="WSnf">Когда мы начали работать со студентами, нас очень поддерживал собственный опыт обучения, ведь большинство из нас – выпускники МГТУ им.Баумана. Можно сказать «отдаем дань технопарку» (*так раньше назывался образовательный центр VK в МГТУ им.Баумана) (смеются). А еще, опыт преподавания нереально прокачивает наши собственные soft skills.</p>
  <p id="RjOP">Мы помогаем формировать комьюнити, которое аккумулирует в себе опыт разработчиков. Кроме того, получаем невероятный кайф, когда человек без опыта в iOS-разработке буквально через полгода находит работу и записывает тебе благодарность – это очень ценно. Ещё, мы можем набрать себе отличных молодых специалистов в VK. Огромный плюс здесь в том, что мы уже хорошо знаем ребят, знаем их сильные и слабые стороны. Не секрет, что один из самых сложных и ответственных периодов – онбординг, интеграция в команду. Благодаря курсу, этот период частично проходит в условиях обучения, ребятам проще выходить в реальный проект, ведь они знают, что рядом весь преподавательский состав, готовый тебя поддержать на все 100% :)</p>
  <p id="CvG7">Для наших студентов такие образовательные проекты – это отличная возможность получить уверенный карьерный старт в IT и возможность устроиться в реальный проект.</p>
  <p id="dOos"><strong>Легко стать преподавателем и какой план подготовки к этой роли?</strong></p>
  <p id="yrJ3">Мы сами прошли через учебу в образовательном проекте компании в МГТУ им.Баумана), поэтому хотели обучать студентов, чтобы они становились крутыми разработчиками. Чтобы стать преподавателем  главное – найти желание и время, ведь каждому студенту нужен по-настоящему конструктивный фидбек. Преподавание – точно наше дело :) Нашей команде всегда интересно делиться знаниями. Как-то раз мы задались вопросом «А чему мы могли бы научить себя «молодых» (смеются), если бы у нас была машина времени?» Вот тут, в ответе на этот вопрос, и кроется источник вдохновения :)</p>
  <p id="4qdZ"><strong>Много ли сил и времени уходит на работу со студентами?</strong></p>
  <p id="Y9ou">Первый раз – да, но когда курс проходит повторно – уже нет. Первым делом, мы готовим лекцию, на подготовку одной лекции уходит около недели. Дальше эту лекцию проводим несколько раз для разных потоков. Подготовка к уже готовой лекции занимает 1-2 дня. Работа со студентами у нас выстроена с помощью менторов, это такие люди, которые служат связующим звеном между преподавателем и командой студентов. Ментор – это выпускник курса, который берет одну команду, сопровождает ее в процессе обучения и помогает ей своим опытом. Плюс ко всему, конкретно на нашем курсе нет домашних заданий, так как все полученные знания студенты сразу же применяют в своих командных проектах.</p>
  <p id="4uTn"><strong>Как удалось собрать общую преподавательскую команду курса и разработать такую глубокую программу?</strong></p>
  <p id="iwU6">Всё получилось довольно легко, основная часть преподавательского состава – из Юлы, где собралась классная инициативная группа. Программа курса уже была спроектирована командой образовательных проектов VK. Мы что-то доработали, добавили что-то новое и актуальное в лекции, используем максимум практических примеров и заданий из реального опыта разработки.</p>
  <p id="9YCy"><strong>Сколько раз уже собирали группы, сколько у вас выпускников?</strong></p>
  <p id="y5x7">Очень много, где-то &gt; 5 потоков, около 200 выпускников. Сейчас мы провели уже 4 курса, а это целых два года. Время летит!</p>
  <p id="Imhu"><strong>Были ли забавные случаи или что-то запоминающееся?</strong></p>
  <p id="Gtk5">Да, в основном забавные случаи связаны с дистанционным обучением во время пандемии. К примеру,  как-то раз студент забыл выключить камеру и оказался  во время лекции, буквально, без штанов, поскольку параллельно лекции переодевался :) В принципе, такие случаи наверняка бывали у многих, когда случился локдаун.</p>
  <p id="o23x"><strong>Как обычно проходит защита? Как вы выбираете проект-победитель?</strong></p>
  <p id="HJsT">Защита проходит либо онлайн, либо в нашем офисе, либо в Бауманке.  Мы любим проводить защиты в офисе, приглашать в гости и устраивать праздник завершения курса. Студенты показывают презентацию и свой проект, который сделали за время курса, далее мы ставим баллы по специальной шкале.  Проект-победитель определяется по сумме баллов. Все справедливо, механика простая!</p>
  <p id="cO7C"><strong>Что происходит после курса? Следите ли за судьбой своих выпускников?    </strong><br />Конечно! Периодически мы встречаем наших выпускников-коллег у нас в компании, да и в целом – мы поддерживаем наших студентов. Иногда встречаемся  просто пообщаться в барах, обсуждаем дела, даем рекомендации, если они нужны, продолжаем списываться в чатиках. Наши бывшие студенты работают везде: есть ребята, которые работают и в известных компаниях, и в небольших стартапах. Классно, что курс стал полезным стартом в профессии и все продолжают начатое, развиваясь дальше.</p>
  <p id="SMw2"><strong>Чему вас научили студенты?</strong></p>
  <p id="9Wja">Совершенно точно прокачали наши soft skills и усилили базовые знания, ну и конечно, подарили нам потрясающее окружение, комьюнити, которое сложилось благодаря программе, VK и Образовательному центру VK в МГТУ им. Н.Э. Баумана.</p>
  <p id="XNuP"><strong>Какие у вас планы на ближайшее время? Будет новый курс?</strong></p>
  <p id="X2BF">Конечно! Наш курс проходит каждые полгода. Сейчас мы работаем над тем, чтобы немного адаптировать его с учетом изменений в платформе и разработке. А еще, с нетерпением ждем <a href="https://education.vk.company/curriculum/program/discipline/1402/" target="_blank">летний буткемп по мобильной разработке</a>, в который приедут студенты со всей России: с 8 по 25 августа на базе Университета «Сириус» пройдёт бесплатная летняя образовательная программа. На буткемпе будет возможность освоить как iOS-разработку, так и Android-разработку: мы вместе с коллегами из других юнитов готовим интересный материал и будем делиться опытом с начинающими разработчиками.</p>
  <p id="4PVl"><strong>Ещё немного фото с защиты проектов в офисе VK:</strong></p>
  <figure id="92To">
    <img src="https://img3.teletype.in/files/63/b5/63b56360-c88f-4a19-9a06-107475631a74.gif" />
  </figure>
  <figure id="OkEY">
    <img src="https://img1.teletype.in/files/cb/4b/cb4be2cf-959b-4f89-aacd-ebba94ada32a.jpeg" />
  </figure>
  <figure id="DIKv">
    <img src="https://img4.teletype.in/files/33/70/33707473-aa23-4cba-a5b7-f8d375281ae6.gif" />
  </figure>
  <figure id="A1QB">
    <img src="https://img3.teletype.in/files/a0/5d/a05d3f43-bfa7-43a3-b3c1-ea90b7785e3d.jpeg" />
  </figure>

]]></content:encoded></item></channel></rss>