Цель написания этой статьи
Как передовая собака в течение двух лет, я знаю очень мало, поэтому я не могу принести вам какое-либо техническое улучшение между строк. Цель этой статьи - только подвести итоги моей работы за последние два года. Просто ищу отвечать.
Некоторые люди скажут, что новичок учится писать техническое резюме, да, во многих частях статьи есть проблемы и недочеты, поэтому я ее и написал, поэтому прошу как можно больше критиковать мои недочеты. однозначно) менять.
Текст ниже...
что такое фронтенд
Мне часто задают этот вопрос во время интервью
В течение долгого времени внешний интерфейс находится ниже по течению цепочки презрения к технологиям, и ниже приведена реализация стека технологий онлайн-проекта.
Для большинства людей фронтенд-работа состоит в том, чтобы уничтожить страницу. На самом деле, в этом нет ничего плохого. Фронтенд-работа 10 лет назад на самом деле сводилась к восстановлению схемы прототипа. особенность фронтенда.Это гордость той эпохи, но и беспомощность той эпохи.Фронтенд язык программирования с момента своего рождения был полон тревог и переживаний.Язык созданный за 10 дней это как тренировочный ускоренный курс Как студент, у которого нет руки и ноги, сам того не зная.
Появление смартфонов привело к процветанию клиента и серверной части.К сожалению, мы не можем ни связаться с бизнесом так близко, как серверная часть и поддержать надежду компании, ни предложить пользователям более качественные и плавные услуги. как клиент. Работа с приложением превосходна, и мы получаем дивиденды от трафика. Мы не находимся посередине. Мы можем использовать гибридную разработку только для того, чтобы сблизить себя и пользователей.
Позже появилась нода, мы вроде видим спасителя, наконец-то можем написать бэкенд, рождение ноды подтолкнуло к поколению ряда фронтенд-инструментов и пакетных менеджеров, процесс фронтенд-разработки начал усложняться, вебпак , глоток, шутка, лерна, вавилон, нпм..., Из-за этого интерфейсный мир также начал играть главную роль в интерфейсной архитектуре. Наконец-то мы можем набраться смелости, чтобы сказать, что мы больше не урезанная фигура, не так ли? Рождение новых технологий позволяет нам взять на себя больше роли, мы напишем часть интерфейса API, чтобы действовать как часть внутренней роли, у нас также есть возможность написать некоторые собственные приложения RN для обмена жизнеспособностью внешнего интерфейса, мы также можем используйте Electron, чтобы указать, что мы также отличные инженеры-программисты, даже, мы даже. Существует также собственная система ОС (никто не будет ее использовать...), чтобы указать, что все, что можно написать на js, в конечном итоге будет написано на js.
Однако то, к чему мы стремились, не является конечным пользовательским опытом, не является ли это необременительной операцией, которую пользователи могут использовать и использовать, не является ли это концепцией входа, отстаиваемой в Chromeos. Итак, о чем вы говорите? конец?
что я сделал за два года
смущенный
Я не специализируюсь в области компьютерных наук и не закончил университет 211. Я просто обычный студент бакалавриата, изучающий дизайн. Может быть, многие интерфейсы похожи на меня. Зачем изучать интерфейс, а не java, python или что-то в этом роде? Честно говоря , я думал, что с интерфейсом легко начать, и мне просто нужно было знать немного html, css и базовый js. После того, как я закончил обучение, я написал свое резюме и начал отправлять. Зарплата требуется. Очень низкий (в то время я не стремился к высокому доходу), я провел собеседование с несколькими компаниями в Шанхае, одна из которых была иностранной. уже начал думать, правильный твой выбор или нет, начинаешь путаться в предстоящей дороге.
Компания входит в яму
Найти работу в Шанхае, арендовать дорогой конец года, когда я вернулся домой, ухаживал за основой собрания расслоения плотного в течение некоторого времени, вероятно, в конце времени, я восстановила свое резюме, поездки туда и обратно между Шанхаем и Ханчжоу, и, наконец, , в компанию в Ханчжоу, передний конец многих людей, складывается в общую сложности из трех людей, и Удовлетворение развития фонового, в марте, когда компания планирует запустить созвездие некоторых h5 игр на Facebook, у меня нет контакта с по телефонной части содержания, руководитель проекта спросил меня , что метод, я только что прочитал некоторые из angular.js контента из - за порыва рекомендовать использование этой технологии, хотя эта структура более популярным на время, но я до сих пор понять , почему тогда младший партнер согласится с этой техникой подходит для этого проекта, после двух недель, оставив лишь небольшой партнер, бэк-концевой части времени приятеля отшатнулся конец полностью, и присоединился к линии I начал стать этой компанией «фронт-энд экспертами», и мне посоветовали оставить, человек ничего не делать, на самом деле, человек действительно трудно писать передний конец, очень яма, потому что вы не имеете объекта обмен, вы не учитель вас, вы не знаете , начало проекта , который будет опубликован на весь процесс посадки, вы можете только найти свой собственный путь вперед, это болезненная вещь.
Предложение друга я все же отверг, планировал взять на себя инициативу, позже за месяц переписал проект созвездия, с помощью zepto tool и нативного js уменьшил размер страницы на 60%, что сделало I был очень счастлив, поэтому я начал искать в Интернете различные предложения по оптимизации мобильных телефонов, внедрил их в свой собственный проект и, наконец, написал общий компонент шаблона. выход и середина Я также столкнулся с различными проблемами совместимости с браузером Facebook, потому что я также научился работать в Интернете с научной точки зрения и начал путешествие от просмотра Baidu к просмотру Google.
Проект игры продолжается уже четыре месяца, так как конверсия приносимая выгодой от вложения не высока, босс намерен остановить проект, я был настолько глуп, чтобы предложить боссу переоптимизировать для получить более высокий коэффициент конверсии, начальник улыбнулся и отказался .Этот проект тоже желтый.
ERP — это начало
Бизнес компании наладился в августе, резко увеличился back-end бизнес.За исключением некоторых страниц активности, не было большого спроса на front-end сторону.Я также начал использовать свое рабочее время, чтобы поглощать много front-end. заканчивать контент и использовать ресурсы компании, пробовать разные технологии и рассчитывать использовать эти технологии для выполнения полезных для компании вещей.В конце месяца операторы начали жаловаться на то, что erp неудобен в использовании.Я предложил для создания erp-системы с нуля.Фреймворк использовал тогдашний Upstart-vue, сначала использовал инструмент построения веб-пакетов, реконструировал исходную систему входа в систему, систему разрешений, разделил бизнес-модули и внедрил оригинальные функции в виде iframes, которые заняли около полутора месяцев.
Никак, потому что исходную систему делал бэкенд, а бэкенда уже не было, мне нужно было самому увидеть все определения интерфейса, поэтому я потратил три недели на изучение основ java и springboot, а потом разобрался определения интерфейса, параметры. Не учитесь у меня...😢
После того, как базовые функции выполнены, они запускаются в работу и продукты, а остальные бизнес-модули переписываются в прогрессивном ключе (в одиночку писать тяжело) Отсутствие функций, рандомное размещение папок, разделение сервисов, рандомный гит подача, смешанная заглавная буква, отсутствие издательского процесса и т. д. Это тоже недостаток небольших компаний. Если никто не возьмется, вы будете много обходными путями. Теперь оглянитесь назад и напишите свой собственный код, Он вот-вот рухнет. проект продолжался, и бизнес-функции продолжали увеличиваться с расширением компании.В дополнение к исходным почтовым материалам, связанные модули, центры обработки данных, редактирование продукта, редактирование шаблона H5, анализ рекламы, социальные сети были добавлены один за другим. Управление и ряд модулей, бизнес-продуктов около 20, в каждом продукте около 7 или 8 функциональных модулей, открытие страницы начинает тормозить, и после каждого обновления открытие страницы будет ждать десятки секунд для загрузки , исходный Stuff ожидает нового раунда рефакторинга.
Рефакторинг ситуации
На самом деле предыдущие вещи не рефакторинг, а просто превратили очень плохое в нечто плохое.В начале второго года я планировал провести рефакторинг ERP системы и платформы мониторинга, и начал думать как эффективно развиваться Управление ERP-системой предприятия, как сделать так, чтобы пользователи не воспринимали статус использования Сервисный менталитет для стимулирования технологических инноваций — мой самый большой опыт в этом году.
На рефакторинг большинства бизнес-модулей ушло почти два месяца, и рефакторинг заменил react.Причина в том, что vue и typescript слишком недружественны.Сложная фронтенд-система должна быть основана на сильных типах, а слабые типы привносят Недостатки волшебный эффект намного перевешивает преимущества.На самом деле, к ts следует относиться с осторожностью, потому что добавление ts значительно увеличит сложность и сложность бизнес-кода.
В дополнение к изменению фреймворка и добавлению строгой типизации я перестроил скаффолдинг, добавил режим упаковки dll, построил платформу jenkins, принял автоматическую сборку и выпуск, добавил модульное тестирование, построил средний слой с экспрессом для реализации GraphQL , а заодно извлек модуль axios в Его интерфейс инкапсулирует и кеширует результаты запроса интерфейса, настраивает три часто используемых бизнес-модуля (форма, чат и таблица) (форма муравья мне не нравится), асинхронно загружает бизнес-модули и оптимизирует режим рендеринга.
В течение следующих нескольких месяцев также постепенно сформировался общий технологический стек компании: корпоративная операционная система с React в качестве ядра и система среднего офиса с Express в качестве ядра.
снова запутался
Компания планировала попробовать зарубежный проект электронной коммерции в начале января, но плохо разбиралась в рынке и не хотела тратить слишком много времени на исследования и разработки, поэтому он подошел ко мне и попросил разработать веб-приложение. чтобы проверить воду.В конце концов, я не знаком с содержанием клиента, это новаторский продукт, а позже компания прислушалась к моему предложению и наняла интерфейс с опытом работы с веб-приложением.В итоге проект использовал реагировать как внедрение стека технологий.В течение почти месяца проекту потребовалось около 20 дней, чтобы добавить совместную отладку и тестирование.Проект провалился через 2 месяца.Самая большая причина провала заключалась в том,что проблема с логистикой не была решена, и пользователи часто жаловались. Другая часть причины - sku веб-приложения. Существует несоответствие между онлайн и оффлайн, и взаимодействие со страницей не получило своевременную обратную связь. Я не могу решить проблему логистики, но проблема интерфейса моя ответственность.Позже, когда я увидел схему архитектуры фронтенда Xiaocai, я понял, насколько я неадекват, и путаница началась снова.До конца написания этой статьи, я думаю, я все еще ищу ответ Ниже приводится мое личное мнение о моем собственном обучении, и я надеюсь получить всеобщее мнение и предложения.
понимание
Изучение фреймворков или обучение использованию фреймворков
От трех основных фреймворков до производных от трех основных фреймворков, а затем до библиотек с открытым исходным кодом различных крупных производителей, большая часть внешнего интерфейса покрывается фреймворком, и большая часть нашего учебного времени тратится на изучение использовать различные фреймворки, даже много Использование фреймворков преподавалось на курсах обучения для целей курса, правильно ли это, это явно неправильно, как будто вы можете управлять самолетом, значит, вы можете летать, у меня также потратил большую часть своего времени на изучение использования различных фреймворков, Позже я постепенно обнаружил, что лежащие в основе идеи различных фреймворков похожи, хотя методы реализации разные, но идеи не более чем те: компонентизация, виртуальный дом, алгоритм diff, шаблон синтаксический сахар, асинхронное обновление, ioc и т. д. Указание на vue делает хорошую работу.
Многие люди думают, что использование vue — это очень низко, а некоторые интервьюеры даже не удосуживаются обсудить vue, но на самом деле, пока вы смотрите на исходный код, вы обнаружите, что черная магия в этом действительно велика. , вы даже можете использовать его самостоятельно. В проекте качество фреймворка заключается не в том, насколько сложен и крут его API, а в том, какие бизнес-сценарии он может решить, и цена, заплаченная за него.
На самом деле, после года работы каждый должен понять это:
Мы не должны быть портировщиками фреймворка, мы художники кода
Но иногда это беспомощность, занятость делами, частая смена работы, это требует энергии, у нас нет времени, чтобы понять основные вещи, как и у меня, проблема в том, что мы должны решить ее и соответствующим образом сосредоточить часть наших усилий. энергия на определенном человеке Для проектов, которые считаются более важными, доводите бизнес-структуру, структуру кода, спецификацию языка и предел производительности до крайности, потому что тогда вы углубитесь в нижний слой программы. это и не меняйте работу часто, решите, что ваша ценность - это ваши способности, а не компания.
Узнайте о новых технологиях
Ядро браузера постоянно оптимизируется и укрепляется, а фронтенд-технологии тоже меняются с каждым днем.Понимание новейших фронтенд-технологий также является необходимым качеством для квалифицированного фронтенда.Излишне говорить, что GraphQL, PWA , и WebAssembly всем знакомы, и я полагаю, есть еще и некоторые приложения проекта, на самом деле я только в курсе этих технологий, и это часто упоминается в каких-то статьях на Zhihu или Nuggets, а дальше буду Понимаешь.На самом деле у нас должно быть больше инициативы,конечно,первая Человек,который разбирается в этих технологиях,ни о чем не говорит,но как минимум показывает,что твоя острота очень высока.Мне очень не хватает.Когда читаешь какую-то зарубежную техническую статьи, вы должны искать объяснение терминов при переводе, но через некоторое время вы обнаружите, что это вам очень поможет, вы найдете очень интересные, вот несколько веб-сайтов, которые должен знать каждый:
- DailyJs
- CodeBrust
- serviceworke
- Echojs
- frontendfront
- Наггетс
- Вы голодны?
- Рецензии на зарубежные журналы
- Github
Конечно, новая технология здесь должна быть не только на переднем крае.Если это детская обувь, которая приносит прибыль по всей линии, лучше всего добавить некоторые базовые компьютерные знания, понять устройство компьютера и понять его. принцип реализации физического уровня 1 + 1. Это не помогает в бизнесе, но это поможет вам выучить и понять некоторые другие языки, да, если вы хотите стать квалифицированным программистом, вы должны изучить некоторые промежуточные и высокоуровневые языки, даже языки низкого уровня, изучайте c И язык BASIC позволит вам узнать больше об ОС. Конечно, вы также можете выбрать более популярные python и java, если хотите, любой новый язык - это новая дверь для вас, чтобы открыть компьютер.
Мой маршрут:
JavaScript -> Java -> C -> BASIC -> node
-> nginx
-> mysql -> mysql/MongoDB
-> 数据结构和算法
После изучения языка C и некоторых базовых баз данных вы также можете попробовать использовать язык R, но, пожалуйста, помните, что если ваша цель по-прежнему остается фронтенд-инженером, продолжайте укреплять свою основу js, независимо от того, что вы изучаете и используете. Язык, пожалуйста, не отказывайтесь от JS.
Наконец, дается: Программирование — это продукт практики, прикладной практики, а также того, как мы общаемся с миром.