От CRUD к вкладу в открытый исходный код: мой годовой отчет за 2017 год

GitHub JavaScript модульный тест

Года достаточно, чтобы столько всего произошло. В это время в прошлом году я точно не мог подумать, что буду писать это резюме о скоростном поезде из Сямыня в Ханчжоу для участия в D2. Оглядываясь назад на 2017 год, слишком много всего стоит вспомнить, здесь я хотел бы выделить места, связанные с передней частью, и поделиться ими с вами.

мелочи

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

Об отставке

В моей последней компании, X, была вкусная столовая, отличная команда и стабильные перспективы, так почему же я решил уйти менее чем через год после выпуска? В то время я не продумывал это до конца, но сейчас, что касается темы «когда мне выбрать уход?», я так понимаю, что достаточно рассмотреть следующие три вопроса:

  • Каковы Ваши перспективы развития в компании?Хотя это немного самонадеянно говорить это, но когда я стал позитивным после трех месяцев работы, я почувствовал, что никто не может «направить» меня в чистую фронтенд-технологию — нацарапанный спагетти-код jQuery не имеет никакой обучающей ценности; имеет опыт Scale Up в front-end проектах, подбор новых технологий в исследованиях, в результате остается старый фреймворк, который уже давно устарел... Эти технические детали на самом деле не проблема, но отсутствие надежных менторов заставляет Мне, как новичку, сложно судить о технологиях независимо от тенденций и направлений обучения. При этом прошлогодняя кепка «Лучший новичок» была на самом деле довольно крутой 🙃
  • Ваша разработка ценна для компании?К сожалению, точно так же, как Куку не нужно следить за AV в своих генах, этой технологической компании, которая рекламирует технологии, управляемые ИИ, не нужно обращать внимание на интерфейс в его генах. В качестве примеров могу привести следующее:
    • Перед тем, как я ушел, проект, за который я отвечал, вдвое сократил объем кода и удвоил скорость загрузки при слабой сети по сравнению со старым проектом против нее — но что толку? Не многие люди читают эти сломанные веб-страницы.
    • Я создал частный репозиторий npm в интрасети и опубликовал в нем более десяти частных зависимостей, но никто никогда не упоминает о нем, когда он зависает: скопируйте его.jquery.min.jsРазве это не сработает?
    • В моем последнем проекте перед отъездом мне потребовалось около месяца, чтобы с нуля реализовать библиотеку анализа скрытых точек с большим количеством документации и тестовых примеров. После теста QA я подумал, что качество было хорошим, поэтому я добавил 100 юаней к производительности в качестве награды — да, все 100 юаней, я был очень тронут.
  • Вам весело на работе?Чаще всего это неплохо, но похвала Лидера и группы рядовых коллег часто находится междуx 总、x 神Стыдно звонить друг другу. Кроме того, меня не интересуют, какие функции, какие принципы компиляции и т. д. не являются темами, о которых любят говорить мои коллеги, они предпочитают обсуждать такие темы, как цены на акции, цены на жилье и дополнительные деньги. Конечно, весело поговорить об этом с членами семьи, но отсутствие возможности поговорить о технологиях с техническими коллегами заставит вас чувствовать себя немного не в своей тарелке. В конце концов, некоторая неразбериха в управлении тоже заставила меня не знать, за кого отвечать и перед кем отчитываться, а также какие-то необъяснимые технические решения по контролю над проектом... Оглядываясь назад, может быть, это и есть легендарная Офисные политики.

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

О городах второго уровня

С определенной точки зрения, я приехал в Сямынь только для того, чтобы пересесть с одного города второго уровня на другой. Почему бы не выбрать Пекин, Шанхай и Гуанчжоу, где сконцентрированы интернет-ресурсы? Ниже приведены некоторые из моих собственных соображений.

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

Тем не менее, в области начального уровня города первого уровня по-прежнему должны оставаться лидерами.первый классПервый выбор таланта. Кто-то составил список китайских разработчиков на GithubРейтинг 1000 лучших, Среди этих 1000 человек городская информация говорит, что в Пекине/Шанхае/Шэньчжэне/Ханчжоу проживает от 100 до 200 человек, в то время как количество людей в других городах на порядки меньше, чем в этих супергородах. Например, в Сямэне проживает около десятка человек. В соответствии с текущей тенденцией я должен увеличить количество Сямэнь в списке на 1 в следующем году, но соответствует ли это историческому процессу? Не имею представления.

Накопление технологий

Вышеупомянутые записи являются лишь некоторыми личными изменениями. На техническом уровне в этом году я добился большого прогресса, которым стоит поделиться, как и заголовок этой статьи: «От добавления, проверки, изменения и удаления до вклада в открытый исходный код».

Участвовать в открытом исходном коде

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

Мотивация для этого напрямую связана с редактором форматированного текста, используемым в нашем командном проекте: мы выбрали фреймворк Slate.js с широкими возможностями настройки, хотя этот фреймворк имеет большое количество звезд (в настоящее время более 6 тысяч). И API очень мощный. , но стабильности не хватило. Вскоре стало очевидно, что ждать обновлений основной ветки было нереально и приходилось делать это самим. Приложив некоторые усилия, я получил более 100 участников этого фреймворка.первая десятка рейтинга, исправлены некоторые ошибки, связанные со стеком истории, методом ввода и API преобразования документов, а также переведенкитайский документ. С точки зрения того, насколько вклад в открытый исходный код полезен для отдельных лиц, у меня есть самое глубокое понимание следующих моментов:

  • Я узнал разницу между серьезной поддержкой проектов с открытым исходным кодом и выбрасыванием кода домашней работы и игрушечного кода на Github, и понял, что лучший способ поддерживать код фреймворка в подразделении оказался ничем иным, как этим.
  • Специалисты по сопровождению часто дают подробные комментарии к обзору для PR.Эти обзоры от ведущих разработчиков могут заставить людей отказаться от написания бизнес-логики и лучше подумать о качестве кода — куриный бульон говорит, что лучший прогресс — это учиться у людей, которые лучше вас.
  • Процесс прямого обсуждения с авторами фреймворка придал мне больше уверенности. Как побочный эффект, я намного увереннее сражаюсь с людьми (спорю с технологиями) 😈
  • Слияние кода со стволом дало мне большое чувство выполненного долга. Если код, которым я больше всего доволен в этом году, это одна строка, которая решает 4 проблемы.PRБар.

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

Совместное использование блога

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

Когда я впервые начал вести колонку полгода назад, у меня еще не было требований по количеству подписчиков — я просто писал то, что хотел писать, и не хотел этих воображаемых вещей. Но только сегодня количество подписчиков на Наггетс перевалило за 3000 — у меня нет личности интернет-знаменитости, это число очень и очень большое! Я определенно не использую количество подписчиков в качестве своей метрики KPI, но большое спасибо за признание... 😅

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

  • В блоге не было обновлено какое-либо содержание, такое как «XX для начинающих» и «XX для начинающих». Этот контент для новичков с тысячами лайков - это не то, что меня интересует, и не будет в обозримом будущем, если я не представлю новые колеса, сделанные нашей командой.
  • В блоге не было обновлено какое-либо содержание, такое как «Анализ исходного кода XX», которое кажется сложным, но на самом деле его трудно читать. Вместо этого я написал статью, посвященную выявлению проблем с этим типом контента. Это еще одно требование к моему техническому письму: не писать поверхностные темы, ориентированные на новичков, но пока тема определена, она должна создавать удобный для читателя контент.
  • Блог начал обновлять некоторый «сочетающий технологии и гуманитарные науки» контент (хотя он все еще очень наивен). Например, я обсуждал, как именование переменных в программировании связано с лингвистикой гуманитарных наук и соответствует ли появление новых интерфейсных фреймворков «черному лебедю».случайность, Чем жизненный цикл переменных аналогичен смерти и забыванию в «Путевых заметках об охоте за сновидениями» (эта идея фактически привела к статьеВымысел)так далее. Основным источником этих тем являются какие-то "разные книги", которые я прочитал в последнее время.При сочетании содержания книг в различных областях с моей текущей работой ощущение соединения точек довольно интересное! Если будет возможность, надеюсь поделиться с вами интересным списком книг 😀
  • Блоги начинают сосредотачиваться на критических технических дискуссиях, а не на монотонном знакомстве с новыми технологиями. Например, я быТрюки с плохим кодом, количественный анализКопирует ли Vue Angular?, предложено к техническому письмуПроблемы с манерой письма…Из-за слишком большого количества прямолинейных технических статей сообщество кажется однообразным, и я считаю, что в этом направлении можно написать еще много эссе.
  • Настоящую «техническую галантерею» в блоге я надеюсь уладить больше в виде Issues и PR на Github, а не писать какие-то «глубокие» статьи, которые мало кто читает в сообществе.

В целом, когда дело доходит до ведения блога, самая большая проблема, с которой я сталкиваюсь, на самом деле заключается в том, что по сравнению с этим временем в прошлом году она постепенно изменилась с «Я не могу найти о чем писать» на «Слишком много тем для выбора». а времени нет." "Написано"... Может быть, это действительно улучшение, но оно же приносит и новые проблемы. В качестве решения добавлен исходный код моего блогаIdea PoolКогда у меня будет время, я выберу тему, чтобы написать из нее, и буду обновлять этот Пул, когда у меня будет вдохновение. Что касается эффекта, заинтересованные студенты могут пожелатьПодписывайтесь на меняС нетерпением жду этого~

Резюме и перспективы

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

Опыт роста

Вот три вещи, которые я чувствовал больше всего:

  • Постоянное внимание к качеству кода может развить «вкус» к идентификации кода. В настоящее время я недостаточно хорош, чтобы полностью резюмировать это абстрактное понятие, но, вообще говоря, думайте больше, чем работа сделана, думайте больше о том, как чтобы улучшить, эта дорога не пойдет не так.
  • Будь то компания или сообщество с открытым исходным кодом, общение в широком смысле очень важно. Помимо общения с QA, PM и другими партнерами по работе, для продвижения чего-то в сообществе, соотношение описаний проблем не требуется вовсе. С этой точки зрения такие вещи, как собрания компании и вопросы в сообществе, являются очень важными каналами коммуникации за пределами кодекса. Нам нужно признать их ценность, а затем подумать, как сделать это эффективно.
  • События личностного роста очень «черные лебеди», очень случайны, я не могу знать, с кем я буду работать через несколько лет, но личный технический прогресс может дать нам больше уверенности в этих вещах: отсутствие интервью Отмахнуться — это такая хватка . Это мое понимание «делай добро, не спрашивай о будущем» на данном этапе.

Цели на следующий год

Я не хочу устанавливать слишком много флажков. В следующем году я технически могу сделать следующее:

  • Изучение новой технологии за пределами вашей зоны комфорта (например, изучение интерфейсной среды не считается).
  • Блог ведется ежемесячно (это очень тяжело, когда вы заняты).
  • Участвуйте в создании (а не в поддержке) ценного проекта с открытым исходным кодом в сообществе, как индивидуально, так и в команде.
  • Поддерживайте баланс между работой и личной жизнью. Недавно я прочитал интервью с выпускником Linux Дэниелом, которое тронуло меня. Интерес и энтузиазм, которые я хочу поддерживать в течение более длительного периода времени, а не сгорать дотла из-за длительной сверхурочной работы.

Короче говоря, я надеюсь продолжить расти в следующем году и, наконец, поделиться с вами здесь ~