Как друзья, добро пожаловать, чтобы следовать за мнойблогилиНовостная лента.
Помню, в начале года я составил себе учебный план, а сейчас оглядываюсь назад и вижу, что выполнение неплохое. Но есть еще некоторые сожаления, некоторые технические моменты нет времени на изучение.
В ходе своего исследования я обнаружил, что такие знания, как статьи, часто фрагментарны, а front-end включает в себя множество аспектов, и если эти знания не будут эффективно отсортированы, система не может быть сформирована и связана друг с другом. В конце концов, возникает ощущение познания одного куска на востоке и немного на западе. Поэтому я абстрагировал некоторые базовые технические возможности внешнего интерфейса, исходя из своего опыта работы, и организовал некоторый хороший контент, который я изучил или создал за этот период, в соответствии с этими возможностями, сформировав список технологий внешнего интерфейса (гитхаб-адрес).
Независимо от того, изучаете ли вы интерфейс и застряли, или вы хорошо разбираетесь в некоторых технологиях, но еще не овладели ими, я надеюсь, что этот список поможет вам.
Из-за ограниченности личной энергии наведение некоторых технических моментов может быть необъективным или не включенным в настоящее время.Контент манифеста на githubОн также будет постоянно обновляться. В настоящее время он содержит только чистый интерфейсный базовый контент, NodeJS, клиентский панорамный интерфейс, апплет, визуализацию и другой контент следует оставить открытым.
Содержание списка↓↓↓
0. Годовой отчет
- Отчет об исследовании интерфейсных инструментов за 2018 г.
- Отчет об исследовании JavaScript за 2018 г.
1. Основные добавки
Просмотрите старое и изучите новое, и изучите его, если вы этого не знаете, чтобы укрепить фундамент.
1.1. JavaScript
- You-Dont-Know-JS [английский]
- Основной механизм работы JavaScript:
- Цикл событий (в интервью всегда есть вопрос, Цикл событий…):
- Web Workers и 5 распространенных сценариев использования [английский]
- Как избежать асинхронного/ожидающего ада
- Краткое изложение решений «Ада обратного звонка»
1.2. CSS
- You-Need-to-Know-CSS
- Руководство по компоновке CSS
- Различные разрывы строк в CSS [английский]: решает классическую проблему новой строки
- Что делать, если возникает ошибка точности, когда браузер конвертирует rem в px?
- Точно контролируемая прокрутка, рассказ о новом стандарте Scroll Snap
- Как добиться идеального
button
кнопка элемента [английский] - Использование CSS Grid для создания контейнера с горизонтальной прокруткой [на английском языке]
- Как обрабатывать пробелы во встроенных элементах [английский]
- Малоизвестные подводные камни в контексте стекирования CSS
1.3 Браузер
- Как работают браузеры
- Как современные браузеры работают внутри:
- Полное введение в API жизненного цикла страницы [на английском языке]
- Четыре новых наблюдателя: Intersection/Mutation/Resize/Performance (Observer)
- Режим работы движка рендеринга и предложения по оптимизации [английский]
- Рендеринг ядра браузера: перестроить движок
- Сводка междоменного решения
2. Инжиниринг и инструменты
Расширение масштаба программного обеспечения влечет за собой потребность в разработке, и внешний интерфейс не является исключением. С появлением NodeJS фронтенд-инженеры могут использовать знакомые инструменты JS, необходимые им для быстрой разработки. Процветание экологии инструментальной цепочки также является отражением процветания клиентского круга.
2.1. webpack
- Алгоритм графа чанков в webpack [английский]
- расширенная серия статей webpack
- Скомпилируйте и оптимизируйте:
- Обсуждение кеша компиляции webpack:
2.2. Gulp
- Введение в Gulp 4 [английский]
- Практическое руководство по многостраничным приложениям на основе Gulp
2.3. Linter
2.4 Статическая типизация (Typescript/Flow)
- Общая архитектура машинописного текста [английский]
- Зачем статическая проверка типов в JavaScript:
2.5. Babel
2.6. CSS предварительная обработка и модуляция
3. Оптимизация производительности
Оптимизация производительности на самом деле «в соответствии с локальными условиями» на основе понимания браузера, поэтому ее можно понять в сочетании с разделом «Браузер» в разделе 1.3.
настоятельно рекомендуюОптимизация производительности в Google WebСтатьи в Tab прочитываются, и они в основном охватывают все моменты оптимизации производительности в современных браузерах, очень системно. Ниже приведены некоторые выдержки, которые я лично считаю очень хорошими.
3.1 Производительность загрузки
- Режим PRPL [английский]
- Полное руководство по отложенной загрузке изображений [на английском языке]
- Использование Intersection Observer для ленивой загрузки изображений [английский]
- Подробное руководство по ленивой загрузке изображений и видео [на английском языке]
- Использование среды Application Shell для реализации мгновенного приложения [на английском языке]
3.2 Производительность во время выполнения
- Избегайте больших, сложных макетов и дрожания макета [на английском языке]
- Что вызывает принудительную синхронную компоновку (перекомпоновку)? [Британия]
- Как диагностировать макет принудительной синхронизации [английский]
- Оптимизация производительности беспроводной сети: Композитный
- Как недобросовестно улучшить производительность событий прокрутки
- Используйте пассивный прослушиватель событий, чтобы улучшить плавность прокрутки [на английском языке]
- Дроссельная заслонка и устранение дребезга:
- requestIdleCallback — мощный и артефактный API:
- Начало работы с requestIdleCallback [английский]
- Простой до срочного [английский]: Магическое использование requestIdleCallback
3.3. Внешний кеш
- Введение в веб-кеширование: покупка молока [английский]
- Интерфейсный кеш больших слов [английский]
- Кэш (1) — Обзор кэша: кэш с точки зрения оптимизации производительности
- Кэш (2) — механизм кэширования браузера: сильный кеш, кеш согласования
- Кэш (3) - Хранение данных: cookie, Storage, indexedDB
3.4 Отладка производительности и практика
- Используйте Chrome DevTools для повышения скорости страницы [英]: Практическое объяснение Chrome DevTools
- Узнайте о синхронизации ресурсов в DevTools
- Оптимизация производительности Taobao New Force Week H5 Actual Combat
- Оптимизируйте стратегию упаковки, чтобы повысить скорость загрузки страницы.
- Советы по отладке в Chrome DevTools, о которых вы могли не знать
- Измерение производительности внешнего интерфейса [английский]
3.5. Индикатор производительности
- Ориентированные на пользователя показатели производительности внешнего интерфейса [английский]: плюсы и минусы внешних индикаторов производительности
- DOMContentLoaded:
- FP (первая краска):
- FCP (первая содержательная краска):
- FMP (первая значимая краска):
- TTI (время до интерактивности):
- TTFB (время до первого байта):
- FID (задержка первого входа):
- Индекс скорости:
4. Безопасность
Многие риски безопасности являются клише, но их часто не воспринимают всерьез или не осознают до тех пор, пока не возникнет проблема.
- 8 проблем с безопасностью интерфейса, часть 1
- 8. Проблемы внешней безопасности, часть 2
- Объяснение концепций: кодирование, шифрование, хеширование и запутывание [английский]
- Сводка распространенных атак и средств защиты веб-безопасности
4.1. XSS
4.2. CSRF
- Как предотвратить CSRF-атаки?
- Изоляция сайта [английский]: Что нового в Chrome
4.3. CSP
4.4. HTTPS
4.5 Запись о безопасности
-
About
rel=noopener
[Британия]: Как открытие новой страницы представляет угрозу безопасности - Новый способ «рыбалки» [англ.]
- Межсайтовый риск, вызванный запросом медиафайла [на английском языке]
- Смягчающий призрак [английский]: Проблемы межсайтовой безопасности в Chrome
5. Автоматизированное тестирование
Автоматизированное тестирование — одна из важных частей разработки программного обеспечения, но его очень легко упустить из виду.
- Обзор автоматизированного тестирования интерфейса пользователя, 2018 г. [английский]
- Протестируйте свой интерфейсный код (введение) [английский]
5.1 Модульное тестирование
- Протестируйте свой интерфейсный код (модульное тестирование) [английский]
- Четкие концепции фейков, моков и заглушек
- Для чего именно полезно тестовое покрытие (скорость)?
5.2 Сквозное тестирование (E2E)
- Протестируйте свой интерфейсный код (тестирование E2E) [английский]
- Что такое хороший тест E2E? [Британия]
- Баланс между модульным и сквозным тестированием
- Скажите «нет» слишком большому количеству E2E-тестирования [английский]
5.3 Прочее
- Протестируйте свой интерфейсный код (интеграционные тесты) [английский]
- Протестируйте свой интерфейсный код (визуальное тестирование) [английский]
6. Фреймворки и библиотеки классов
Если базовое знание — это Дао, то рамки и инструменты могут быть искусством; изучите и поймите их, но никогда не становитесь их рабами.
6.1. React
- Под капотом React [английский]
- Детали реакции, которые вам нужно знать
- Архитектура React Fibre
- Обзор исходного кода React 16 Fiber
- Как создавался Реакт: ранний путь эволюции React
- Реализация реагирования с нуля:
- Практика одностраничного приложения "React Technology Stack", быстрый старт
6.2. Vue
6.3. Redux
- Редизайн Redux [английский]: Реванш
- Как заменить Redux на GraphQL [английский]
- Интерпретируйте идеи дизайна и использование Redux
- (Redux) Три принципа построения приложений [английский]
6.4. RxJS
- Официальный сайт ReactiveX: Карта драгоценных камней действительно очень наглядна и легко читается.
- Реактивное программирование — разумный выбор
- Графический RxJS [английский]
- Отладка RxJS: инструменты [английский]
- Отладка RxJS: ведение журнала [английский]
7. Новая технология/направление
Новые технологии и новые направления в области фронтенда появляются одно за другим Вот несколько новых технических направлений, как разработчику нужно больше знать, но не следовать слепо
7.1. PWA
- Серия обучения и практики PWA
- Введение в начало работы с Service Workers [английский]
- Специальные выпуски PWA на платформе iOS [английский]
- Будьте осторожны с метатегами iOS в PWA [на английском языке]
- Практика обновления PWA от Ele.me
- Офлайн-гид
- WebAPK в Android [английский]
- Практика PWA на Pinterest [английский]
- API асинхронных файлов cookie HTTP [английский]: расширение возможностей сервисных работников
7.2. CSS Houdini
- Познакомьтесь с Houdini и CSS Paint API [на английском языке]
- Спасение полифиллов CSS с помощью Houdini [английский]
7.3. Web Components
- Основные понятия и использование веб-компонентов
- Руководство по веб-компонентам [на английском языке]
- Введение в теневой DOM
- История HTMLUnknownElement и пользовательских элементов HTML5
7.4. Микроинтерфейсы
- Домашняя страница Micro Frontend [английский]
- Эти вещи о микро интерфейсе
- «Микроинтерфейс» Technology Radar — расширение концепции микросервисов на интерфейсную разработку
7.5. HTTP/2
7.6. WebAssembly
- Официальный сайт WebAssembly
- Статус-кво WebAssembly и реальный бой
- Серия WebAssembly:
8. Связанный с бизнесом
В бизнесе часто бывают какие-то «независимые от бизнеса» сценарные требования, которые почти всегда встречаются в любом бизнесе, поэтому нам необходимо абстрагироваться от этих проблем в процессе изменений и изменений.
8.1 Управление данными и отчетность
- Как точно посчитать продолжительность пребывания на странице
- Раскройте тайну незарытой технологии JS
8.2 Внешний мониторинг
- Исследование внешнего решения для мониторинга исключений
- Практика разработки front-end SDK для платформы мониторинга
- Максимальный внешний мониторинг
- Сводка по исследованию системы внешнего мониторинга
8.3. A/B-тестирование
- Практика A/B-тестирования Twitter:
- Практика экспериментальной платформы Netflix A/B Test [английский]
- Метод наведения
- Тематические исследования
- инструмент
8.4. "Серверная рассылка"
- Принципы и примеры различных технологий «Server Push»
- Сравнение основных серверных технологий push-уведомлений, таких как длинное соединение/веб-сокет/SSE.
- Comet: технология «Server Push», основанная на постоянном соединении HTTP
- Подробные сведения о WebSockets, HTTP/2 SSE [английский]
- Анализ проблем безопасности приложений WebSocket
8.5 Анимация
- 12 принципов анимационного дизайна 🎥 [англ.]
- Кривая Безье Грамотность
- Анимация: от AE в Интернет
- Наиболее полное и лучшее использование метода динамической посадки:
9. Хорошее письмо без категорий
Расслабление полезно.
- Recursion? We don't need no stinking recursion!: Как превратить некоторую рекурсию в циклы (оптимизация хвостовой рекурсии)
- Turning your web traffic into a Super Computer: подключение компьютеров по всему миру к суперкомпьютерам через Web Worker и WebSocket.
- Designing very large (JavaScript) applications: Высотное здание, подходящее для чтения и размышлений.
Примечание. Для некоторых статей на иностранном языке может потребоваться «Научный доступ в Интернет».