<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Партнерский материал</title>
    <description>Материалы, которые мы делаем вместе с рекламодателями-партнерами. Партнер участвует в создании материала, но готовим эти материалы: пишем тексты, проверяем факты — именно мы, редакция Tproger. Это архивная рубрика.</description>
    <link>https://tproger.ru/partnered</link>
    <atom:link href="https://tproger.ru/partnered/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Tue, 06 Oct 2026 05:01:10 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Партнерский материал</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Cloud.ru объявил финансовые результаты за первое полугодие 2026 года: ИИ-направление сформировало более половины выручки</title>
      <link>https://tproger.ru/partnered/cloud-ru-obyavil-finansovye-rezultaty-za-pervoe-polugodie-2026</link>
      <comments>https://tproger.ru/partnered/cloud-ru-obyavil-finansovye-rezultaty-za-pervoe-polugodie-2026?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/partnered/cloud-ru-obyavil-finansovye-rezultaty-za-pervoe-polugodie-2026</guid>
      <description><![CDATA[<p>Выручка Cloud.ru за первое полугодие 2026 года составила 37,6 млрд рублей, из них 51,3% принесли сервисы и инфраструктура для работы с ИИ. Потребление языковых моделей на платформе выросло в 18 раз.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/partnered/cloud-ru-obyavil-finansovye-rezultaty-za-pervoe-polugodie-2026">Cloud.ru объявил финансовые результаты за первое полугодие 2026 года: ИИ-направление сформировало более половины выручки</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Партнерский материал]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 31 Aug 2026 11:13:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloud.ru, провайдер облачных сервисов и ИИ-технологий, объявил финансовые результаты по МСФО за первое полугодие 2026 года. Выручка компании составила 37,6 млрд рублей, увеличившись на 2% год к году. EBITDA составила 27,5 млрд рублей, рентабельность по EBITDA — 73%. Чистая прибыль составила 6,0 млрд рублей, рентабельность по чистой прибыли — 16%.</p><p>Выручка сервисов и инфраструктуры для работы с ИИ составила 19,3 млрд рублей, или 51,3% общей выручки компании. За первые восемь месяцев 2026 года объём потребления языковых моделей на платформе Cloud.ru в токенах вырос в 18 раз. Общий объём потребления достиг 480 млрд токенов.</p><p>В первом полугодии Cloud.ru продолжил стратегию по расширению практического применения облачных сервисов и ИИ-технологий. Компания предоставляет сервисы крупнейшим потребителям из финтеха, ритейла и ИТ. Чтобы стоимость инфраструктуры и сервисов не ограничивала масштабирование проектов крупнейших потребителей, Cloud.ru в течение длительного времени удерживает цены. Это позволяет клиентам активнее переходить от экспериментов и пилотов к коммерческому внедрению.</p><p>«Сегодня один из главных вызовов для бизнеса и общества — переход к широкому практическому применению искусственного интеллекта. Скорость этого перехода зависит не только от технологий. Это вопрос готовности людей и организаций к изменениям, потому что в центре трансформации остаётся человек. Наша задача — формировать технологическую и экономическую основу для ответственного внедрения ИИ: безопасного, эффективного и сбалансированного. Мы хотим, чтобы компании могли свободнее экспериментировать, находить эффективные сценарии и масштабировать их, а современные ИИ-инструменты становились доступнее людям», — прокомментировал <b>Михаил Лобоцкий, генеральный директор Cloud.ru</b>.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-08-31/d2ebabcd-5312-428c-bf2c-9710c11a9edc.webp" alt="Финансовые результаты Cloud.ru за первое полугодие 2026 года" /></figure><p>Стабильное финансовое положение Cloud.ru позволяет продолжать инвестиции и проводить выбранную ценовую политику. В первом полугодии 2026 компания подтвердила высокую оценку кредитоспособности, получив кредитные рейтинги ruАА+ от Эксперт РА и АА+ (RU) от АКРА. Также компания успешно реализовала дебютный выпуск облигаций.</p><p>«Cloud.ru сохраняет высокую рентабельность и низкую долговую нагрузку. Это позволяет нам инвестировать в инфраструктуру, безопасность и новые продукты и одновременно поддерживать ценовые условия, стимулирующие рост потребления у крупнейших клиентов. В первом полугодии мы вышли на публичный долговой рынок, диверсифицировав источники финансирования. При этом отношение чистого долга к EBITDA LTM за год снизилось с 0,60x до 0,35x. Устойчивая финансовая позиция позволяет нам принимать решения с расчётом на долгосрочный рост бизнеса и рынка», — отметила <b>Наталия Толченникова, финансовый директор Cloud.ru</b>.</p><p>В первом полугодии 2026 года Cloud.ru инвестировал 8,5 млрд рублей в закупку оборудования, разработку программного обеспечения и другие нематериальные активы. Основные направления инвестиций — инфраструктура, безопасность и новые технологии.</p><p>Инфраструктура Cloud.ru включает более 46 тыс. единиц ИТ-оборудования, в том числе более 32 тыс. серверов, размещённых в девяти дата-центрах. Общая мощность используемых стоек составляет 58 МВт.</p><p>В сфере безопасности Cloud.ru развивает защищённые облачные платформы для государства и крупного бизнеса. Решения компании позволяют размещать государственные информационные системы и объекты критической информационной инфраструктуры и соответствуют наиболее строгим требованиям российских регуляторов. В ИИ-направлении компания развивает платформы и сервисы для практического применения технологий и расширяет доступ к ним как для корпоративных, так и для массовых пользователей.</p><p>Cloud.ru — один из крупнейших облачных и ИИ-провайдеров России. Компания основана в 2019 году и за несколько лет вошла в число лидеров рынка инфраструктурных, платформенных, а также ИИ-решений. В портфеле Cloud.ru — более 130 инфраструктурных и платформенных сервисов, публичное облако Cloud.ru Evolution на базе собственных технологий, аттестованная инфраструктура для размещения ГИС и КИИ, платформа для частных и гибридных облаков Cloud.ru Evolution Stack, а также цифровая среда для промышленной работы с генеративным ИИ — AI Factory. В команде компании — более 2 000 специалистов в области ИТ, кибербезопасности и ИИ.</p><p>Реклама. Рекламодатель: ООО «Облачные технологии», ИНН 7736279160, erid: 2W5zFGH4yKw</p>]]></content:encoded>
    </item>
    <item>
      <title>Бесплатный VDS: кому подойдет виртуальный сервер без оплаты и как получить максимум пользы</title>
      <link>https://tproger.ru/partnered/besplatnyj-vds-komu-podojdet-virtualnyj-server-bez-oplaty-i-ka</link>
      <comments>https://tproger.ru/partnered/besplatnyj-vds-komu-podojdet-virtualnyj-server-bez-oplaty-i-ka?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/partnered/besplatnyj-vds-komu-podojdet-virtualnyj-server-bez-oplaty-i-ka</guid>
      <description><![CDATA[<p>Бесплатный VDS — рабочая площадка для экспериментов и изучения Linux. Рассказываем, кому подойдёт тестовый сервер и на какие параметры смотреть при его выборе.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/partnered/besplatnyj-vds-komu-podojdet-virtualnyj-server-bez-oplaty-i-ka">Бесплатный VDS: кому подойдет виртуальный сервер без оплаты и как получить максимум пользы</a>»</p>]]></description>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Партнёрский материал]]></category>
      <category><![CDATA[Системное администрирование]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[VPS]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Партнерский материал]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 14 Jul 2026 05:54:01 GMT</pubDate>
      <content:encoded><![CDATA[<p>Бесплатный VDS — это возможность познакомиться с технологиями виртуализации, протестировать собственный проект или получить практический опыт администрирования без покупки полноценного сервера. Еще несколько лет назад подобные предложения были редкостью, однако сегодня многие хостинг-провайдеры предлагают тестовые виртуальные серверы, позволяющие оценить производительность инфраструктуры перед переходом на платный тариф.</p><p>При этом важно понимать, что бесплатный VDS — это не просто способ сэкономить деньги. В первую очередь он представляет собой рабочую площадку, где можно безопасно проводить эксперименты, изучать новые технологии и проверять различные программные решения в условиях, максимально приближенных к реальной эксплуатации.</p><h2>Чем VDS отличается от обычного хостинга</h2><p>Главное преимущество виртуального выделенного сервера заключается в уровне контроля. Пользователь самостоятельно выбирает операционную систему, устанавливает необходимое программное обеспечение, управляет сетевыми настройками, создает базы данных и полностью контролирует серверное окружение.</p><p>На виртуальном хостинге подобные возможности обычно ограничены, поскольку все клиенты используют общую программную среду. Именно поэтому разработчики, системные администраторы и владельцы сложных веб-проектов предпочитают использовать VPS или VDS.</p><p>Кроме того, современный виртуальный сервер позволяет работать с Docker, Git, Node.js, Python, PostgreSQL, Redis, Nginx и десятками других инструментов, необходимых для разработки современных приложений.</p><h2>Когда действительно нужен бесплатный VDS</h2><p>Тестовый сервер может быть полезен далеко не только начинающим пользователям.</p><p>Во-первых, его удобно использовать для проверки производительности сайта после переноса с виртуального хостинга. Во-вторых, это хороший вариант для тестирования новых версий CMS, обновлений, модулей или собственного программного кода без риска нарушить работу основного проекта.</p><p>Также бесплатный сервер подходит для изучения Linux. Практика показывает, что навыки администрирования гораздо быстрее приобретаются при работе с реальной системой, чем при изучении теории.</p><h2>На что обратить внимание при выборе бесплатного сервера</h2><p>При выборе бесплатного VDS важно учитывать не только отсутствие оплаты, но и реальные возможности сервера. Перед регистрацией вам стоит оценить несколько важных параметров.</p><ul><li>продолжительность тестового периода;</li><li>характеристики процессора, объём оперативной памяти и дискового пространства;</li><li>использование современных NVMe-накопителей;</li><li>наличие защиты от DDoS-атак;</li><li>возможность выбрать операционную систему;</li><li>наличие VNC-консоли и SSH-доступа;</li><li>возможность сохранить данные при переходе на платный тариф;</li><li>качество технической поддержки и документации.</li></ul><p>Именно эти параметры позволяют оценить, насколько тестовый VDS подходит для решения реальных задач и соответствует возможностям коммерческих тарифов.</p><h2>Почему важно протестировать VDS перед выбором</h2><p>Оценить качество виртуального сервера только по описанию характеристик практически невозможно. Даже если провайдер указывает современные процессоры, быстрые накопители и высокую пропускную способность сети, реальные показатели становятся понятны только во время практического использования.</p><p>Тестовый период позволяет проверить, насколько быстро разворачивается сервер, удобно ли работать с панелью управления, как ведет себя система под нагрузкой, насколько стабильно сетевое соединение и насколько просто выполнять повседневные задачи — от установки программного обеспечения до создания резервных копий. Не менее важно оценить скорость реакции технической поддержки и доступность документации, поскольку именно эти факторы часто влияют на удобство дальнейшей эксплуатации.</p><p>Такой подход помогает сделать выбор на основе собственного опыта и объективной оценки возможностей платформы, а не только информации, указанной в описании услуги.</p><h2>Бесплатный VDS как возможность оценить инфраструктуру</h2><p>Сегодня многие хостинг-провайдеры предлагают бесплатный тестовый доступ к виртуальным серверам. Такой формат позволяет пользователям познакомиться с особенностями платформы, проверить производительность оборудования и понять, насколько инфраструктура соответствует требованиям будущего проекта.</p><p>Одним из примеров является SpaceWeb, который предоставляет <a href="https://sweb.ru/vds/free/" rel="nofollow">бесплатный VDS</a> с доступом к основным возможностям виртуального сервера: выбору операционной системы, root-доступу, установке необходимого программного обеспечения и использованию готовых серверных окружений. Это позволяет протестировать сайт, приложение или среду разработки в условиях, максимально приближенных к реальной эксплуатации, и только после этого принимать решение о дальнейшем использовании сервиса.</p><p>Использование тестового периода помогает снизить риски при выборе серверной платформы. Практическая эксплуатация позволяет получить объективное представление о производительности, стабильности и удобстве администрирования, а также убедиться, что инфраструктура справится с предполагаемой нагрузкой. В результате решение о дальнейшем использовании сервиса принимается на основе реального опыта, а не только заявленных технических характеристик.</p><p><i>Реклама. Рекламодатель: ООО «СпейсВэб», ИНН 7813376370, erid: 2W5zFK1N8eV</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Нейрогород: квест для знатоков JavaScript</title>
      <link>https://tproger.ru/interactive/nejrogorod</link>
      <comments>https://tproger.ru/interactive/nejrogorod?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Соколова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/interactive/nejrogorod</guid>
      <description><![CDATA[<p>Нейрогороду нужна помощь! Вооружитесь знаниями JavaScript и устраните все баги в виртуальном мегаполисе.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/interactive/nejrogorod">Нейрогород: квест для знатоков JavaScript</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Игры]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 28 Sep 2023 07:18:15 GMT</pubDate>
    </item>
    <item>
      <title>Дорожная карта: из C# Middle разработчика в Senior C#</title>
      <link>https://tproger.ru/articles/dorozhnaya-karta-iz-c-middle-razrabotchika-v-senior-c-erid-ljn8kvpnf</link>
      <comments>https://tproger.ru/articles/dorozhnaya-karta-iz-c-middle-razrabotchika-v-senior-c-erid-ljn8kvpnf?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Соколова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/dorozhnaya-karta-iz-c-middle-razrabotchika-v-senior-c-erid-ljn8kvpnf</guid>
      <description><![CDATA[<p>Как вырасти из Middle C# программиста в уверенного сеньора с нужным багажом знаний и навыков? Составили роадмап для будущего Senior C# developer.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/dorozhnaya-karta-iz-c-middle-razrabotchika-v-senior-c-erid-ljn8kvpnf">Дорожная карта: из C# Middle разработчика в Senior C#</a>»</p>]]></description>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Функциональный C#]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 18 Aug 2023 07:10:13 GMT</pubDate>
      <content:encoded><![CDATA[<p>Путь от Middle C# до сеньора похож на переходный возраст: нужно становиться самостоятельным и брать на себя всё больше ответственности. Для тех, кто готов шагнуть во «взрослый» карьерный этап и стать Senior C# разработчиком, мы совместно с экспертами <a href="https://ozon.ru/t/weAY2L8">курсов для Middle-специалистов Route 256 от Ozon Tech</a> сделали роадмап. Держите дорожную карту перехода C# Middle-разработчика в статус Senior.</p><ul><li><a href="https://tproger.ru/#part1">Чем Senior отличается от Middle</a></li><li><a href="https://tproger.ru/#part2">Что необходимо, чтобы стать Senior C# разработчиком</a>Технические навыкиПлатформа .NET и базы данныхПаттерны проектированияМикросервисыКонтейнеризация и облачные решенияCI/CD и тестированиеВидение проектаЛичностные качестваЛюбовь к «чистоте» кодаКоммуникативные навыкиНавыки ментораРабота с сообществом</li><li><a href="https://tproger.ru/#part15">Полезные ресурсы</a></li><li><a href="https://tproger.ru/#part16">Вместо эпилога</a></li></ul><h2>Чем Senior отличается от Middle</h2><p>Middle C# developer — это разработчик, который хорошо освоил язык и платформу .NET, понимает процессы разработки на проекте, умеет пользоваться всеми необходимыми инструментами и может справиться с повседневными задачами практически без помощи старших коллег.</p><p>У Senior C# разработчика больше опыта, экспертизы и потому больше ответственности. Он глубоко понимает архитектуру, устройство фреймворков и библиотек, видит технические риски и знает, как их предотвратить. А ещё сеньор умеет организовать работу над проектом: сформулировать и раздать задачи, следить за разработкой и сроками и презентовать результат. Как вы уже поняли, сеньор должен уметь не только программировать, но и управлять проектами и людьми.</p><h2>Что необходимо, чтобы стать Senior C# developer</h2><p>Чтобы начать путь от мидла к сеньору, необходимо развиваться в двух направлениях: прокачивать технические навыки и личностные качества. Поэтому мы разделили дорожную карту на две части и структурировали и подробно раскрыли оба направления.</p><h3>Технические навыки</h3><h4>Платформа .NET и базы данных</h4><p>То, что C# Middle разработчик воспринимает как функциональность языка C#, сеньор понимает глубже — как возможности для построения сложных систем.</p><p>Старший специалист в деталях знает, как работает многопоточность, асинхронность и чем они отличаются друг от друга. А ещё — как применять примитивы синхронизации потоков (lock, Monitor, Mutex, Semaphore и SemaphoreSlim), зачем нужен ThreadPool, какие операции лучше выполнять синхронно, а какие асинхронно (CPU bound, IO bound), что такое контекст синхронизации, CancellationToken и в каких случаях может пригодится ValueTask.</p><p>Сеньор точно знает, какие структуры данных лучше использовать и почему, как посчитать сложность алгоритма и измерить эффективность выбранного подхода. Для этого на уровне мидл необходимо уверенно освоить способ Big O Notation, алгоритмы сортировки и поиска элементов в коллекции, а также иметь чёткое представление, в чём разница между Array и List, как устроен Dictionary и почему он работает быстрее чем List, что такое коллизии в Dictionary и как он взаимодействует с ними.</p><p>Не менее важно для Senior C# developer уметь работать с базами данных. Старший специалист не просто знает, как писать запросы и в чём разница между SQL и NoSQL. Он может обоснованно выбрать ту или иную базу данных для решения конкретной задачи, построить план запросов и правильно их прочитать.</p><p>Сеньору следует знать, что такое уровни изоляции транзакций и какие проблемы они решают, как нормализовать данные и какие индексы необходимо использовать для ускорения выборки данных. А ещё иметь понимание, что такое ACID и BASE, теорема CAP, шардинг и вертикальное масштабирование.</p><h4>Паттерны проектирования</h4><p>Старшему специалисту пригодится умение работать с паттернами проектирования. У сеньора должен быть навык выявления необходимого и достаточного паттерна проектирования для конкретной ситуации, чтобы не допустить «кода ради кода».</p><p>Senior C# разработчику необходимо понимать, как следовать принципам SOLID, DRY, KISS, YAGNI и GRASP. А также знать, как и когда применять архитектурные паттерны, например, SOA, Microservices, MVC, MVVM, Client-Server, Broker, и контролировать использование антипаттернов, таких как Spaghetti code, Accidental complexity, Lava flow, God Object, Dependency hell.</p><p>Чтобы научиться обдуманно подходить к использованию паттернов, рекомендуем ресурс <a href="https://www.dofactory.com/net/design-patterns">dotfactory</a> — здесь вы найдёте подборку паттернов проектирования на C# с подробным описанием и примерами реализации.</p><h4>Микросервисы</h4><p>Senior C# разработчику нужно знать, что такое микросервисы и уметь их строить. Как проектировать сервис, как делить его на слои, чем отличается многослойная архитектура от чистой, что такое low coupling и high cohesion, как обеспечивать консистентность данных — всё это не должно вызывать вопросов.</p><p>Чтобы прокачаться до уровня сеньора, необходимо подтянуть следующие темы:</p><ul><li>межсервисное взаимодействие: HTTP call, Message Broker (AMQP) и gRPC;</li><li>подходы микросервисных решений: CQRS, Event Sourcing, Circuit Breaker, Saga pattern, Sidecar, Database per Service, Shared Database per Service, API Gateway;</li><li>безопасность микросервисов: Basic Authentication, JWT, ASP.NET Core Identity, OpenID Connect или OAuth.</li></ul><p>А также разобраться с RESTful-сервисами, stateless и уровнями зрелости дизайна REST API.</p><p>Чтобы научиться правильно строить микросервисную архитектуру, рекомендуем прочитать книги Криса Ричардсона <a href="https://www.labirint.ru/books/707677/">«Микросервисы. Паттерны разработки и факторинга»</a> и Сэма Ньюмена <a href="https://www.labirint.ru/books/937994/">«Создание микросервисов»</a>.</p><h4>Контейнеризация и логирование</h4><p>Сегодня сложно представить проект, в котором не используются контейнеризация и методы оркестрации контейнеров. Поэтому сеньору важно знать, что такое Docker, зачем использовать Kubernetes, и разбираться в технологиях Docker swarm, Nomad, Consul.</p><p>Немаловажной частью работы над сложными системами является мониторинг и алертинг компонентов. В этом сеньору пригодится навык настройки логирования таким образом, чтобы оно не перегружало инфраструктуру ненужной информацией. Здесь помогут навыки работы с Grafana, ELK-стеком, Prometheus, OpenTelemetry.</p><h4>CI/CD и тестирование</h4><p>Ещё сеньору пригодятся знания CI/CD-процессов и умение их использовать, чтобы выпускать более качественный продукт. Сеньор должен понимать, какие критерии проверки необходимо включить в CI/CD-процесс, какие использовать тесты — unit или integration, и какой процент покрытия тестами удовлетворительный для конкретного проекта.</p><p>Сеньор может успешно выстроить CI/CD-процесс на проекте. Он не забывает об автоматизации билда, Self-testing сборке, о том, что каждый commit в master должен быть сбилженным, билды — быстрыми, тестирование на pre-prod среде — максимально приближенное к production, а деплой — автоматизированным.</p><p>Старший специалист уверен в том, что находить дефекты в продукте — прежде всего задача разработчиков, а не тестировщиков. Именно разработчики отвечают за качество и функционал кода. Чтобы подтянуть свои навыки в тестировании, необходимо изучить библиотеки MSTest, xUnit, NUnit, Moq, NSubstitute, а также разобраться в разнице между Dummy, Fake, Stubs, Spies и Mock объектами.</p><h4>Видение проекта</h4><p>Старший разработчик C# понимает, как устроен проект в целом, и старается принести своими решениями максимальную выгоду бизнесу. Он видит проблемы и осознаёт, как применение того или иного подхода повлияет на проект и его компоненты. Хороший Senior C# на уровне рефлексов знает, какое решение правильное, а какое нет, — опыта за плечами хватает.</p><p>Ещё один необходимый скилл для сеньора — находить точки интеграции компонентов с другими командами, системами. Зачастую некорректная интеграция может критически сказаться на разработке и принести много проблем и рисков.</p><p>Также Senior C# программисту важно понимать изолированный контекст компонентов системы, чтобы они не становились большими и перегруженными. И в этом помогут знания DDD-подхода — рекомендуем изучить.</p><h3>Личностные качества</h3><h4>Любовь к «чистоте» кода</h4><p>Читаемый код с понятной архитектурой и логикой, который без труда могут разобрать другие разработчики — вот, к какому коду следует стремиться Middle C# разработчику, чтобы вырасти до старшего специалиста.</p><p>При этом на уровне старшего программиста нужно не только заботиться о чистоте и простоте своего кода, но и учить этому своих младших коллег. По мере возможности сеньору стоит погружаться технически не только в свои задачи, но и в задачи коллег и тщательно проводить код-ревью.</p><h4>Коммуникативные навыки</h4><p>Разработчик сеньор часто ведёт проекты самостоятельно. Он умеет обрабатывать ТЗ, разбивать его на мелкие задачи и выстраивать план работ. Сеньор знает, кому из специалистов и что делегировать, и какие задать вопросы коллегам для прояснения ТЗ, чтобы задачи были выполнены корректно и в срок.</p><p>А ещё Senior C# — хороший командный игрок. Он правильно выстраивает коммуникацию, организовывает процесс работы и знает, как избегать конфликтных ситуаций. Научиться этому поможет книга Дж. Ханк Рейнвотера <a href="https://www.labirint.ru/books/497448/">«Как пасти котов. Наставление для программистов, руководящих другими программистами»</a>.</p><h4>Навыки ментора</h4><p>Одна из задач сеньора — помогать младшим специалистам развиваться и расти. У сеньора достаточно опыта за плечами и набитых шишек, поэтому он точно знает, как достичь цели или решить задачу быстрее и с меньшими потерями.</p><p>Менторский опыт важно приобретать уже на уровне мидл. Станьте наставником для своих младших коллег или присоединитесь к сообществу IT-менторов. Это поможет прокачать лидерские, преподавательские навыки, эмпатию и эмоциональный интеллект. Нелишним будет прочесть книги Гарвардской школы бизнеса <a href="https://www.labirint.ru/books/363439/">«Делай как я! Руководитель как играющий тренер»</a> и Ларри Кинга <a href="https://www.labirint.ru/reviews/goods/476482/">«Как разговаривать с кем угодно, когда угодно и где угодно»</a>.</p><h4>Работа с сообществом</h4><p>Не ограничивайтесь только рабочими задачами и находите время делиться опытом и знаниями с коллегами. Вклад в комьюнити шарпистов может быть хорошим толчком к развитию C# Middle разработчика.</p><p>Устраивайте семинары в своей команде, пишите полезные статьи на Tproger, Habr или англоязычных Medium или Hackernoon, выступайте с докладами, — например, ребята из dotnet.ru регулярно проводят оффлайн- и онлайн-встречи и всегда открыты к сотрудничеству.</p><p>Публикуйте свои pet-проекты на Github или участвуйте в open-source проектах на площадке. Такой опыт даст возможность поработать со специалистами из разных стран и областей разработки. И, возможно, именно вам удастся внести свой вклад в следующий популярный фреймворк или новую технологию.</p><h2>Полезные ресурсы</h2><p>Чтобы путь от Middle уровня C# до старшего разработчика был максимально коротким, следует запастись полезными ресурсами.</p><p>Кроме тех книг, которые мы рекомендовали по ходу дорожной карты, стоит прочесть также:</p><p>Также советуем подписаться на YouTube-канал сообщества разработчиков .NET <a href="https://www.youtube.com/@DotNetRu">DotNetRu</a> и авторский канал <a href="https://www.youtube.com/@nickchapsas">Nick Chapsas</a>, на котором регулярно выходят интересные разборы проблем C# разработчиков и обсуждаются новые возможности .NET.</p><p>А ещё рекомендуем читать новостной ресурс <a href="https://www.infoq.com/dotnet/">InfoQ</a> о разработке программного обеспечения и регулярно заглядывать на сайт глобального онлайн-сообщества шарпистов <a href="https://www.c-sharpcorner.com/">C-Sharpcorner</a>, где разработчики обмениваются знаниями и опытом.</p><h2>Вместо эпилога</h2><p>Чтобы быстро освоить базис дорожной карты, рекомендуем пройти курс для Middle-специалистов Route 256 от Ozon Tech <a href="https://ozon.ru/t/weAY2L8">«Продвинутая разработка микросервисов на C#»</a>.</p><p>Программа рассчитана на разработчиков с опытом от 3 лет. Преподаватели и тьюторы — инженеры Ozon Tech. За два месяца вы сможете подтянуть скилы и освежить знания. На курсе вы научитесь создавать и настраивать микросервисы на ASP.NET Core, эффективно работать с асинхронным кодом, проектировать сложные распределенные системы, создавать REST и gRPC API и другое.</p><p><a href="https://ozon.ru/t/weAY2L8">Учиться вместе с Ozon Tech</a></p><p>Надеемся, статья оказалась для вас полезной. Остались вопросы? Задайте их в комментариях.<br />Реклама ООО «Озон технологии» LjN8KVpnf</p>]]></content:encoded>
    </item>
    <item>
      <title>Сможете ли вы запустить, вырастить и не уронить сайт? Игра про DNS от Tproger и NGENIX</title>
      <link>https://tproger.ru/interactive/narrativ-ot-tipichnogo-programmista-i-ngenix</link>
      <comments>https://tproger.ru/interactive/narrativ-ot-tipichnogo-programmista-i-ngenix?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Ланский]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/interactive/narrativ-ot-tipichnogo-programmista-i-ngenix</guid>
      <description><![CDATA[<p>В этой игре вам предстоит использовать свои познания в DNS для запуска нового и быстрорастущего маркетплейса.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/interactive/narrativ-ot-tipichnogo-programmista-i-ngenix">Сможете ли вы запустить, вырастить и не уронить сайт? Игра про DNS от Tproger и NGENIX</a>»</p>]]></description>
      <category><![CDATA[Сетевые протоколы]]></category>
      <category><![CDATA[Системное администрирование]]></category>
      <category><![CDATA[Игры]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 17 Mar 2021 09:55:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>Технология DNS стара как мир, но это адресная книга интернета. Чтобы сайт был доступен для пользователей, не падал под большой нагрузкой и мог противостоять ряду сложных атак, необходимо правильно «готовить» DNS.</p><p>Сыграйте за нового сотрудника, которому предстоит запустить сайт маркетплейса и справиться с его растущей популярностью.</p>]]></content:encoded>
    </item>
    <item>
      <title>Чтобы попасть на стажировку в Google, достаточно закончить школу</title>
      <link>https://tproger.ru/partnered/google-probation-youngsters</link>
      <comments>https://tproger.ru/partnered/google-probation-youngsters?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Стас Воробьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/partnered/google-probation-youngsters</guid>
      <description><![CDATA[<p>18-летний студент ВШЭ Денис Солонков рассказал о стажировке Software Engineer Intern в Google и работе в офисе компании в Цюрихе.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/partnered/google-probation-youngsters">Чтобы попасть на стажировку в Google, достаточно закончить школу</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[История успеха]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Партнерский материал]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 12 Sep 2017 14:15:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>…И хорошенько постараться.</p><p>Денис Солонков — студент факультета компьютерных наук Высшей школы экономики, который попал на стажировку в Google после первого курса. Мы пообщались с Денисом и задали ему несколько вопросов о трудоустройстве в Google и о том, где и как он получил необходимые для работы навыки.</p><p>— Как ты попал в Google?</p><p>— История достаточно тривиальная: подал свое резюме на их программу летних стажировок, прошел на этап интервью, прошел интервью, получил предложение, и вот я стажируюсь в Google.</p><p>— Для многих работа в Google — успех, которого достигают гораздо позже юности. Сколько тебе сейчас лет? Кем ты работаешь?</p><p>— Полных лет мне 18, через пару месяцев будет 19. Сейчас я Software Engineer Intern.</p><p>Прим. ред. Инженер-программист занимается комплексной разработкой и руководством проектов, а программист реализует их путем написания кода.</p><p>— В каком офисе Google ты проходишь стажировку?</p><p>— В Цюрихе, Швейцария.</p><p>— Расскажи про офис, пожалуйста. Что там интересного? Еда бесплатная? 🙂</p><p>— Да, кормят бесплатно, шведский стол. Главный плюс в том, что Google адекватно относится к своим работникам. Например, у нас нет чётко ограниченного рабочего дня — фактически, я могу приходить и уходить когда угодно. Но я нахожусь в офисе столько времени, чтобы успевать работать по своим проектам, и так делают все. В Google понимают, что им не нужно заставлять людей работать — они сами этого хотят. К сожалению, я не могу вдаваться в подробности о внутренних процессах из-за соглашения о конфиденциальности.</p><p>— Хорошо, спасибо. Тогда немного сменим тему. Как тебе сама Швейцария?</p><p>— Страна очень хорошая, но дорогая. С местными уровнями зарплат это не проблема, но когда я приехал на первый месяц, это очень сильно меня удивило. Цены, к которым я привык, просто умножаются на десять. Но с Google в этом плане все в порядке, они достаточно платят.</p><p><b>— Давай поговорим о твоей специализации. Всегда ли ты хотел заниматься программированием?</b></p><p>— Мой отец работает программистом, так что уже в детстве я был заинтересован в программировании, но все попытки обучиться ему, которые я предпринимал самостоятельно, полностью провалились.</p><p><b>— Что помогло тебе продвинуться в этом деле?</b></p><p>— В нашу школу пришел представитель от <a href="https://goo.gl/iyiJvr">Школы программистов</a>, который рассказал нам о ней и предложил прийти на вступительные испытания. К тому времени у меня не было никаких занятий вне школы, плюс мне очень понравилась описанная представителем концепция, я решил попробовать. Ну и затянуло.</p><p><b>— Как ты строил свое обучение?</b></p><p>— Процесс обучения был более-менее стандартным, если можно так сказать: теория плюс практика. Мне очень запомнилась разработка калькулятора на чистом ассемблере. Дополнительно к основному курсу я посещал занятия по основам веб-разработки и программированию на Java.</p><p><b>— Что было самым интересным, чему советуешь уделить особое внимание?</b></p><p>— Олимпиадное программирование. Весьма большая доля того, чего я добился (поступление в вуз, стажировка в Google и т.д.) — прямое следствие из того, что я вложил большое количество усилий в этот курс.</p><p><b>— А самая трудная часть? </b></p><p>Может показаться странным, но самым сложным этапом моего обучения оказался самый первый год, когда я потихоньку проникался парадигмами и основными принципами программирования, учился смотреть на всё это под другим углом.</p><p>— Какие знания и навыки оказались самыми полезными для работы?</p><p>— Как я уже сказал выше, без навыков олимпиадного программирования я не смог бы пройти этап интервью (а скорее всего, и этап резюме тоже) и не поехал бы ни на какую стажировку. Задания, которые дают на этапе интервью стажёрам, весьма схожи с олимпиадными, так что благодаря моему опыту сложность интервью для меня была средней. Труднее всего оказалось не решить задачу, а суметь общаться с интервьюером на должном уровне английского языка. Из полезных навыков еще хочу выделить курс промышленного программирования, в ходе которого я изучил широкий набор полезных практик.</p><p>На этом мы распрощались с Денисом, поблагодарив за ответы. Если вы тоже хотите поделиться историей успешного пути в области программирования, рассказом о стажировке в крупной компании или тонкостями прохождения сложного интервью, пишите на <a>chief@tproger.ru</a> — самые интересные материалы мы постараемся опубликовать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Основы WebGL: разбираемся в магическом коде и заливаем на хостинг</title>
      <link>https://tproger.ru/partnered/webgl-host</link>
      <comments>https://tproger.ru/partnered/webgl-host?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Типичный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/partnered/webgl-host</guid>
      <description><![CDATA[<p>Пример на WebGL создаёт выпуклый 3D-эффект в HTML5-canvas с помощью градиента, а готовый проект размещается на хостинге GPDHOST.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/partnered/webgl-host">Основы WebGL: разбираемся в магическом коде и заливаем на хостинг</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Партнерский материал]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 31 Jul 2017 16:40:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>WebGL — технология, которая «создает магию» в 2D-canvas’е HTML5. Рассказываем, как за счет градиента добиться такого интересного 3D-эффекта, как выпуклость, не используя дополнительных библиотек и подробно объяснив всю «магию». По завершению работы с кодом мы зальем наш проект на хостинг <a href="https://gpdhost.com/">GPDHOST</a>, чтобы вы могли поделиться результатом со знакомыми.</p><h2>Код</h2><p>Начнем с примера: нарисуем прямоугольник на экране. Этот код должен срендерить прямоугольник с градиентом:</p><p>На самом деле, код рисует два треугольника, X и Y координаты каждого пикселя используются как R и G значения цвета, а цвета внутри треугольников экстраполируются и в результате получается прямоугольник с градиентом.</p><h2>Что происходит?</h2><p>Мы создаем canvas объект, который используется для рендеринга, а также два «странных» тега script. В качестве типа у этих тегов вы можете указать все, что угодно — главное, чтобы вы могли затем как-то извлечь эти элементы из DOM через JS. Важно указать такой тип, который не будет распознаваться браузерами как «javascript». Это позволит нам добавить невидимое многострочное содержимое в документ, с которым мы сможем работать позже. В общем, эти теги не имеют какого-то специального значения, это просто такой трюк, чтобы добавить нужную нам информацию в JS.</p><p>В коде мы видим два таких тега script. Их содержимое принадлежит двум разным шейдерам, с помощью которых мы будем «делать магию».</p><h3>О шейдерах</h3><p>Простыми словами, шейдеры позволяют сопоставлять входные пиксели с выходными пикселями и пиксели с выходными цветами. В нашем случае есть два шейдера: вершинный (vertex) шейдер, который сопоставляет входные пиксели их координатам, и фрагментный (fragment) шейдер, который сопоставляет пиксели с их цветами.</p><p>В шейдерах существует 4 основных типа «переменных». Первый — это uniform. Вы можете определить такую переменную с помощью JS, но в шейдере она будет read-only. Второй тип это attribute, который, условно говоря, используется для получения определенных атрибутов точки. Третий — varying тип, он позволяет нам пересылать данные с одного шейдера в другой. Четвертый и последний это const, он позволяет создавать константы.</p><p>Кроме них есть ещё float для чисел с плавающей запятой, есть типы vec1, vec2, vec3 и vec4 для векторов, которые на самом деле являются просто списком чисел с плавающей запятой. Есть также типы xyz, rgba и тд. Очевидно, они не имеют особых различий, поэтому не будем рассматривать их подробно.</p><h3>Как работает написанный выше код</h3><p>JS-код начинается с простой инициализации и начальной загрузки: получения canvas, получения gl-контекста и т.д.</p><p>Сначала мы компилируем оба шейдеры в одну «программу»:</p><p>После компиляции проверяем, скомпилировались шейдеры или нет. Вы можете использовать что-то вроде:</p><p>Так вы сможете получить больше информации о том, почему компиляция завершилась неуспешно. Для отладки желательно использовать Firefox, так как он выдает больше подробностей об ошибке, чем Chrome.</p><p>Функции main шейдеров не возвращают каких-либо значений. Вместо этого они должны устанавливать переменную, которую перехватит WebGL. Тем не менее, для удобства будем называть эту переменную возвращаемым значением функции. Например, вершинный шейдер должен установить переменную gl_Position, чтобы сообщить WebGL, какой именно пиксель canvas’а мы сейчас рисуем. Фрагментный шейдер должен установить переменную fl_FragColor, которая назначает цвет пикселя в формате RGBA. Устанавливаемое значение этих переменных может быть любым в диапазоне от −1.0 до 1.0.</p><p>var positionLocation = gl.getAttribLocation(program, "a_pos"); — это получение побайтового смещения для переменной a_pos в скомпилированной программе, которое нужно для установления значения positionLocation.</p><p>Далее создается буфер из точек, которые мы будем использовать в качестве параметров для рисования. Мы помещаем эти точки в буфер и говорим WebGL, как их интерпретировать:</p><p>Эта «строка» кода помещает координаты двух прямоугольников в буфер. Экранные координаты перечислены от −1 к 1, с верхнего левого угла к нижнему правому. То есть 12 значений выше — это, на самом деле, 6 координат вершин (&lt;-1,-1&gt;, &lt;1,-1&gt;, &lt;-1,1&gt;, &lt;-1,1&gt;, &lt;1,-1&gt;, &lt;1,1&gt;). STATIC_DRAW — это параметр для оптимизации, который для нас пока не очень важен.</p><p>Теперь мы сообщим WebGL, как использовать эти точки:</p><p>Здесь мы связываем каждую точку с a_post и переводим каждые два числа в число с плавающей запятой.</p><p>Само рисование треугольников происходит в последней строке: gl.drawArrays(gl.TRIANGLES, 0, 6);. Здесь три каждые три вектора объединяются в треугольники. Разберемся подробнее непосредственно в процедуре рисования.</p><h2>Как WebGL «рисует»</h2><p>Метод drawArrays работает с буфером, который мы подготовили: рисует из треугольник из трех пар координат.</p><p>Во время этого он применяет main-функцию каждого шейдера для каждой из координат. Вершинный шейдер передает эти координаты в gl_Position, устанавливая z равным 0 и w равным 1. Он также кладет координаты в varying переменные для использования во фрагментном шейдере. Фрагментный шейдер использует входные координаты, чтобы установить RGBA-значение переменной gl_FragColor: он берет vec2-координаты и создает из них vec4 для применения в качестве RGBA значения (r=x, g=y, b=0, a=1).</p><p>На самом деле мы всего лишь сообщаем WebGL, что нужно нарисовать те 6 точек (3 на каждый треугольник) и экстраполировать цвета между каждой, чтобы получить градиент. Та как мы рисуем три треугольника, они заполняют всю область просмотра. Никто реально не рисует прямоугольники, а составляет их из треугольников — это полезно для простоты и оптимизации.</p><p>Вот так будет выглядеть результат выполнения нашего кода:</p><p>Давайте теперь поделимся своим успехом с миром и зальем наше творчество на хостинг!</p><h2>Размещение проекта на хостинге</h2><p>Чтобы разместить наш проект, воспользуемся хостингом <a href="https://gpdhost.com/">GPDHOST</a>. Для нашего несложного эксперимента нам подойдет план Starter. Для удобства войдите на сайт — например, <a href="https://cp.gpdhost.com/clientarea.php?gmail=true">через аккаунт Google</a>, а затем добавьте план Starter в корзину. Далее вам будет предложено выбрать доменное имя — выберите понравившееся вам. Любой один домен в зоне .site, .party или .pro предоставляется GPDHOST бесплатно.</p><p>После получения доступа к контрольной панели хостинга, можете переходить к размещению веб-страницы с JS-кодом на сайте. В разделе «Quick Server Logins» кликните по имени выбранного вами домена, и далее в «Quick Shortcuts» выберите пункт «File Manager». Вам откроется такое окно:</p><figure><img src="https://media.tproger.ru/uploads/2017/07/tmp-2.png" alt="" /></figure><p>«Видимые» посетителям вашего сайта HTML-страницы должны располагаться в папке public_html, выберите ее в дереве каталогов слева. Далее кликните на «Upload» в верхней части страницы и загрузите файл <a href="https://media.tproger.ru/uploads/2017/07/bzDFcNjq4CBXGjiI.html">index.html</a>. Чтобы он корректно отображался при открытии вашего сайта, он должен называться именно index.html. Затем вернитесь на страницу, где был расположен раздел «Quick Shortcuts», и чуть выше этого раздела кликните «Visit Website» — теперь вы увидите на главной странице вашего сайта canvas с эффектом выпуклости.</p><p>Поздравляем, теперь вы можете поделиться своим проектом! Продолжайте изучать тему, чтобы дать своему проекту интересные пути развития.</p>]]></content:encoded>
    </item>
    <item>
      <title>Кто разрабатывает под iOS: результаты исследования рынка</title>
      <link>https://tproger.ru/partnered/ios-developers-market-research</link>
      <comments>https://tproger.ru/partnered/ios-developers-market-research?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Стас Воробьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/partnered/ios-developers-market-research</guid>
      <description><![CDATA[<p>Для простых iOS-приложений высшее образование не обязательно; английским свободно владеют три из десяти, а iOS популярна среди специалистов младше 30.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/partnered/ios-developers-market-research">Кто разрабатывает под iOS: результаты исследования рынка</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Партнерский материал]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 31 Jul 2017 12:06:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>iOS — вторая мобильная операционная система по количеству доступных в официальном магазине приложений. По данным Apple, Сейчас в AppStore насчитывается более 2 миллионов приложений, от почти полумиллиона разработчиков. Мы выяснили, кто занимается iOS-разработкой, и делимся с вами интересной статистикой.</p><h2>Кто занимается разработкой под iOS?</h2><p>Сейчас iOS — это платформа, популярная в основном среди разработчиков младше 30.</p><figure><img src="https://media.tproger.ru/uploads/2017/07/9-LET-SAMOMU-5.png" alt="" /></figure><p>Лиму Динг Вену из Сингапура было всего 9 лет, когда он стал создателем Doodle Kids — приложения для рисования и раскрашивания картинок. За короткое время его загрузили 880 000 раз по всему миру.</p><figure><img src="https://media.tproger.ru/uploads/2017/07/OBRAZOVANIE-6.png" alt="" /></figure><p>Для разработки простых приложений под iOS высшее образование не обязательно. Каждый четвертый разработчик справляется и без него.</p><p>Свободное владение английским языком также необязательно для разработки простых iOS-приложений. Всего три разработчика из десяти свободно владеют языком.</p><h2>Какие требуются технические навыки чтобы начать?</h2><p>Начать разработку под iOS просто. Для успешного старта необходимы:</p><ul><li>знание принципов объектно-ориентированного программирования;</li><li>умение работать в среде разработки Xcode;</li><li>знание языков программирования Objective-C или Swift.</li></ul><p>Первое приложение можно создать за 2 месяца, начав с нуля, а за год стать настоящим гуру.</p>]]></content:encoded>
    </item>
    <item>
      <title>Обзор Lokalise — сервиса для локализации приложений и обновления переводов «по воздуху»</title>
      <link>https://tproger.ru/partnered/lokalise</link>
      <comments>https://tproger.ru/partnered/lokalise?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Антон]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/partnered/lokalise</guid>
      <description><![CDATA[<p>Lokalise — платформа для локализации мобильных и веб-приложений. Сервис имеет SDK для обновления переводов «по воздуху» и удобен для работы в команде.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/partnered/lokalise">Обзор Lokalise — сервиса для локализации приложений и обновления переводов «по воздуху»</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Партнерский материал]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 25 Jul 2017 09:50:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>Lokalise — сервис для автоматизации процесса локализации приложений, который выбрали уже более 1 000 команд, включая MSQRD, Carousell, MEGOGO, Depositphotos. Мы изучили возможности платформы и в этом обзоре расскажем, за счет чего Lokalise помогает провести локализацию быстро и просто.</p><h2>Первое знакомство</h2><p>Войти в сервис можно, как пройдя традиционную процедуру регистрации, так и через аккаунты Google или GitHub. При первом входе нас встречает краткая инструкция по работе с сервисом:</p><figure><img src="https://media.tproger.ru/uploads/2017/07/Snimok-jekrana-2017-07-20-v-12.45.39-e1500544568912.png" alt="" /></figure><p>Подсказки продолжат всплывать каждый раз, когда вы будете появляться впервые в каком-либо разделе. Если краткой инструкции вам будет недостаточно, вы можете обратиться к исчерпывающей документации. В ней освещается широкий спектр вопросов, в том числе организация рабочего процесса. Инструкции по локализации для проектов под iOS или Android содержат скриншоты с подробным описанием необходимых действий от добавления файлов в сервис до реализации локализации в приложении.</p><p>Вы также можете в любой момент связаться напрямую с командой Lokalise через чат поддержки в правом нижнем углу страницы. Каждое сообщение при необходимости можно дополнить файлами и скриншотами.</p><h2>Работа с локализацией</h2><p>Сервис поддерживает множество различных форматов файлов: от наиболее популярных Apple Strings (.strings), Android Resources (.xml) и Comma-separated values (.csv) до JSON (.json) и книг Excel (.xslx). Необходимое количество ключей (меток) можно также создать и дублировать вручную без загрузки файла.</p><p>В рамках одного проекта вы можете настроить перевод сразу на несколько языков. Для каждой метки есть несколько вариантов:</p><ul><li>машинный перевод от Яндекс.Переводчика;</li><li>машинный перевод от Google.Translate;</li><li>подсказка из translation memory — сервис подскажет вам наиболее подходящий перевод на основе уже переведенных меток;</li><li>также вы можете оставить слово без перевода — это удобно тогда, когда термин в переводе не нуждается.</li></ul><p>Машинный перевод можно редактировать вручную, чтобы избежать ошибок автоматического перевода. Также можно заказать платный перевод всех меток для каждого языка носителем. Цена работы сразу отображается на странице с проектом:</p><figure><img src="https://media.tproger.ru/uploads/2017/07/Snimok-jekrana-2017-07-20-v-13.29.42.png" alt="" /></figure><p>Также отображается прогресс выполнения перевода в процентах от общего количества ключей для языка. При необходимости можно быстро найти и заменить значения, в том числе в рамках одного языка или везде сразу. Каждая метка может полностью или частично заимствовать значение другой метки, ссылаясь на нее.</p><p>В результате вы получите готовый файл с локализациями. Для скачивания можно выбрать удобный вам формат из множества доступных — в частности, с помощью Lokalise можно локализовать iOS-, Android- и веб-приложения. Сервис поддерживает интеграцию с App Store и Google Play для импорта и экпорта метаданных.</p><h2>Командная работа над переводом</h2><p>Lokalise подходит для работы над локализацией в команде.</p><p>Каждый из ключей можно снабжать поясняющей информацией: комментировать и добавлять скриншоты, чтобы вам и вашим коллегам было понятнее, в каком именно элементе интерфейса будет использована переведенная надпись. Более того, скриншоты при загрузке автоматически привязываются к меткам.</p><figure><img src="https://media.tproger.ru/uploads/2017/07/Snimok-jekrana-2017-07-20-v-13.43.32.png" alt="" /></figure><p>Также доступна история работы над переводом каждой отдельной метки:</p><figure><img src="https://media.tproger.ru/uploads/2017/07/Snimok-jekrana-2017-07-20-v-13.48.09.png" alt="" /></figure><p>Сервис поддерживает интеграцию со Slack и может присылать вам уведомления об изменениях в проекте при каждом сохранении. Также вы получите уведомления на e-mail и/или в Slack (в зависимости от настроек), если будете упомянуты в комментарии через «@». Еще одна полезная особенность — возможность участников работы над локализацией голосовать за различные варианты перевода.</p><h2>API и SDK сервиса</h2><p>Помимо «ручного» режима, Lokalise поддерживает также работу через хорошо документированный API по HTTPS. Доступ к API сервиса осуществляется по токену. Данные возвращаются в формате JSON.</p><p>Отдельная интересная и очень удобная особенность сервиса — SDK для Android и iOS. Он предназначен для обновления текстов без выпуска новых версий в магазинах приложений.</p><h2>Доступные тарифные планы</h2><p>Сервис имеет несколько тарифных планов: бесплатный, «Startup» за $40 в месяц при оплате за год или $50  случае помесячной оплаты, «Business» за $80 в месяц (соответственно $100). Все они отличаются ограничениями на число ключей, проектов, одновременно участвующих в разработке сотрудников и наличием доступа к SDK под iOS и Android (не доступен в рамках бесплатного плана) и прочим возможностям.</p><p>Также существует безлимитное предложение «Enterprise», которое оформляется в индивидуальном порядке, а также предоставляется бесплатно для open source проектов. Помимо отсутствия ограничений, этот план включает поддержку персональным менеджером и возможность заказать на доработку необходимую функциональность. При регистрации вы бесплатно получаете 14-дневный тестовый период с «Enterprise»-планом.</p><p>Мы также пообщались с коммерческим директором Lokalise — Петром Антроповым. Петр ответил нам на несколько интересных вопросов.</p><p>Расскажите, пожалуйста, подробно о различиях бесплатного и платного планов.</p><p>Бесплатный план довольно сильно обрезан. Он для тех, у кого нет $40 ($50) на нормальный план. Обычно те команды, что идут на новые рынки, достаточно хорошо профинансированы, поэтому бесплатный план выбирают либо не самые уверенные стартапы, либо принципиальные пользователи бесплатных решений, а их становится всё меньше и меньше. В бесплатных планах только 3 пользователя, 1000 меток (ключей), нет мобильных SDK, нет translation memory (автоматические предложения перевода на основе прошлых подобных) и translation history. Что-то можно делать, но и только.</p><p>Есть ли какие-нибудь бонусы для клиентов, сотрудничающих с вами длительное время?</p><p>Большинство команд покупают годовую, а не месячную подписку, она на 20% дешевле. В остальном, по клиентским отзывам, наш сервис наиболее удобен в использовании и богат на «фичи». К нам переходят из других сервисов, и пока что мы не видели ни одной отписки. Команды разработчиков, стартапы, веб-, мобильные студии и крупные компании готовы платить за сервисы, которые ускоряют выход на новые рынки, облегчают работу, убирают рутину, снижают количество багов и предоставляют уникальный функционал, c которым они делают то, что раньше не могли.</p><p>По поводу open source: как именно вы работаете с такими проектами? Какие необходимы подтверждения или т.п., чтобы получить по этой программе бесплатный «Enterprise» план?</p><p>На наше усмотрение предоставляем, пока споров не было никаких ? Кстати, мы очень просты в общении, на сайте у нас есть чат поддержки, в котором доступна вся команда. Отвечаем быстро и по делу.</p><p>Какую особенность или возможность своего сервиса вы считаете наиболее привлекательной для пользователя?</p><p>Помимо самого удобного веб-интерфейса (мультиязычный вид и т.п.) — это наличие iOS и Android SDK для мгновенного обновления текстов без новых версий в магазинах. С этим функционалом обновлять тексты можно так часто, как это необходимо, без долбежки пользователей обновлениями. Обновление происходит мгновенно, это не 1-2 дня одобрения обновления в App Store. Плюс это гарантия, что 100% пользователей сразу увидят новые тексты, а не 80% пользователей обновят приложение к исходу второго месяца, как это обычно происходит.</p><p>Также это мультиплатформенность меток (ключей), универсальные плейсхолдеры, поиск дубликатов и голосование по переводам. По словам пользователей, у нас лучший на рынке API и утилита CLI. Мы поддерживаем plurals (форму слова во множественном числе — прим. ред.), у нас есть референсы между ключами. Другими словами, Lokalise — это наиболее продвинутое решение по локализации и автоматизации переводов.</p><p>Над какими «фичами» ведется работа сейчас? Что можно ожидать в близкой перспективе, а что в длительной?</p><p>Итак, планы. В первую очередь это Live Edit — возможность вживую редактировать переводы с мгновенным просмотром в задуманных шрифтах на экране iOS- или Android-устройства или в эмуляторе, с трансляцией этого экрана на десктоп переводчика или менеджера продукта, с подсветкой актуального ключа и т.п. iOS-бету выпускаем в начале августа.</p><p>Далее будет инструмент по «заворачиванию» захардкоденного текста в метки (ключи), без которого этот процесс происходит вручную у тех, кто на скорую руку верстает, а потом думает про перевод.</p><p>В планах также добавление публичных проектов для крауд-переводов, длинный список интеграций и несколько вау-фич, которые мы пока не хотим называть ?</p><p>За новостями сервиса вы можете следить в блоге проекта. Помимо информации об обновлениях, в нем публикуются полезные рекомендации и инструкции по пользованию сервисом.</p><p>Резюмируя, делимся мнением Tproger: Lokalise существенно упрощает и ускоряет работу с локализациями, в том числе командную — в частности, вы можете быстро поделиться результатами с партнером, чтобы уточнить варианты для локализации.</p>]]></content:encoded>
    </item>
  </channel>
</rss>