Что испытал Саньюань за восемь месяцев работы в архитектурной группе Douyin?

внешний интерфейс программист
Что испытал Саньюань за восемь месяцев работы в архитектурной группе Douyin?

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

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

Через что я прошел?

новичок

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

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

С таким настроением я присоединился к первой команде проекта, когда работал в компании.低代码平台, то есть платформа для генерации веб-страниц методом перетаскивания.Конечно, практик в этой индустрии сейчас много.Излишне говорить, что техническая сложность определенно достаточно высока.

На тот момент было несколько партнеров, которые приехали ко мне на стажировку.Через неделю после прихода в компанию они пообщались.Говорят,что начали получать требования и сдавать коды менее чем через два дня после прихода в бизнес-команду,но Я был по-прежнему пуст и ничего не делал, должны быть какие-то психологические пробелы.

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

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

Я до сих пор помню, что low-code платформа использовалась всего полмесяца, а потом она превратилась в инженерное направление, которое продлилось 8 месяцев. Когда я впервые повернул в эту сторону, я подумал, что это просто эшафот, но мой наставник сразу поправил меня, он сказал мне, что это огромныйИнженерная система,обложка初始化,开发,调试,CI,CDи другой полный процесс разработки, а также всесторонне улучшить инженерное качество и инженерную эффективность. Когда я услышал это в то время, я не понял, что это было серьезно, и даже немного взволнован. (Если вас интересуют инженерные возможности, пожалуйста, заходите ко мне в приват, этой группе очень нужны люди, wx: sanyuan0704)

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

готовы бросить вызов

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

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

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

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

Сосредоточьтесь на глубоком совершенствовании

После защиты я снова пошел в школу, на тот момент был еще сентябрь 2020. Когда я снова вернулся в Байтс, это было уже в начале января 2021 года, и я взял около 4 месяцев отпуска. Можно сказать, что это мой второй опыт стажировки, по сравнению с предыдущим опытом, сложность и давление этой стажировки возросли в несколько раз, и я столкнулся с немалым количеством проблем.

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

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

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

Выполнив некоторые накопленные ранее требования SSR, наставник сказал мне, что текущий SSR — очень важная часть инженерной системы, и над ней нужно хорошо подумать и составить долгосрочный план. Итак, за это время я заставил себя исследовать множество решений SSR в отрасли, в том числеNextjs,egg-react-ssr,ssr, включая некоторые программы внутри компании, но и дляSSG,SPR,ESRПровел небольшое исследование. Этот процесс не только составление планов на будущее, но и совершенствование собственного видения и постепенное вхождение в глубоководную область технологий.

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

стиснутые зубы

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

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

Но процесс преобразования сложнее, чем я себе представлял.С одной стороны, та часть инструмента сборки, которую наша группа только что упаковала с помощью Webpack5, не выпустила стабильной версии.Неизбежно, что будут подводные камни или неподдерживаемые места.Это это внутренние факторы. С другой стороны, бизнес-сторона очень строго контролирует качество проекта, и им удалось запуститься без каких-либо ошибок.Они сообщили, что упакованный объем увеличился на 20 КБ после преобразования (полный упакованный объем на тот момент был более 500 КБ).При объеме 20 КБ потребовалось несколько дней сил и времени, чтобы наконец оправдать их ожидания.

Помимо строительной части, будут задействованы последующие изменения других модулей, поэтому я не буду раскрывать здесь слишком много подробностей. В общем, это очень сложный процесс трансформации, был период времени в середине проекта, я столкнулся с какими-то блоками, и я не мог спать несколько дней. Но результат трансформации оказался вполне успешным, и, наконец, все потребности бизнес-стороны были удовлетворены, и заморский продукт с ежедневным сроком службы более 100 миллионов запускал код, который я написал hhh (escape

Следующий опыт состоял в том, чтобы сделать BP для мероприятия Douyin 1 мая. Это был также первый раз, когда я участвовал в развитии бизнеса на передовой. Общее время разработки было сжатым, а интенсивность была высокой. Все сидели в одном закрытом конференц-зале, как товарищи по оружию.Обычно баги исправляют целый день. За неделю до запуска, чтобы устранить ошибку, можно было уйти с работы после раннего утра каждый день.

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

ощущение после работы

проблемы управления временем

Хотя это стажер, это также большая и малая неделя, и ежедневное время посещаемости ничем не отличается от обычного рабочего. После работы самое большое чувство для меня - это то, что мое время切得非常碎Меня часто отвлекают по разным делам, а работа занимает большую часть моего времени. Время, которым я могу свободно распоряжаться, можно сказать, очень ограничено. Это как в школе, где меня ничего не волнует, а государство Скука с учебой ушла.

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

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

На самом деле, я думаю, что тайм-менеджмент по сути является управлением энергией.Если вы не будете думать о том, куда вкладывать и планировать свою энергию, вы каждый день будете пассивно впадать в какую-то энергию.常态的,快节奏Жаль, что много времени будет потрачено впустую каждый день, не зная об этом.

Какие люди нужны архитектурной команде?

Пребывание в архитектурной группе сильно отличается от пребывания в бизнес-команде. Может быть, вы скажете, и это само собой разумеется, что у команды архитекторов, конечно, более высокие требования к техническим возможностям. Но с внутренней точки зрения команды архитекторов я хочу сказать, что все упустили из виду очень важную вещь, то есть мы полностью полагаемся на себя, чтобы отшлифовать каждый технический продукт.产品. Поскольку это продукт, его нужно испытать需求分析,用户界面设计,产品功能设计,代码开发, проводить различные测试, то он должен пройти определенное运营Средства позволяют продукту быть увиденным пользователем, наконец достигнуть пользователя и доставить его пользователю.

Однако все это делается самими разработчиками команды архитектуры, то есть у нас нет своего пользовательского интерфейса, у нас нет своего PM, у нас нет своего QA. человек или одна команда разработчиков играет все роли Роль. Если есть проблема с конечным техническим продуктом, то она должна состоять в том, что некое звено в середине не на месте, и это звено не только проблема самой технологии.

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

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

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

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

боль и расти

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

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

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

будущий план

Каким человеком вы хотите быть?

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

Глубоко развивать профессиональные навыки

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

Однажды я спросил здоровяка, который много лет работал рядом со мной, почему код вашей ноды так красиво написан? Его ответ был прост:

Просто больше читайте и пишите.

Это мне вдруг напомнило狼叔был прав尤大Я был на собеседовании, он спросил, почему ты пишешь столько умной логики на Vue и используешь столько хитрых навыков на git, как ты это сделал? Особенно подобный ответ, часто читайте проекты с открытым исходным кодом, возможно, полчаса специально курите, может быть, десять минут выпивки во второй половине дня, постоянно учитесь у других, изучайте программу, обогащайте свою «оружейную библиотеку». Это может постепенно улучшить вашу уровень.

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

Укрепляйте тайм-менеджмент

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

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

Множественный вывод и совместное использование

Частота экспорта и обмена значительно снизилась за последний год.С одной стороны, действительно工作繁忙причинам, но, с другой стороны, и по собственной惰性, не взял на себя инициативу думать и строить планы.

Я не думаю, что это хороший знак.

Ведь известные авторы до и в сообществеsshМы говорили об этом, многие люди с высоким техническим уровнем не пишут статьи для обмена, но мы можем написать так много всего не из-за того, насколько сильна технология, а из-за самого нашего характера.乐于分享, и так уж получилось, что многим людям нравится то, чем мы делимся, давая некоторым людям帮助, поэтому совместное использование выходных данных сопряжено с некоторымиОказать влияние.

Во-вторых, как оригинальный технический блогер, я также знаю, что вывод — это процесс форсирования ввода, такой как написание包管理器, я думал, что разобрался после прочтения официальной документации, но когда мне очень захотелось написать, я понял, что у меня так много белых пятен в знаниях.npm 包管理的缺陷,依赖安全问题,社区的depedency-check 方案, Это то, что я узнал один за другим, консультируясь с информацией в процессе написания статьи, и я никогда даже не баловался этим раньше. Таким образом, процесс вывода приносит пользу не только читателям, но и влияет на собственную систему знаний автора.закаленныйирасширятьпроцесс.

С одной стороны, себя乐于分享, с другой стороны, совместное использование также может倒逼Учиться и расти, поэтому я думаю, что необходимо продолжать это делать.

В последнее время выпуск техники постепенно увеличивается.В будущем я буду встречаться с вами чаще, и содержание выпуска будет постепенно увеличиваться.Диверсификация, больше не ограничивается внешним интерфейсом, но также включает в себя опыт мышления и чтения в вашей собственной работе (они будут размещены в публичном аккаунте, а Nuggets будут использовать技术输出main), пожалуйста, с нетерпением ждите этого.

О команде

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

Работа в команде предполагает:

  • Базовая инженерная структураЗдание, содержащее инициализацию, строительство, систему ввода в эксплуатацию, CI, CD,中后台研发框架(похоже на уми) и代码质量相关的扫描平台
  • базовая библиотека nodejsстроительство
  • Визуальная строительная платформастроительство
  • Общекорпоративная платформа распределения ресурсовстроительство

Техническая атмосфера в коллективе неплохая.Хотя некоторые работают в разных местах, все в группе все же часто讨论и分享некоторые технические решения,周会Часто встречаются технологии в различных направлениях分享. В группе по-прежнему много технических экспертов.Если у вас есть какие-либо вопросы, они терпеливо ответят на ваши вопросы и развеют ваши сомнения.Вы можете многому научиться, работая с ними.

Справедливости ради, в команде по-прежнему не хватает людей, особенно в команде разработки фреймворка, где сейчас работает Шэнь Саньюань.Мы часто приостанавливаем развитие определенных технологий (например, фреймворк SSR, упомянутый ранее) из-за нехватки кадров. Если вы также заинтересованы в вышеуказанных направлениях, вы можете создать компанию с нами.Звездные технологические продукты.

Наконец, что я хочу подчеркнуть, так это то, что, когда многие люди болтали со мной, я обнаружил, что когда все видели интервью с байтом, они подсознательно думали, что там будут очень сложные алгоритмические проблемы, или прямо писали извращенную задачу программирования, такую ​​как red- черное дерево. Этот видКрайняя ошибка ❌из! С одной стороны, моя нынешняя команда не такая интровертная, как все думают, наоборот, команда создана не так давно, и ей нужно больше свежей крови, чтобы в нее влиться, нет смысла задавать вопросы. которые намеренно усложняют жизнь кандидатам; с другой стороны, вся команда также очень прагматична, мы ценим реальные инженерные способности и способность к обучению (потенциал) человека, и мы не будем использовать это, чтобы смущать кандидатов из-за своего рода проблемы, несовместимые с обычной работой.

Если вы заинтересованы или у вас есть вопросы о должности, вы можете связаться со мной напрямую.Мой идентификатор WeChat sanyuan0704.Конечно, просто подружиться также приветствуется.

Статья была впервые опубликована в публичном аккаунте «Одноклассников Sanyuan», прошу обратить внимание. Ответьте на «JD», чтобы получить описание работы, и ответьте на «IES», чтобы войти в «Группу предварительного набора ByteDance IES», чтобы присоединиться к группе, где каждый может учиться и совершенствоваться вместе.

Категории