Хабрахабр

Как устроен рабочий день членов ПК AppsConf

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

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

А рассказать о себе, потому что они тоже делают полезные и крутые вещи. В третий выпуск Run Loop — подкаста про тех, кто делает продукты своими собственными руками — ведущие решили никого не звать.

Роман Бусыгин ведущий разработчик Яндекс музыки для iOS.

Илья Царев Head of iOS в Альфа-банке.

Алексей Милеев Android разработчик App in the Air.

Опыт. Публичные активности

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

Я помню, когда платформа ещё называлась iPhone SDK, это была вторая Beta iOS 2. Я в iOS разработке практически с самого начала. Меня привлекло в платформу то, что я практически год пользовался первым iPhone, я любил на него фотографировать разные интересные вещи из своей жизни, но фотографии так и оставались на устройстве, а мне хотелось ими с кем-то поделиться. 0. Дальше оно закрутилось, завертелось. Мой первый проект был как раз клиент, который умел эти фотки загружать из моего iPhone в интернет. В моем послужном списке отметились Яндекс.Карты, Поиск, Браузер, КиноПоиск, smartpass — это приложение для iPad, которое пускает вас в кинотеатры, Яндекс.Афиша. Тогда я работал в Яндекс и там этот проект приняли с большим интересом.

Потихоньку-помаленьку я стал организовывать Яндекс субботники по мобильной разработке, которые постепенно переросли в отдельный формат мероприятия Yandex Mobile Camp, который дорос до отдельной мобильной секции на большой конференции ЯндексаYet another conference. На заре становления iOS разработки информации было очень мало, и мне очень хотелось самому о чём-то рассказать и найти тех первопроходцев, которые также копали в своем уголке, потому что тогда это еще не было модно. В первый раз я стал гостем в Подлодке. Список публичных активностей можно дополнить и подкастами. Вот такая моя краткая история. Этот опыт мне понравился так, что я решил продолжить, и теперь я с вами в выпуске подкаста Run Loop.

В iOS разработке я относительно недавно — всего 5 лет. Илья: У меня опыт, конечно, не такой внушительный, как у Романа. Всё моё знакомство с iOS разработкой пошло из института. Я начал с iOS 6. Мне понравилось, и я подумал, что программирование может быть интересным: это же не просто там писать какую-то ерунду, а можно делать приложения и трогать их руками, это классно. На третьем курсе мы с ребятами начали делать проект. После этого я успел поработать в нескольких стартапах. Так я начал заниматься iOS разработкой. Всё было более-менее хорошо. Одни закрывались за пару месяцев, а другие жили несколько лет. Это был Альфа-Банк, в котором я работаю уже три года. Потом я попал в большую компанию. За это время я успел побыть в Альфа-Банке обычным продуктовым разработчиком, потом лидом, на текущий момент я руковожу всей iOS разработкой.

Поэтому мы решили сделать свои митапы, которые должны были быть более камерными с меньшим количеством людей (не так страшно), и рассказывать именно про то, как у нас происходит это в Альфа-Банке. Из публичного мне всегда было интересно выступать на митапах — я всегда боялся этого. Так появился iOS-митап Mobile Talks. Мы хотели рассказывать про свой опыт и показать всем, что банки могут быть не только страшными, огромными, бюрократическими организациями, но и классными с точки зрения инноваций и технологий. В подкастах я первый раз, и за это стоит сказать спасибо AppsConf.

Опыт. Дорога в программирование

Алексей: Я занимаюсь Android около 5 лет. Из них три года и один месяц работаю в App in the Air. Началось всё еще в школе. Я уже начал понимать, что программирование это что-то интересное. Когда у тебя просто был компьютер, вроде бы не было ничего, потом ты что-то такое написал, и появилось что-то новое. Такая магия программирования завлекала. Но входить я в это дело начал, мягко говоря, сбоку. Я не знаю, почему так получилось, но первое, что мне попалось, это учебник Perl. Это было довольно страшно. Ни для кого не секрет, что приличная часть российского общего и высшего образования — это шпаргалки, без них никуда. После того, как мы с друзьями сдали все экзамены в физмат лицее, мы решили, что всё, что у нас было по физике и всем разделам математики неплохо было бы загнать в какую-то электронную шпаргалку. Так появилось наше первое Android приложение. Потом мой товарищ адаптировал его под iOS. Приложение «Книга формул» — это справочник с формулами, который до сих пор живет в обоих Store: Google Play и AppStore. Был несколько темный период, когда мы с тем же другом занимались стартапом, рассказывать про который подробно я не буду. Единственное про него скажу, что хостился он на ныне покойном Parse, если помните, у Фейсбука был такой Parse.com. Это была соцсеточка, которая дала много разного интересного опыта, потому что пришлось позаниматься очень многими аспектам. Она успешно загнулось, когда я был студентом второго курса. Деньги нужны. Я понял, что программирование — это ж тема, оно всем интересна. Я подумал, что родители заинтересованы в том, чтобы учить детей программированию, и предложил репетиторство: «Научу делать Android приложения». Я рассчитывал на детскую младшую аудиторию, а в итоге как-то так получилось, что учил 30-40 летних дядек. Это было довольно странно, но интересно. Кстати, несколько из них за наши курсы, за то время, что мы занимались, практически от ничего успешно дошли до оффера и пошли джунами куда-то работать. На третьем курсе я думал, куда бы отправиться на летнюю практику. Сначала думал, что надо просто взять список топ студий по мобильной разработке, которые есть в Москве, написать им кто я такой и что умею, чтобы меня взяли практикантом. Но пока я рассказывал эту штуку одной хорошей подруге, через неё вышел на App in the Air. Я пришел к ним, сделал тестовое задание, прошел практику, стажировку и с тех пор я там.

Мой опыт тоже непрямой, так как я не учился на чисто программистском факультете. Роман: Алексей поднял интересную тему о пути в программирование. Мой первый компьютер — это была игровая станция, где я учился переставлять windows. Я практически всегда решаю с помощью компьютера какие-то свои прикладные задачи. Именно в программирование я пришёл, благодаря курсам ещё в школе. Я до сих пор, наверное, помню, как это делается, даже с закрытыми глазами смогу сделать. Они меня настолько завлекли, что я решил записаться на курсы. Я увидел, какие красивые рисунки, графики можно запрограммировать. Илья, ты учился на программиста или это тоже было сбоку? Это был Pascal, и было очень увлекательно.

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

Я закончил в итоге тоже прикладную математику в ВШЭ. Алексей: Про жуткую математику. Разница только в том, что последние два года она была не столь ужасной, потому что я не часто появлялся в универе. Впечатления точно такие же: ужасная математика 4 года. Такой совет как бороться с математикой. Это очень помогает.

Пожалуйста, не слушайте его, дорогие студенты, это вредный совет. Роман: Лайфхак замечательный.

Образование программистов

Илья: У вас работают ребята без диплома? У меня прямо в команде есть человек без диплома, и у нас есть несколько Android разработчиков, которые тоже ничего не закончили и при этом кодят очень круто.

В App in the Air такая политика подбора кадров. Алексей: У нас довольно много людей, которые еще студенты. Они делают какие-то задания. Мы всегда приглашаем очень много студентов на летнюю практику. БОльшая часть тех, кто сейчас есть, набирались с таких практик и стажировок. Те, кто сделал круче всего, получают подарки и предложения уже прийти на стажировку. До недавнего времени бОльшая часть была из Высшей Школы Экономики, но не с прикладной математики, а с программной инженерии.

Вопрос поставил меня в тупик. Роман: Я никогда не обращал на это внимание. Мы всегда смотрим на результат. Но, если мне не изменяет память, много ребят с дипломами. Скорее всего, все с высшим образованием.

Про продуктовую разработку

Илья: Давайте поговорим про что-то приближенное к тому, чем мы занимаемся — про продуктовую разработку. Лёша, что ты считаешь важным в продуктовой разработке?

Самое важное — это просто не забывать о том, что в итоге ты делаешь штуку (я конкретно про мобильную разработку), которая будет рисоваться на небольшом экране, и с ней будет взаимодействовать живой человек. Алексей: Довольно интересный вопрос, я бы даже сказал сложный. В погоне за модными техническими решениями, за гибкими архитектурами надо помнить, что в реальности пользователю плевать, что у тебя внутри — главное, чтобы оно работало, желательно быстро и без багов. Это всё, чем ты занимаешься. Почаще обращать внимание на фидбеки, которые тебе дают, как пользователь себя чувствует.

Это в первую очередь клиентское приложение. Илья: Да, тут я с тобой согласен. На самом деле это же не совсем так. Но ты так говоришь, что можно услышать так: «Забейте на архитектуру, это вообще неважно, какая разница». Всё равно об этом нужно думать. Если мы на начальном этапе не сделаем что-то, оно нам потом аукнется.

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

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

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

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

Я чуть-чуть хочу отойти в сторону и задать вопрос Лёше. Роман: Интересно. У вас их несколько? Я почему-то думал, что App in the Air — это одно приложение.

App in the Air

Алексей: По факту это одно приложение на Android и на iOS. Если совсем просто, то App in the Air — это трекер полетов — помощник путешественникам. Наша целевая аудитория — это люди, которые очень часто летают. Мы стараемся сделать всё, для того чтобы облегчить их жизнь тем, о чём говорил Илья — сохранить им время. Есть ещё побочный продукт, который является маленькой копией App in the Air для встречающих. То есть если ты встречаешь родственника с самолета, то можешь использовать приложение с урезанным функционалом. Но это не основная ветка, и был, скорее, эксперимент.

У меня создалось ощущение, что у вас большая команда, и вы чем-то все занимаетесь, но App in the Air — это одно небольшое приложение. Роман: Что меня удивило, ты сказал, что вы постоянно приглашаете людей на стажировку. Это так или нет?

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

Роман: Все эти стажеры, которых вы приглашаете, в разработку идут или равномерно распределяются по всем направлениям в компании?

Как это происходит? Алексей: Примерно равномерно. Мы им говорим: «Смотрите, можно делать то-то, то-то и то-то». Приходят студенты, которым нужна практика. Не выдуманные, а то, что мы можем, если сделано хорошо, взять встроить и использовать. Там целая пачка самых разных реальных задач. Много задач по Data Science и машинному обучению. Они выбирают, что им больше нравится: кому-то Android, кому-то iOS, кому-то backend, кому-то Веб. Даже если пришло очень много студентов, далеко не все в итоге остаются, но какая-то часть всё равно оседает у нас в компании и становятся нашими сотрудниками.

Рабочий день

Роман: Интересно послушать, как у кого строится типичный рабочий день. Илья, как у тебя всё происходит?

Поэтому типичный рабочий день состоит у меня из нескольких встреч, нескольких параллельных встреч, нескольких срочных встреч и еще ряда дел, которые надо срочно решить. Илья: У меня не совсем типичная история, потому что я сейчас больше менеджер, чем разработчик. Нужно расставлять приоритеты. Бывает проблема, что нужно все успеть, а что-то не нужно. Это, наверное, самое сложное в моей работе, потому что нужно понимать, чем ты должен заниматься через 5 минут, и желательно понимать это заранее.

Даже после двух часовых встреч в день, я чувствовал себя выжатым, как лимон. Как ты справляешься с таким потоком? Роман: Когда я руководил группой разработки Яндекс.Браузера, очень сложно давалось несколько встреч в один день.

Мой обычный день — четыре встречи минимум. Илья: Наверное, я к этому привык. Я иногда всё же стараюсь контрибьютить куда-то. Некоторое время я себе сам бронирую в календаре, когда знаю, что мне нужно сделать какую-то техническую задачу или что-то по проекту. У меня всегда есть план на неделю, что я обязательно должен сделать. Поэтому планирую дела в календаре.

Кстати, крутой совет: записывать все свои дела в один трекер задач.

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

Роман: Получается, что у тебя и рабочие задачи, и твое личное где-то хостятся в одном месте.

Я использую для этого Wunderlist. Илья: Да. Например, для AppsConf мы используем Trello. Если говорить про рабочие задачи, то там все же это календарь и чуть-чуть Jira. Для своих вещей я использую Wunderlist. Но мне лично Trello не очень хорошо заходит.

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

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

Например, хобби. Роман: Помимо работы в твой рабочий день что-то ещё вписывается? Что ты делаешь утром, вечером?

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

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

Каждый день есть stand-up, мы синхронизируемся нашей распределенной командой. Роман: Мой рабочий день относительно спокойный в плане встреч. Как обычно все стендапятся, так и мы стендапимся. Несколько человек сидит в Москве, бОльшая часть в Новосибирске. За всё время, что я занимаюсь разработкой, у меня есть два режима работы.

  • Режим потока, когда я понимаю что нужно сделать, и мысль льется рекой. Я себя никак не сдерживаю и не останавливаю. Этот поток я могу просидеть до двух часов и писать код.
  • Режим, который используется для задач с большим количеством неопределённости, чтобы я четко понимал, есть ли у меня прогресс в этой неопределенной задаче. Это техника Pomodoro, таймер на 25 минут. Перед началом очередных 25 минут я выставляю микроцель — в конце смотрю, достиг ли цели. Если я не достигаю цели три томата подряд — это повод задуматься: либо пойти отдохнуть, либо переоценить и подойти к решению с другой стороны.

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

Я решил провести эксперимент и включил в телефоне режим «не беспокоить». Илья: Тут я с тобой полностью согласен. В таком режиме я живу уже третью неделю. Единственное, что я оставил, это все входящие звонки. Я вообще не дергаюсь теперь по любой вибрации, потому что их просто нет. Блин, как же спокойно стало.

Что меня раздражало в Telegram, так это то, что по умолчанию все уведомления приходят в часы и жутко вибрируют. Роман: Я долгое время жил с iPhone и Apple Watch. Это тоже помогает. Сейчас я решил поставить эксперимент: полностью переехал на Android. Я не стал туда ставить ни Twitter, ни Instagram, Telegram по умолчанию в беззвучном режиме. Я чувствую себя гораздо спокойнее.

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

Илья: Лёша, расскажи, пожалуйста, как проходит у тебя рабочий день.

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

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

Если ты пилишь какую-то задачу, допустим, неделю, то обычно ты указываешь часть 1, часть 2, часть 3. Еще одна штука, которой я пользуюсь, это не приложение, а табличка в Excel, в которую я заношу всё, что сделано за эти два часа: пишу дату, временной интервал, что конкретно было сделано и какие-то пояснения к этой задаче. Там есть столбик для пояснения. Таких у тебя 30-40 частей и так далее. Ты видишь сколько реально часов ты работал. Эта штука помогает, во-первых, сразу оценить насколько ты хорошо сегодня поработал. Это не чтение статей, не листание Фейсбука. В моём случае это чисто работа с кодом: либо я его писал, либо читал, либо я его дебажил. Глядя в такой список, ты видишь: «Ага, примерно такая же задача у меня в прошлый раз заняла четыре часа, в позапрошлый раз — пять часов. Плюс, она помогает оценить какую-то динамику: насколько ты больше стал успевать, позволяет находить задачи, которые похожи на то, что тебе предстоит и, соответственно, дать более точную оценку. Если от тебя требуют дать какую-то оценку, то это тоже помогает. Следовательно, за 3-4 часа я и в этот раз сделаю». Такое поминутное трекание может превратиться в не очень приятную штуку, если тебя начинают на работе трекать поминутно. Понятно, что эта табличка такая совершенно приватная, никому к ней доступа нет.

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

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

Роман: Ещё пару моментов, которые я считаю важными.

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

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

Я хотел бы дополнить твой комментарий. Алексей: Подкаст — отличное хобби, да? Это число X не твой полный максимум. Допустим, есть у меня некоторое число X часов в день, которые я в норме пишу код. Но я за собой заметил такую штуку, что если такие, назовем их условно переработки (хотя тут никто ни за кем не следит, поэтому всё честно), накапливаются в течение 2-3 дней, потом на гораздо больший срок у тебя, как ты сказал «голова не работает». Можно сделать еще два или четыре сверху. У тебя просто базовые вещи начинают медленнее происходить. Это реально так. Но вот этот эффект имеет свойство быть. Те задачи, которые решал за полчаса, начинаешь решать по часу и непонятно почему, ведь ты тот же сидишь. Лучше ты будешь работать каждый день Х часов эффективно, чем ты один раз сделаешь много и потом будешь сидеть тупить. Поэтому это свое некоторое число X лучше знать. Но надо помнить про дедлайны.

Инструменты для работы

Илья: Давайте поговорим про то, что вы используете для работы? Может быть, это какая-то IDE, если это вдруг не Xсode. Алексей наверное использует не Xсode, а что?

Я думаю, это было бы даже очень интересно попробовать. Алексей: Было бы странно писать Android приложение в Xсode.

Я использую Android Studio, и MacOS. Для Android разработки сейчас два стандарта: Android Studio, либо IntelliJ IDEA.

Илья: А какой Git клиент?

У меня была прекрасно отточенна терминальная версия, добавлен alias. Алексей: Долгое время я очень недоумевал, когда видел людей, которые пользуются Git клиентами с UI. Всё это было прекрасно до того момента, пока я не открыл для себя GitUp. Он мне там цветные графы вырисовывал со всеми ветками — сидишь, не нарадуешься. Его стоит попробовать, потому что становится быстрее. Есть такое бесплатное приложение для Mac. Там нельзя некоторые вещи сделать с помощью горячих клавиш или их долго и сложно учить, но очень многие вещи он в итоге упрощает и ускоряет. Да, там можно сделать то же самое. Эти вещи супер ускорены. Особенно те, которые связаны с диффами, когда тебе нужно понять, что именно ты сейчас коммитишь и что поменялось.

UI у меня, скорее, для подставочного коммита или какого-то разделения и редактирования существующих commit messages. Роман: У меня похожий подход, но я до сих пор пользуюсь терминалом, для того чтобы сфетчить изменения, сделать rebase и вот это вот всё. Я тоже пользуюсь GitUp — классная штука.

Я умею, но мне никогда не нравилось. Илья: Я наоборот, никогда не пользовался терминалом для этого. Сказали: «Смотри, это классный комбайн, он умеет всё». Я долгое время пользовался просто Xcode, потом меня научили пользоваться SourceTree. Это очень прикольная штука. Я им пользовался, а теперь перешел на Fork. Он красивый, есть черная тема, и решает все мои задачи. Он пока бесплатный, но говорят, скоро станет платный.

Я недавно не поскупился и разорился на лицензионную версию приложения Dash для Mac. Алексей: Хочу еще одну штуку обязательно упомянуть. Но для Mac она платная. Есть его аналоги и для Windows, и для Linux, причём бесплатные. Dash даёт: Это штука, в которую можно офлайн загрузить документацию из кучи разных мест.

  1. Документацию офлайн, которую можно посмотреть всегда. В случае, например, с Android документацией это получается гораздо быстрее, чем открывать сайт, потому что сайт у них медленный.
  2. Ещё она дает snippets. Пишешь кусочек кода, присваиваешь ему alias. Пока у тебя запущен Dash, ты пишешь этот alias, нажимаешь Tab и он прямо делает «paste» твоего кода. Можно ворочать очень большими кусками кода, и это очень ускорит работу. Он не зависит от IDE, поскольку может скопировать хоть в блокнот, хоть в Xcode, хоть в Android Studio.

Илья: Да, Dash — крутая штука. Я тоже использую, и мне нравится. Роман, скажи, что используешь ты?

Пока он не превратился в такого неповоротливого слона, я был им очень доволен. Роман: Я начинал с Xcode. В те времена Swift не было, а был Objective-C. Потом я увидел какие классные штуки можно делать в IntelliJ IDEA. Ты можешь столько всего делать с кодом: быстрые рефакторинги, переименования. Я пересилил себя и сел за AppCode и получал просто кучу удовольствия. Сейчас, к сожалению, пришлось вернуться на Xcode, потому что AppXode какое-то время чувствовал себя не очень хорошо со Swift, и всех тех плюшек, которые он мне давал в Objective-C, просто не было. В этом продукты JetBrains показывают свою мощь. Сейчас пользуюсь Xcode, потому что без него никуда.

Алексей: Такой вопрос: Vim или Emacs?

Роман: Vim.

Я не умею выходить из Vim, поэтому у меня Emacs. Илья: Emacs.

Роман: Меня ещё в универе научили, поэтому всё нормально.

Алексей: Рома, ты используешь Vim поверх Xcode в повседневной работе?

Роман: Нет, я разделяю личное и рабочее.

Поскольку есть и для IntelliJ платформы и для Xcode плагины под Vim, перенес их туда. Алексей: Наверное, года два назад я как-то пересилил себя, потратил время и сначала научился пользоваться Vim на Pet Project в консольке в проектах на Python. После них не представляю как можно редактировать код по-другому — всё это кажется очень медленным, неудобным и всё в этом роде. Это, конечно, супер штука.

Я посмотрел, как люди играют в Starcraft. Роман: Я пришел к теме шорткатов чуть-чуть с другой стороны. Я начинал с мышки, но потом увидел, как можно делать на клавиатуре.

То есть я, скорее, выберу какой-то простой небольшой инструмент, либо буду пользоваться тем, что идет в составе операционной системы. Если возвращаться к тому, какими инструментами я пользуюсь, в целом, у меня подход разумного минимализма. Илья, я предлагаю перейти к тебе. Благо, MacOS полна качественного встроенного софта, которым я очень доволен. Чем ты пользуешься ещё? Ты рассказал уже про SourceTree, про Fork. Ты же менеджер. Почтовый клиент?

У нас есть корпоративный стандарт, поэтому это такой прекрасный клиент, как Lotus Notes. Илья: Да, с почтой тут интересно. Хорошо, если вы не знаете, что это. Я не хочу о нем говорить, если честно.

Он позволяет классно структурировать информацию. Из интересного я активно пользуюсь Mind Map, в частности использую для этого MindNode. Я в него очень часто записываю какую-то информацию после встреч, для подготовки к докладам и подобные вещи.

Еще, конечно, пользуюсь Keynote, достаточно обидно, но как без этого. Для разработки: Xcode и Fork сейчас. Я умею делать анимации любой сложности в Keynote и могу научить всех кому интересно.

Рекомендации инструментов

Роман: Что вы можете порекомендовать нашим читателям? Что первое приходит в голову?

Когда я открыл эту всю историю с построениями mind map и структурированием информации, я понял, насколько это может быть удобно. Илья: Для меня это MindNode. Когда я записываю это в mind map, я сразу могу разложить по слоям, и это потом намного проще использовать в работе. Вместо того, чтобы записывать свои мысли или какую-то встречу в заметках, а потом разбираться что с этим делать: это может быть разбор любой задачи, проработка нового концепта какой-нибудь фичи и так далее. Всем советую.

Правда она есть только для MacOS. Алексей: Dash я уже рекомендовал, поэтому предложу немножко параноидальную софтину Snitch. Понятно, что можно запретить всегда, разрешить всё. Это, по сути, такой разухабистый Firewall, который на каждый входящий или исходящий из твоей машины запрос, покажет, что это за запрос, какое приложение его пустило, куда он пошел, и спросит тебя разрешить или запретить. Помимо какой-нибудь проверки обновления, ещё куча всякой аналитики, причём от тех, от кого этого не ожидаешь. Первые дни после его установки вы удивитесь, как много странной информации о вас отправляется непонятно куда. Больше всего этим грешит всё, что выпустила Adobe, они шлют просто огромные пачки запросов.

Она, правда, следит за камерой и микрофоном. Плюс MicroSnitch — это такая же штуковина. В частности, я удивился, что Android Emulator нагло слушает. Она не умеет понимать, кто запустил процесс, но она может тебе показать, что у тебя камера сейчас заработала, микрофон или и то и то. А когда у тебя открыт рабочий стол, она активно слушает микрофон твоего хоста, твоей рабочей машинки, куда идет звук. Скорее всего, это штука, которая слушает OK Google, ожидает OK Google, даже несмотря на то, что она выключена.

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

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

Алексей: Слушай, а ты не наблюдал в этой штуке такого эффекта от масштаба, если перейти от тетрадки или просто от листов А4 к белой доске или к флипчарту, то оно ещё лучше идёт, прямо вот таким потоком стремится и такой кайф рисовать на всём этом?

Я даже думаю сделать дома огромную доску в стену, как в офисах делают. Роман: Есть такое, да. Да, действительно есть такой эффект и прям даже приятно думать.

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

Илья: Да, у нас в офисе есть такое — это просто сделать.

Роман: Незаметно пролетело время, я предлагаю подвести итог и хочу поблагодарить моих собеседников и вас, за то, что слушали или читали.

Над полной версией программы мы еще работаем, но уже приняты доклады: В качестве заключения посмотрите приглашение Алексея Милеева на AppsConf.

  • Дмитрий Грязин про свой богатый опыт работы с Unit и UI тестами в разработке под Android.
  • Филипп Уваров о разработке Gradle плагинов.
  • Илья Царёв о страхах, ожиданиях и суровой реальности при переходе на управленческую должность.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»