Я утром — смотрю видео о том, как делают свечи и думаю: “Ремесла, нежно и женственно, как мне нравится и подходят, хочу так!” Я вечером — смотрю видео про Comundа и думаю: “Разработка. Строго и понятно! Обобщили, смоделировали, погнали. Очень мне подходит!”
Я у психолога — “Понимаете, я никак не могу до конца понять, какая же я на самом деле?” 😅
Имею привычку записывать важные мысли в заметки на маке. Иногда я так тороплюсь, что заменяю эти мысли на одно-два слова, которые должны пробудить соответствующую ассоциацию. Ключевое слово "должны". Через месяц я читаю все это и не могу понять примерно ничего.
"Привычка писать красиво". Это явно была какая-то умная мысль про код, который нужно всегда писать аккуратно.
"Debezium". Скорее всего всплывал в очередном разговоре и я подумала, что надо бы уже почитать про него, что ли. Но не помню зачем.
Айдишник. Вы же тоже сохраняете в заметках кучу ключей и идишников с тестинга, чтобы были под рукой?
"Ретро в конфетах клиентов". Оставлю без комментариев.
Но, вообще-то, Go странный! Эти его интерфейсы, висящие в воздухе, которые считаются реализованными просто потому, что ты реализовал все функции, выносят мне мозг. Что сложно так было добавить явную привязку, что тип А реализует интерфейс Б?! Как искать-то по коду все типы, для которых интерфейс реализован, мне пока непонятненько 😢
Ну что, уже месяц как живу и работаю на новом месте. Оказалось, это совсем нестрашно, я уже успешно легализовалась и довольно неплохо втянулась в рабочие процессы. По крайней мере, у меня снова начинает в голове выстраиваться объёмная картинка из людей, систем процессов и их взаимодействий. Пару дней назад я даже уснуть не могла минут сорок, потому что планы в голове вырисовывала.
А на этой неделе я написала первый рабочий код на Go, довольна собой как слон, хотя написала всего-то обёртку для партнерской апишки и три теста к ней. Это не много и не сложно, но осознание того, что я могу что-то сделать руками сама, меня сильно успокаивает. Ибо все эти менеджерские думы и разговоры, бесспорно, важны и нужны, но так приятно иногда сесть и написать код — простое и понятное действие с однозначным (ну ладно, не всегда однозначным) результатом.
Из забавного: где-то через полторы недели после начала работы мы решили, что выделим большой компонент в отдельный сервис, сели его проектировать, рисовать схемы, описывать взаимодействия. Обсудили, разбежались работать. И тут я осознаю, что мне не нужно бежать и писать какой-то код. Хотя инстинкты просят, очень просят, в голове уже бекенд на плюсах собрался: с ручками, метриками, админкой и всем всем всем. Но писать мне его нечем сейчас. По Go я, конечно, вводный курс на сайте прочитала, но не то чтобы могу прямо сейчас сервис собрать. И это меня спасло. Позволило переосмыслить свою роль, сильно проще делегировать работу, которую сама понимаешь, что сделать не можешь. И это очень классный опыт. Я считаю, ограничения помогают нам не распыляться, выстраивают определённые рамки и помогают сохранить фокус. Как строго типизированные языки не позволяют заменить один объект другим, намекая, что кто-то надизайнил фигню. Так и тут, не можешь выполнить определённую работу сама? Отличненько! Вспомни, что ты не разработчиком устроилась работать. Твоя задача не за людей работать, а помогать им делать их работу лучше, строить команду, помогать выработать совместный вектор движения и ещё кучу всего. Но, понятно, что разработкой я лет двенадцать уже занимаюсь, это самое простое и понятное, и приходится сдерживать себя, чтобы делать не то, что просто, а то, что нужно. Вот так вот.
Но! Зато у меня теперь есть гарантированный способ получить дофаминчика: тесты написать или ручку какую-нибудь бахнуть. А может, когда-нибудь, сжалятся надо мной, порефакторить чего-нибудь дадут. Вот это будет праздник. 🤩
Так, пора бы уже прекратить лениться и что-нибудь написать. Напишу историю одного неуспеха.
Меня зовут Софья, я уже почти две недели живу на Кипре, и я прилетела сюда со второго раза. Выше была истоия с ключами, которые я потеряла за пару часов до выезда в аэропорт. Так вот, я тогда думала, что это худшее, что может случиться, но не тут-то было! В аэропорт я приехала вовремя, на регистрацию пришла одна из первых. Посмотрел сотрудник AirSerbia в мой паспорт и говорит: "А виза-то ваша французская вчера истекла. Другой нет?" А другой, конечно же, нет. Весело это: собрать два чемодана, подготовить кучу документов собаке, заменить водительское, пройти полный чекап в клинике, продумать немалый список медикаментов, которые могут пригодиться, а дату в визе прочитать неправильно. Но делать нечего, пришлось ехать домой.
Самое странное в этой истории - проснуться следующим утром не в том мире, в котором ожидал. Вроде опытные уже проходили. Но тогда, проснувшись утром, оказалось, что мир не такой, каким был вчера. А тут всё наоборот: ждёшь, что сменятся все декорации и будет другой день с другими заботами, а просыпаешься и ничего не изменилось, и ничего из того, что планировалось, не нужно делать. А точнее, всё то, что нужно было делать, сделать не получится. В общем, засадно.
Сейчас расскажу, как я собранно и эффективно себя проявила перед лицом такого кризиса. Я посмотрела пару часов в тёмную стену спальней. Позавтракала. Посмотрела ещё пару часов в стену кухни. Написала рекрутеру, что, кажется, на работу я не прилечу. Вот это, пожалуй, было самым стремным: прошла ты собеседование на менеджерскую должность, вся такая умная, профессиональная и эффективная. А за день до выхода пишешь: "Тут такое дело, я в визе своей 06 и 08 перепутала. Мне кажется, я завтра не успею выйти на работу. Можно я через пару неделек попробую снова?" Скажу я вам, по эго бьёт неприятно, пришлось даже заказать в лавке подложку брауншвейгской и камамбер - стандартный депрессивный набор Софьи Алексеевны, и ещё пару часов погрустить в очередную стену.
Но колбаса билеты не купит, нужно было искать новые варианты перелёта. Я часто рассказываю, что логистика построения путешествий не мой конёк. Часов через 15 после неудачного вылета я это осознала в очередной раз: билеты AirSerbia не переносились, FlyOne никак не покупались с животными. Выглядело как полный звиздец. Что я сделала? Лучшее из того, что умею - психанула. Да не самый поощряемый подход к решению проблемы, но зато самый эффектный. Да и что поделаешь, если в этом я профессионал! Немного не экологично по отношению к окружающим, я знаю, но, надеюсь, они меня поймут и простят. Люди опытные говорят мне в таких случаях что-то из серии "ляг поспи, и всё пройдёт". В основном проходит.
На следующее утро во мне проснулось уже безумное упорство, я сумела купить билеты, подать доки на туристическую визу, и придумать, как сделать собаке новые документы на вылет. А после случилось самое классное: я осознала, как мне повезло! Неожиданно и совершенно прекрасно у меня образовалось дней 10 выходных, когда никто (и прежде всего я сама) от меня ничего не ждёт. И ничего важного не запланировано. И можно ничегошеньки не делать, если не хочется. Это идеально! Подарок судьбы для человека, который знает, что нужного и полезного для себя сделать в ближайшие 48 часов как минимум. Рекомендую.
Мораль конкретно этой истории в том, что не все то трагедия, что нас выносит и пугает. Я, конечно, сама довольно скептически отношусь к подобным заявлениям. Звучит хорошо, но не очень верится. Но, в данном случае сработало отлично 😇
Никогда не догадаетесь, что я делаю за час до выезда в аэропорт. А я прячусь от грозы в подъезде. А почему? Потому что два часа назад оставила в такси ключи от дома. Ву-ха-ха! Трудно представить как пройдёт мой перелет Москва-Кипр. 🤪
Первый день после увольнения — полет нормальный. Пока даже не чувствую острой потребности сеъесть пакет круассанов "поешь и прогони печаль”, который купила вчера.
Из самых необычных ощущений последнего рабочего дня -- скорость, с которой я стала "абсолютно свободной". Точнее контраст 12 лет работы, с 15 минутами, которые потратила на сдачу рабочего ноутбука и подписи документов на увольнение. Ноутбук отдавать было немного грустно, все-таки этот трудяга был со мной в очень разных местах и ситуациях, загибался порой от памяти, требующейся clang-у для форматирования кода, но все равно исправно работал. Еще очень жаль было отдавать рабочий-бейдж, он последние лет пять был рядом с паспортом, телефоном и банковскими картами в том списке вещей, с которым, считалось, я выберусь из любой непонятной ситуации.
Странно было выходить с мыслью, что в понедельник не нужно возвращаться, но любопытно. Интересно, что же будет дальше, и как я буду с этим справляться. Например, с тем, что с 4 июня дома оключат горячую воду, а в офис помыться теперь не сходишь 🤔.
Я, конечно, про всякие мелочи сейчас пишу, псевдоважные. Но не хочется рефлексировать пока о сложных вещах. Хочется просто порадоваться тому, что я на пороге первого лета без подготовки к сложным и очень-очень важным релизам. Это будет потом, а сейчас будут маленькие каникулы. Настоящие, как в школе, когда сдала все экзамены для поступления в 10 класс, и можно ничего не делать (это конечно не реально в моем текущем мире, но сделаем вид). Как же круто! Пожалуй, я все-таки открою коробку с круассанами и даже сяду поиграть в Genshin. Просто потому что хочется!
У меня нет ничего умного рассказать, разве что поделиться, что буквы на плакате получаются куда красивее, когда перестаешь мучиться и думать, как бы сделать их ровнее и правильнее.
А еще, так как у меня нет соцсетей сейчас, придется выложить сюда наше с Аленой выступление на квартирнике. Не пропадать же добру в телефоне. 😇
А вы обращали внимание, что многие «классическое» книги (особенно по методологии разработки или проектированию) написаны такими сложными и очень по-умному звучащими конструкциями, что прямо мозг сводит? Мой сводит. Читаю сейчас Эванса в переводе и там много длинных и довольно сложных для восприятия фраз. Особенно если осознавать каждое слово. Но! К некоторым прилагаются комментарии переводчика, и вот, что я там нашла:
«В алгоритмической части программы сосредоточена ее способность решать для пользователя задачи из соответствующей предметной области»
Примечание переводчика: «Автор употребляет выражение heart of software…» (вместо алгоритмической части программы) и дальше идет пояснения, почему англоязычным парням понятно, о чем речь.
И что же получается: все эти книжки создают своим языком образ заумных ботаников и наводят тоску, а на самом деле, в англоязычном мире программисты выражаются как герои легенд?!
Это, конечно, шутка, но порой перевод действительно расстраивает. Например, очень лаконичное и полное смысла business rule превращается в «правило делового регламента». Хорошо, что переводчик оставляет комментарии, иначе бы не поняла, о чем тут речь.
***
Это были мысли, которые рандомно возникали и развивались в моей голове в процессе чтения, поэтому если кого-то смутят скачки с одной темы на другую, признаюсь: да, мой мозг так и работает 😅
Мне очень нравится, как Эванс определяет задачу разработчика: выделить из множества знаний о предметной области проекта суть и формализовать её в программе.
В который раз ловлю мысль, что меня редко увлекают какие-то конкретные технологии. Ну есть 100-ый фреймворк или 50-ый язык программирования. Ну ок. Для моих задач в них нет большой необходимости. К стыду своему я хотела год назад поработать с java, но без реального продукта-проекта было скучно. Хотела как-то посмотреть на go. Ведь, блин, все кроме меня пробовали go и хотят go (здравствуте, обесценивание и чрезмерная драматизация). Но я доку как открыла, так и закрыла через несколько минут. Неинтересно. Не цепляет само по себе. И какие-то супер хардверные наработки не цепляют (ну почти). И когда говорят, что кто-то какой-то бенчмарк значительно улучшил, нуууу.. молодец, наверное, но «не заводит» (надеюсь, после этого признания меня не уволят с текущего места 😅). А вот когда приводят примеры, как формализуют бизнес-модель, просыпаются мои бабочки в животе и кричат: «Божечки! Божечки! Вот это полет мысли! Вот это мозг, структура! Красавчики!»
Мысль 5
В голове все крутится: «Эх, как бы я хотела поработать с тобой на реальном проекте, препарировать предметную область и завернуть ее в код». И когда Фаулер пишет, в предисловии, что он имел возможность поработать с Эвансом и чему-то научился, я испытываю тихую зависть. Кажется, я влюбилась!
Я тут поняла, почему некоторые тревел-блоггеры пишут так много текста: в самолетах идеальные условия для текстотворчества. И для чтения тоже. Поэтому я, наконец, начала читать «Предметно ориентированное проектирование» (по англ. Domain Driven Design) Эванса и хочу поделиться мыслями, которые возникали у меня за первые 50 страниц. Дальше пока не дочитала.
Мысль 1
Цитата: «для хорошего программиста совершенно естественно стремление к абстрагированию и построению расширенной модели, которая была бы способна на большее, чем от нее требуется».
Я уже люблю такого программиста.
Мысль 2
Порой мне кажется, что я читаю книги по разработке или проектированию не для того, чтобы узнать что-то новое, а для того, чтобы убедиться, что я не сошла с ума. И те выводы, к которым я прихожу на базе своего опыта, принадлежат не только мне. К чему-то похожему пришли и другие вполне авторитетные люди на своей практике. Приятненько.
И самое главное: успокаивает мысль, что сославшись на Эванса в своей статье про разработку и продукт, я довольно вольно интерпретировала принципы DDD. Но не промахнулась в своих ожиданиях от подхода, про который до этого читала очень поверхностно.
Мысль 3
Дальше я придумала несколько вопросов, которые задам своему сотруднику на 1:1 в понедельник.
В первый рабочий день в году (а я в кой-то веке отдыхала на праздники) нашли и починили фееричную багу: ошибку в сортировке кусочка индекса (одного из сколько-то тысяч).
В остальном чувствую себя как в мемчике, который сделал мой день