Прошло более 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», чтобы присоединиться к группе, где каждый может учиться и совершенствоваться вместе.