Андрей Михин

Андрей Михин

Неделя
Dec 2, 2019 → Dec 8, 2019
Темы

Архив недели @xotta6bl4_

Понедельник


Привет из Новосибирска! С вами Андрей Михин @xotta6bl4_ и сегодня мы едем в Петербург.
notion image

Уф. Добрался я до Петербурга. Местные расстояния меня, конечно, не радуют.

У меня есть какой-то план и я буду его придерживаться.
notion image

Я пишу под Android и делаю это с 2012 года. Сейчас работаю в компании Bolt и живу в Таллинне, Эстония.

В Новосибирск меня занес DevFest, где я рассказывал про маппинги данных и кодогенерацию. Лайк если был на DevFest Siberia, ретвит, если был на моем выступлении. #dfSiberia

Первые деньги за Android-приложение я получил в 2013

Учился в Одесском политехе, на радиотехническом факультете. Начинал я с фриланса, первых клиентов искал сам в интернете. Немного сотрудничал с ребатами из Beetroot, когда они только приехали в Одессу. Фриланс был периодическим, между сессиями.

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

Кстати, до сих пор бережно храню свой первый выставленный счет на $200.

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

И я поехал в Санкт-Петербург. До этого в сознательном возрасте за пределами Украины не был, а тут собрал чемодан, упаковал в рюкзак свой ПК (разумеется, в разобранном виде). Про Петербург я тогда знал, только то, что там живет мой друг детства.

"Саня, я буду жить с тобой" написал я, Саня ответил "ОК" и я купил билет в один конец. Тогда прямого авиасообщения уже не было между РФ и Украиной, так что я отправился на автобусе в Кишинев, переночевал в аэропорту и наутро отправился в Петербург.

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

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

Местный тимлид посмотрел мой код, я пообщался с менеджером и мне почти сразу сделали оффер.

Так я окунулся в аутсорс.

Тем временем в Петербурге
notion image

Я добрался до автовокзала и у меня есть немного времени для ответов на вопросы

@pingwinator @mobileunderhood Или так https://t.co/m2VTwquo4O
Вот так видят аутсорс наши читатели twitter.com/Semper_Vivente…

У меня сегодня была 8 часовая остановка в Питере перед поездкой в Таллинн и я решился на авантюру. Перевезти велосипеды (2 штуки) в Таллинн.
notion image

Соль в том, что между Таллинном и Питером есть поезд (Москва - Санкт-Петербург - Таллинн) и он идет в неудобное время (отправление в ~6 утра)

И он дороговат. И есть 2 автобусные компании: Ecolines и LuxExpress. Правила перевозки велосипедов у них: Ecolines - едете в офис компании, платите 20 евро/велосипед, получаете бумагу, что компания разрешает везти велосипед на конкретном рейсе.

Дальше приезжаете с велосипедом к автобусу и водитель решает брать ли вас. Сомнительная перспектива если честно.

Процедура у LuxExpress: Приезжаете с велосипедом к автобусу, дальше водитель решает брать ли вас. Платить ничего не надо. Звучит интереснее.

К слову, я раньше всегда ездил эколайнсом в Финляндию/Эстонию, будучи туристом.

Велики хранились на Парнасе (самая северная станция метро в РФ). Автовокзал в центре города. Недавно у Яндекса увидел новую категорию Cargo (грузовые микроавтобусы). Сегодня вызвал Cargo такси, погрузил 2 велосипеда и чемодан размера ручной клади у нормальных авиакомпаний.

Суммарно килограмм 30. Водитель форда транзит удивленно спросил "И все?" и мы поехали. Приехал на автовокзал. Охрана сказала запихивать велосипеды в сканер и добавила что все так делают. Я честно изобразил попытку запихнуть его в сканер и потом пронес так.

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

@mobileunderhood Это аккаунт мобильного разработчика или что? 🤷‍♂️
Видимо, пора переходить от велосипедов к костылям twitter.com/ks_simakov/sta…

Раз я удобно устроился в автобусе, продолжим рассказ о моей первой работе...

Знаете ли вы эстимейты? О, вы не знаете эстимейтов! Всмотритесь в них. Отвратимо тикает таймер отсчитывая последние секунды оплаченного времени.

Кроме шуток. Выход за пределы эстимейта не оплачивался. Но задача сделанная быстрее эстимейта оплачивалась по эстимейту.

Более конкретно: вам приходит задача, вы ее оцениваете в 10 часов. Независимо от того, сколько времени вы реально делали эту задачу, вам оплатят 10 часов. Буквально за пару месяцев учишься оценивать максимально точно =)

Но почти у каждого в компании было несколько чудесных историй про проёб в 2 раза.

Через некоторое время компания перешла на оплату по таймтреку, так что не переживайте там сильно за нас)

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

У компании сейчас все хорошо, недавно они праздновали 10-летний юбилей. Я иногда захожу в гости пообщаться.

В Питере было весело. [Когда я только переехал]

Первое время мы с Саней снимали комнату в коммуналке 5х5м за 10к рублей на Староневском.

Саня работал фотографом и брал меня иногда на свадьбы ассистентом. В основном моей задачей было ездить со свадьбой и ставить вспышку/отражатель. Так я в первый раз прокатился по Питеру на лимузине.

 
Потом нашу комнату продали и мы разъехались. Я к тому времени "освоился" и снял себе отдельную комнату в коммуналке за целых 12к в месяц.

Потом и эту комнату продали, но я остался там жить. Вот оно, современное крепостное право.

Что еще было хорошего в те славные времена? Мне хотелось получить аккаунт на хабре и я написал статью. Аккаунт получил и забросил написание на 6 лет (ну ладно, было парочку нетехнических статей)

Так же я регулярно сидел на 4pda в разделе про программирование под Android и в один прекрасный день проснулся модератором.

Это был интересный опыт. Модерировал я около года. После окончания универа времени стало меньше и я забросил это дело. Так, что, возможно, я выписывал кому-то из вас рид-онли режим. Для справки: модераторство на форуме сугубо добровольное и безвозмездное. Но интересное...

В разговорах с другими мобильными разработчиками регулярно всплывает тема выбора платформы (Android/iOS). Прослеживается тенденция: если на старте уже были средства на мак, то человек с скорее всего шел в iOS. Если же был только линух/винда - скорее получим Android. А как у вас?

Вторник


Ну что, соскучились?
notion image

Сегодня поговорим по карьеру мобильного разработчика.

И я хочу начать с самой важного аспекта. С увольнения.

Про увольнение надо начинать думать на собеседовании. Вот представьте что вы несете заявление по собственному этому человеку.

@mobileunderhood нельзя сжигать мосты?
А ты шаришь! twitter.com/pingwinator/st…

Шутки-шутками, но это действительно важно. Говорю как знающий человек, который в этом году увольнялся дважды. Так что я в курсе последних трендов. 🔥🔥🔥

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

Вот, @pingwinator уже сталкивался с третьим пунктом. Да и у меня спрашивали референсы в одной эстонской компании (да, в Эстонии не только Bolt/Skype/Transferwise). Как-то раз и меня указывали в качестве референса для одной немецкой компании.

С увольнением связана такая штука заявление об увольнении. Некоторые считают что этим можно "пугать" работодателя. Я лично не пробовал, но говорят, что работает ровно 1 раз.

Зато заявление может быть маркером готовности уходить. Хотя я обычно грущу после написания заявления.

Кроме вопроса "как?" есть еще и вопрос "когда?" Это тоже важно.

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

А так можете на хабре почитать немного мыслей habr.com/ru/post/320760/ Мне кажется, что я затягиваю с моментом увольнения.

У меня была история: я достаточно долго пытался повлиять на процессы (было явно видно бутылочное горлышко в производительности команды) и через некоторое ушел. Почти сразу после подачи заявления я получил "зеленый свет" на изменения процессов.

Но я ушел из компании с мыслями, что в следующий раз мне придется опять писать заявление для продвижения своей идеи, а это ничем хорошим не закончится. Ну и при подходе Я: "давайте улучшать" М(енеджер): "нет" Я: приносит заявление M: ну ладно можно легко натворить дичи.

Черт, сложно писать так, что бы не было понятно что за компания.

(см. пункт про уважение в статье)

Вчера я закончил свое жизнеописание на том, что пришел в аутсорс. Продолжим же!

Мне повезло работать с хорошими разработчиками. Плюс достаточно малый срок жизни проектов (9-12 месяцев) и в результате я получил хороший буст в хард-скиллах. Ведь все что получилось так себе в этот раз можно будет переписать в новом проекте.

К тому же в аутсорс могут попасть прикольные проекты, которые фиг найдешь в продуктовых компаниях. Например, мы делали дополненную реальность на OpenCV и GL еще до того, как это стало мейнстримом.

Я как-то вызвался писать бекенд на джаве с использованием графовой БД. Ну или пришлось потрогать ксамарин. Или фронт админки на реакте.

Понятное дело, я писал не с нуля, а вкатывался в уже настроенный проект и продолжал по принципу "смотри как сделано и делай подобным образом"

Работая в аутсорсе, я периодически ходил на собеседования. Ну и раз в год я заглядывал в Яндекс с мыслью "почему бы и нет". Ну и с третьей попытки я прошел все кроме АА-секции (задачки на доске). Тут я радостно и побежал из аутсорса аж в Яндекс. На 3 месяца.

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

Поначалу пытался "прокачаться", решал задачки из cracking the code interview, решал задачки с hackerrank и других сервисов. Только вот смысла в этом особо не вижу и довольно скоро забросил.

В аутсорсе, кстати, я дошел до лида. Такого "аутсорсного" лида с 3 годами опыта.

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

@mobileunderhood Ты когда-нибудь клал болт?
положил на вопросы twitter.com/aarexer/status…

Ну и на ночь поговорим о том, как обеспечить себе долгую (ха! это говорит человек, который уволился из Революта через 4 недели) и комфортную работу.

Главное: становитесь лучше и делайте лучше компании. Одна из самых важных и интересных встреч на работе - это предувольнительная встреча. Выжимайте максимум обратной связи из коллег/руководства/подчиненных. На последней встрече можно услышать много нового о себе.

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

Проводите встречи с менеджером/лидом/подчиненными для синхронизации вашей самооценки и вашей оценки со стороны.

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

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

Вот героически победили все трудности и закрыли таску. Что может увидеть PM: простенькую кнопку он сделал, но сроки просрал, да еще и тестирование 2 раза возвращало задачу на доработку. Урежем-ка премию новогоднюю.

А ведь вы же чувствуете себя молодцом. А тут премия урезанная на Новый год.

Среда


Сегодня поговорим про Эстонию
notion image

Как я сюда попал? Линкедин - мне пишет рекрутер - несколько собесов по скайпу - оффер - переезд

Почему Эстония? Почему бы и нет. Близко к Питеру. Лайтовый переезд в плане языка. Как и в России, можно получать значительно выше средней по стране.

До болта у меня был оффер в другую компанию, но там не договорились по деньгам.

@zxovq @mobileunderhood Извините, не могли бы вы пожалуйста сказать, какая сумма указана в вашем контракте? Так лучше?
О, мне уже предлагают свой контракт опубликовать. twitter.com/vvsevolodovich…

Про деньги. Википедия говорит, что средняя зарплата на руки в Таллинне €1200. Средняя зп в ИТ на руки €1800. Посмотреть местные вакансии/зп можно тут: meetfrank.com - нужно будет поставить приложение.

Только что получил зарплатный квиток, расскажу за нологи. Есть калькулятор налогов. Можно посчитать. Как и в РФ, налоги платятся работодателем. Как и в РФ часть налогов взимается с вашей брутто-зарплаты, часть платятся работодателем поверх kalkulaator.ee/ru/kalkulyator…

В целом трудовое законодательство похоже на РФ. Отпуск 28 дней, 2 недели одним куском, 40 рабочих часов в неделю, вроде как поменьше праздничных выходных в году.

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

После обсуждения с переезда с женой и кошкой мы решили ехать.

После того, как ты принял оффер, мой дорогой друг, запускается машина по релокации и через 1,5-2 недели ты можешь начинать работать в Эстонии.

Сперва ты получаешь контракт, подписываешь его (я использовал сервис docusign.com), затем с тобой связывается ассистент по переезду из move my talent. Это твой лучший друг на ближайшие пару месяцев.

Также общаешься с рекрутером по поводу покупки билетов (Болт оплачивает билеты + месяц аренды на AirBnB)

Ассистент присылает тебе несколько анкет, на основе которых заполняет заявление на визу. Для получения визы тебе понадобится: паспорт, заявление (просто распечатать), фоточка (придется раскошелиться самому)

страховка на несколько месяцев (туристическая, придется потратить еще немного пиастров), справка о доходах, разрешение на работу(пришлет hr из компании), оплата консульского сбора (квитанция, в моем случае платила компания), подтверждение проживания (прислал ассистент)

И билеты. Через 1,5 недели получаете визу и приезжаете.

У меня в заявке день начала визы был за несколько дней до начала действия контракта, так что мне звонили из консульства с вопросом "а что вы собираетесь делать в Эстонии 4 дня?"

Также документы на D-визу не принимаются в визовом центре, так что придется ехать в консульство. Но ассистент по релокации забронирует для вас время.

Итак, виза в паспорте, билеты в кармане, чемодан собран, кошка обмазана сертификатами.

Приезжаем рано утром на вокзал, грузимся в поезд (я еще не плакался по поводу неудобного расписания?) и выдвигаемся в сторону Таллинна.
notion image

В Таллинне меня встречает ассистент из Move My Talent, вручает welcome pack (две симки, проездная карточка, карта города, всякие буклеты про интеграцию в Эстонии и еще что-то).

После приезда в Эстонию тебе нужно будет получить местный личный код (исикукод), который суть есть твой ИНН/СНИЛС/что угодно. И открыть счет в банке. Для нерезидентов тарифы конские по сравнению с РФ. К примеру, открытие счета €200, месячная плата €10, (для резидентов 0 и 1)

В моем случае компания платила за открытие счета, уточняйте этот момент при оффере. Также ассистент заполняет заявление на residence permit, бронирует время и отвозит вас в полицию на подачу документов. Там фоткаетесь и сдаете отпечатки в будочке и отдаете заявление.

Через 1-3 месяца получаете свою id-карту и свободно выдыхаете ибо вам открывается чудесный мир цифровой страны. Кстати, вход в интернет-банк осуществляется по id-карте. Ну или можно купить генератор паролей за €50.

Процесс получения пермита на порядок проще чем в РФ. Мне прям зашло. Кстати, некоторые компании дают возможность получить пермит только через некоторое время, например, после испыталки, которая тут 4 месяца. Или в конце D-визы, которая обычно на год.

Про расходы
notion image

Товарищи из компании с офисом в Лондоне почему-то нервно хихикают, когда узнают что в центре города можно снять квартиру примерно за €10-13 / метр квадратный. Ну ладно, еще коммуналка примерно 2 евро за квадрат.

Еда. Цены на еду в среднем сравнимы с питерскими. Экзотика дешевле, рыба дешевле. Сыры/хамоны в наличии. Бытовая химия - дороже. Средний чек в супермаркете 20-25 евро. Кафешки немного дороже чем в Питере. Обед в кафе возле работы: 4-5 евро.

Общественный транспорт. После получения id-карты делаете местную регистрацию и катаетесь бесплатно и безлимитно. Без регистрации месячный проездной €23. Часовой €1,1 Суточный €3 visittallinn.ee/rus/visitor/pl… В городе примерно 70 автобусных маршрутов, 4 трамвайных и 4 троллейбусных

Еще из расходов. Тут есть амазон. Обычно пользуются немецким, реже британским (до брекзита, хе-хе), потому что нет пошлин на покупки.

Одежда. Масс-маркет пересекается по брендам с российским. H&M, cropp, zara и прочие тут есть. Менять свои привычки в одежде особо и не пришлось.

Язык
notion image

@mobileunderhood Mobil id, smart id - тоже классные варианты
Смарт ИД - удобно, пользуюсь. Мобил ИД - нужна спец симка в телефон. Решил не заморачиваться. Если нужна "настоящая" подпись, то где-то недалеко обычно есть ридер. А для банка хватает смарт ИД twitter.com/Swither/status…

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

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

Связь. За домашний интернет + ТВ плачу €21 + несколько евро в месяц за телефон. Тут у местного оператора есть прикольный тариф. Кидаешь на счет 8 евро. Получаешь 5Гб трафика + минуты + СМС. Когда это заканчивается - начинаешь тратить те самые 8 евро. super.ee/ru/hinnad#supe…

Язык непростой. Нет будущего времени, нет предлогов, 2 инфинитива и 14 падежей.

Государство всецело заботится о интеграции понаехов. Есть государственные бесплатные курсы эстонского языка, есть всякие интеграционные курсы.workinestonia.com Есть даже отдельный курс для партнеров понаехов workinestonia.com/reinvent-yours…

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

Что вам еще про Эстонию рассказать?
notion image

К вопросу "Почему Эстония?" Мой коллега, переехавший из Москвы говорит "Там я 2,5 часа еду на другой конец города, тут я 2,5 часа еду на другой конец страны по свежему воздуху"

Четверг


Вот улицу возле порта достроили facebook.com/30463256661747…

Ну что, господа фронтендеры?

Ну правда, современное мобильное приложение: - в онлайне не работает или работает с большими ограничениями. - скачивает json с сервера и показывает список - написано на Java, а, как известно, Java и JavaScript - это почти одно и тоже.

Однако это почему-то не мешает на перепощивать шутки про фронтенд, PHP и 1C. А потом ходить по конференциям и с важным видом спорить о том, должна ли вьюха подписываться на презентер или же презентер должен передавать данные во вьюху.

О, адепты кросплатформы подъехали. Менеджеры никак не оставят свои влажные мечты про "Write once, run everywhere". t.co/BFebyAc0yB

А ведь вашим пользователям наплевать что у вас там. Натив или кроссплатформа; MVC, MVVM, MVP;или просто адекватный мобильный сайт. Главное чтобы работало.

Что не так с кроссплатформой? Кроссплатформа добавляет сложности в ваше приложение. Растет размер приложения. В восточной Европе легко говорить "Лишний мегабайт. А и пофиг." А тем временем в некоторых странах стоимость 1GB мобильных данных достигает 50...70 USD.

Замедлится приложение? А и пофиг! И неважно что тот же mono runtime может запускаться 10 секунд. На своем пикселе за 800 евро вы этого не увидите, менеджер не увидит, QA не увидит.

Я недавно месяц ходил с Redmi Go (который с Android Go). Это удивительный опыт, который я рекомендую всем мобильным разработчикам.

Потом я пиксель, конечно, купил

Далее вам нужны люди, которые умеют в эту самую ккроссплатформу. У меня на прошлой работе написали UI библиотеку поверх ксамарина. А теперь представьте порого вхождения: Android/iOS + С# + внутренний фреймворк.

Вы не поверите, но выкатывать обновления сайтов тоже можно без стора. twitter.com/DanVx77/status…

Ну ладно, у меня есть пара успехов с кроссплатформой. Первая - in-house система, приложения устанавливались на служебные устройства. Тут, как вы понимаете, сложно провалиться.

Вторая - приложение для обслуживания скутеров. Там как бы тоже без альтернатив. medium.com/bolt-labs/how-…

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

"Настоящие", мобильные приложения нужны когда вы строите распределенные вычислительные системы. Там уже начинается нормальная обработка падений сети, и мерж данных (см CRDT) и прочие радости жизни.

Еще одна тему, которую хотелось бы вскользь затронуть сегодня: мониторинг работы приложений.

Рядом же стоит аналитика. К сожалению, я не встречал ни одной идеальной системы аналитики.

Есть ли у вас мониторинг работы приложений (скорость работы, сбор диагностической информации)? Как вы расследуете инциденты, которые не воспроизводятся в тестовом окружении?

В большинстве случаев проект подключен к нескольким системам аналитики. Ивенты роутятся по каким-то правилам. Мрак, короче.

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

Пятница


Вот и пятница подкралась. День нюдсов и дикпиков.

Сегодня я хочу поговорить о всякой активности, слабо связанной с написанием кода. Как стать хорошим разработчиком? Как прокачаться и стать лудше? Что такое это лучше?

Начну, как обычно, со своей истории. Пока я был студентом разработчиком я часто тусовался на 4pda. Там прикольная тусовка, я ставил разные прошивки на свой телефон, рутовал, перешивал номер (мой первый android был cdma, там нет SIM и номер зашивается спецсофтом)

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

За 5 статей я попал в топ 100 писателей хаба "Разработка под Android" (есть хак: пересказ гугло-новости, который собрал +73, сейчас такое вряд ли пройдет) Но все равно не стоит гнушаться серыми методами.

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

Попробуйте себя в роли рассказчика. Можно начинать с внутренних мероприятий. В Тинькофф я был преподавателем в школе мобильной разработки. В этом году решился выступить на конфе, был на @GDGNsk куда меня позвал @vit_ius

Кстати, а кто на Мобиус не идет? Я вот не поехал в этом году.

Суббота


В автошколе перенесли занятие, так что понеслась!

Что вам нравится и что не нравится в современной мобильной разработке?

У меня уже давно болит от того, что дизайнеры верстают статику, а мы верстаем динамичные экраны. В реальности контент выглядит не так, как задумывалось.
notion image

Или вот так
notion image

@mobileunderhood Overengineering.

К слову, современный веб от этого тоже страдает. И мне очень нравится подход @andrey_sitnik который пытается донести, что не в каждый проект нужно затягивать react

И раз уж мы дошли до реакта. RxJava!

RxJava - худший фреймворк, если не считать всех остальных.

Разные сущность (observable, single, maybe...) слепили в один пакет и сделали одинаковый контракт.

Воскресенье


Наступил последний день недели. Давайте поговорим немного про автоматизацию. Ну и вопросы из зала, конечно же

Очевидно, что всякую рутину нужно автоматизировать. Говоря о разработке, автоматизацию начинают с CI. Говоря о CI часто подразумевают какую-то сложную систему в большой корпорации. Чушь это все! Сегодня даже для вашего домашнего проекта можно найти бесплатную CI-ку

Например, Travis. Единственное условие бесплатности - открытый исходный код вашего проекта. "Но мы не пишем тестов" уже слышу я возражение. А и пофиг. Настройте проверку собираемости вашего проекта, уже будет хорошо.

Окей, вы работаете в маленькой компании, ресурсов на CI не выбить, даже тупо на маленький комп, куда можно поставить бесплатный Jenkins. Настройте на своем рабочем компе сборку сборок по ночам. Уже будет проще и можно будет раньше определить момент, когда проект не собирается

К тому же вопрос менеджера/qa "когда будут сборка? нам нужна сборка!1" не будет выбивать вас из процесса.

Например, моей первой автоматизацией был плагин для gradle который заливает сборки на diawi. Мы использовали этот сервис на нескольких проектах на первой работе. github.com/devindi/diawi-…

Если пойти немного дальше, на CI-ке можно гонять тесты (но их писать нужно) и анализаторы проекта (lint, ktlint, detekt и другие). Можно настроить бота, чтобы он приходил в PR (pull request) и писал в комментариях найденные проблемы.

Вот тут можно посмотреть связку ktlint + danger (как бот для комментирования) + codecov в действии. github.com/devindi/mapwal…

ktlint мне не понравился, у них нельзя правила настраивать, только включать/выключать. detekt в этом плане выглядит интереснее

Если пойти дальше с стат анализом кода, можно посмотреть на sonarqube. Он умеет в анализ + ведет историю качества правила довольно удобно настроиваются в админке. Тут habr.com/ru/company/yan… можно послушать или почитать @kzaikin про sonarqube.

Есть еще PVS Studio, который недавно научился в джаву, но котлина нет. Я его не пробовал, но по постам авторов все выглядит красиво.

Что еще можно автоматизировать кроме сборки/публикации? Да что угодно! Например, я недавно написал программу, которая по расписанию запускается и ищет протухшие ветки в репозитории/задачи в джире. Результаты поиска пишутся в канал в слаке.

Есть sonarcloud - хостящийся не у вас. Как обычно, бесплатно для open source

Одна из причин иметь свой домашний проект с открытым исходным кодом - на нем можно обкатывать разные инструменты/подходы/библиотеки нулевыми затратами

@pingwinator Молодёжь, к сожалению, не ценит время, как главный ресурс. Отсюда и рождаются такие мысли
дед кряхтит twitter.com/whiteraven224/…

Мое время подходит к концу, спасибо, что были с нами. С вами был Андрей @xotta6bl4_ и в полночь я превращусь в тыкву... вернусь в ряды читателей. Stay tuned

Ссылки