Резюме фронтенд-работы в 2017 году, личное путешествие в яму и разные разговоры фронтенд-учеников.

Node.js внешний интерфейс JavaScript React.js CSS

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

О работе, в стартап-компании (никто не берёт -_-), ежедневная разработка проектов vue, react, react-native, WeChat applet (current)

Что касается стека технологий, то его невозможно усложнить, но не усовершенствовать... В настоящее время увлекаюсь машинописью.

О css

Нужно написать столько CSS, сколько нужно, чтобы написать столько проектов.Я когда-то презирал это, думая, что достижение нужного эффекта — это большая победа, злоупотребление всевозможными селекторами, захламление имен, написание встроенных стилей для того, чтобы решить баги, а затем плавно развивается на работе Будучи инвалидом в CSS, я всегда теряю дар речи, когда сталкиваюсь с CSS, который я написал, но недавно эта ситуация была взята под контроль.

  • Номенклатура БЭМ: Когда я был новичком во внешнем интерфейсе, я всегда думал, что использую его правильно, но всегда писал неуправляемый или беспорядочный код, от которого я на какое-то время отказался в пользу других способов (css-module, css в js), пока я толком не потратил время на то, чтобы в нем разобраться, я обнаружил, что можно написать лаконичное и структурированное имя. Конечно, лучше использовать его с css-модулем.
  • Flex и сетка: flex решает проблему позиционирования элементов в общем смысле, а grid обеспечивает лучшее решение для двумерной верстки.Упрощение кода можно расценивать как повышение производительности (совместимость с сеткой не очень хорошая, но ее можно использовать в личных проектах).

В основном вышеупомянутые два пункта разрешили некоторые из моих личных сомнений.Конечно, есть гораздо больше технологий, используемых для решения проблем.Например, решение Taobao rem layout решает проблему адаптации мобильного терминала, используя less, sass и используя css native переменные ....

о javascript

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

По сравнению с css, путь обучения js на самом деле довольно интересен.Я купил несколько книг одну за другой на работе.Я хотел изучить его глубоко, но это было начало и конец (высота, режим проектирования js, высокопроизводительный js, глубокая реакция.. .), это можно расценивать как грустную историю. Я увлекаюсь аниме играми каждый день. Единственное, что мне повезло, так это то, что в свободное время я читаю несколько электронных книг. награда после прочтения: "You-Dont-Know-JS"

Первый раз я посмотрел You-Dont-Know-JS, когда был новичком во фронтенде, месяц читал с перерывами (много кода было пропущено), а потом снова взялся за него и выглядело это так, как будто это было в конце прошлого года.Прошло 2 недели, После просмотра я почувствовал необъяснимое чувство облегчения. Хотя автор содержит в книге некоторые личные позиции, бесспорно, что книга хорошая, и в ней хорошо брать необходимые знания.Хотя многое в содержании книги может быть смещено в сторону теории, она очень интересно, не так ли?

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

Нейминг кода в javascript надоедал мне однажды и до сих пор. Переменные названы не более чем по прямому смыслу, но как насчет имен функций? Нерешительность в отношении именования функций приводит к очень разным стилям именования в разных проектах, что отстой. Так что добавьте себе немного условностей (в личном смысле)

  • Именование должно состоять из 4 частей, будь то частное (частное плюс _), тип события, описание события, статус события (статус может быть пустым), например, handleUserDel, onTouchMove, routeHome, _processDateToString
  • Различие между типами событий, основным основанием для различения типов событий неприватной привязки является фактическое действие события, route означает, что это будет функция, которая вызывает переходы маршрутизации, handle означает обработку пользовательских событий, on означает прослушивание событий ..., может быть легко перепутать дескриптор и вкл. Простой принцип различия заключается в том, что когда пользователь субъективно относится к операции, которую он в данный момент выполняет, то это дескриптор, например кнопка удаления. Прежде чем пользователь нажмет , он знает, что эта операция будет. Когда это не субъективно, например, пользователь неосознанно щелкает где-то на веб-странице, а затем выскакивает злое всплывающее окно с рекламой, тогда оно включено.

Далее другие битые мысли, тенденциозные технические рекомендации, бред.

  • О фронтальных рамках, Vue, реагирует, угловой.

    • С точки зрения компании, небольшие компании могут использовать Vue, чтобы максимизировать свои преимущества за счет простого входа, простого найма и разработки шаблонов. С точки зрения прилежного фронтенда приоритетом, конечно же, являются react и angular, чтобы не умалить Vue.
    • Я только упомянул, что vue легко начать, но его непросто освоить, нелегко оптимизировать (личное мнение), как определить мастерство, не сложно понять его двухстороннюю привязку, там много актуальную информацию в Интернете, но после ее понимания... Долгий путь Еще одна проблема, вызванная простотой начала работы с Vue, заключается в том, что сообщество неактивно, а разработчики, которые хотят или способны открыть исходный код, учитывают слишком мало Пользователи Вью.
    • React вещь хорошая, хоть до мастерства и далеко, но писать его каждый день круто, react меня ругали тысячи раз и я отношусь к нему так, как впервые увидел (css в js еретические).
    • Angular, я немного заинтересован, я могу научиться, практикуя машинописи, и, кстати, изучить некоторые шаблоны проектирования.Это очень хорошо. (Сначала у меня не было никакого интереса к angular, но когда я был в пустыне против Youda раньше, я почувствовал, что меня заставили пассивно волновать Amway, а затем я проверил соответствующую информацию, и это было хорошо. ...)
  • По поводу машинописного текста, когда я впервые услышал о ts, то отнесся к нему с предубеждением, посчитал, что это не что иное, как добавление типа в js, и скомпилировать его в js в конце концов не составляет большого труда. может устареет после изучения.Лучше хорошо выучить js., es6 лучший в мире.... Потом не знаю в какой день, пытался выучить, так что не могу выскочить. .. ts лучший в мире, вы должны попробовать ts, если вы изучаете js.... Отлично Недостатки следующие, выбирайте сами

    • vscode изначально имеет непобедимую поддержку ts, интеллектуальных подсказок и т. д.
    • Решил болевой момент в развитии
    • Изучение TS можно проводить постепенно, подвергая воздействию некоторых других полей, таких как generic, interface, abstract class, например generic, interface, abstract class и т.д. Теперь Symbol.iterator тоже может быть интерфейсом, но не полностью.
    • Уметь исправить некоторые заблуждения об объекте (личное субъективное мнение)
    • Хорошо работает с узлом
    • Позвольте мне кратко перечислить недостатки: 1. Высокая стоимость обучения, 2. Плохая документация, 3. Плохая документация.
  • О immutable, redux, vuex, mobx, lodash

    • Immutable решает некоторые проблемы с обновлением данных в таких фреймворках, как react и vue. Например, обновление значения объекта в реагирующем массиве имеет значение обучения, но мне лень читать документацию, и я был на уровне не использовать его.... Это вызвало много проблемы, поэтому в некоторых проектах от него отказались.
    • Redux, vuex, mobx, все три являются конкретными реализациями архитектуры потока, просто изучите, что вы используете.
    • Как превосходная библиотека функциональных инструментов, lodash пытался учиться на исходном коде, но из-за ленивого рака он был отложен до сегодняшнего дня и был включен в план обучения на этот год.
  • По поводу вебпака, хотя я в этом не разбираюсь, надо его модифицировать. Делай и учись, да заменится...

  • Сначала Node процветал, а сейчас успокоился, в моих глазах это стабильное развитие Node в будущем.

    • koa2 — это фреймворк, который в настоящее время изучается.Хотя он очень простой, его легче понять и изучить на практике.
    • MongoDB — это ересь, выучить его можно, но углубляться не нужно, просто изучите mysql, когда будет время.
    • Скаутер, пишущий ноды, на самом деле очень интересная штука, стоит попробовать.
  • v8, как начинающий интерфейс, изучение соответствующего содержания v8 сделает код более глубоким, и код может быть в определенной степени оптимизирован.

    • Деоптимизация (версия 8 будет деоптимизировать функции, которые динамически изменяют типы параметров несколько раз)
    • Скрытый класс (избегайте добавления атрибутов вне класса, насколько это возможно, что нарушит связь быстрого поиска скрытых классов, поддерживаемую внутри v8, и понизит до хэша)
    • gc
  • python Мне потребовался месяц, чтобы прочитать учебник по python, и это была простая запись.Позже я обнаружил, что в прямом смысле для внешнего интерфейса потратить это время на изучение node или ts принесет гораздо большую пользу, даже если это изучение java.Это также лучше, чем изучение python, потому что сходство между es6 и python слишком велико, а выгоды от изучения python гораздо меньше, чем ожидалось.

над

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

  • Изучите машинописный текст => изучите шаблоны проектирования => если у вас есть возможность, посмотрите исходный код некоторых связанных фреймворков => изучите узел
  • Запланированный результат на 2018 год: личный блог, фронтенд-реакция, менеджмент-энд угловой, бэкэнд koa2