Почему стоит отказаться от дефолтных экспортов в пользу именованных, мнение создателя ESLint Николаса Закаса → https://humanwhocodes.com/blog/2019/01/stop-using-default-exports-javascript-module/
Конфигурация CI как код
Для непрерывной интеграции (Continuous Integration) обычно используют инструменты вроде Jenkins, TeamCity, Travis или CircleCI. Эти инструменты предоставляют собственный интерфейс для конфигурирования CI, в котором процесс обычно описывается шагами: настройка окружения, запуск тестов, сборка, деплой и так далее.
Настройка CI через интерфейс используемого инструмента непрозрачна и неудобна:
— изменения не версионируются;
— для внесения изменений каждый раз нужно открывать сам инструмент, который может быть недоступен (например, из-за выключенного корпоративного VPN);
— для изменения процесса в рамках конкретной задачи придётся плясать с бубном и разделять в инструменте общий билд и билд этой задачи.
Решение этих проблем — описание процесса в виде кода (например, в виде sh-скрипта или Makefile) и хранение этого кода непосредственно в репозитории проекта. В используемом вами инструменте остаётся только указать команду запуска этого кода.
Если описать основные шаги процесса в виде отдельных скриптов, их также можно будет использовать локально: например, запустить настройку окружения при старте работы с проектом или прогонять тесты перед каждым коммитом.
Больше советов → https://github.com/forwebdev/ui-developer-tips
Для непрерывной интеграции (Continuous Integration) обычно используют инструменты вроде Jenkins, TeamCity, Travis или CircleCI. Эти инструменты предоставляют собственный интерфейс для конфигурирования CI, в котором процесс обычно описывается шагами: настройка окружения, запуск тестов, сборка, деплой и так далее.
Настройка CI через интерфейс используемого инструмента непрозрачна и неудобна:
— изменения не версионируются;
— для внесения изменений каждый раз нужно открывать сам инструмент, который может быть недоступен (например, из-за выключенного корпоративного VPN);
— для изменения процесса в рамках конкретной задачи придётся плясать с бубном и разделять в инструменте общий билд и билд этой задачи.
Решение этих проблем — описание процесса в виде кода (например, в виде sh-скрипта или Makefile) и хранение этого кода непосредственно в репозитории проекта. В используемом вами инструменте остаётся только указать команду запуска этого кода.
Если описать основные шаги процесса в виде отдельных скриптов, их также можно будет использовать локально: например, запустить настройку окружения при старте работы с проектом или прогонять тесты перед каждым коммитом.
Больше советов → https://github.com/forwebdev/ui-developer-tips
GitHub
GitHub - forwebdev/ui-developer-tips: Советы для разработчика интерфейсов
Советы для разработчика интерфейсов. Contribute to forwebdev/ui-developer-tips development by creating an account on GitHub.
В чём я не шарю в 2018: Дэн Абрамов напоминает, что пробелы в знаниях не обесценивают приобретённый с годами опыт → https://overreacted.io/ru/things-i-dont-know-as-of-2018/
GraphQL спустя два года: инженеры Verve о предпосылках перехода на GraphQL, опыте использования и совершённых ошибках → https://verve.co/engineering/graphql-a-retrospective/
This media is not supported in your browser
VIEW IN TELEGRAM
Анимируем URL с помощью JavaScript и эмодзи: Мэтью Рейфилд со скринкастом и статьей о реализации безумной идеи → https://matthewrayfield.com/articles/animating-urls-with-javascript-and-emojis/
Паттерны дизайна таблиц в вебе: от адаптивности до пагинации, сортировки и поиска. Обзор Хуэй Дзинь Чэнь → https://www.smashingmagazine.com/2019/01/table-design-patterns-web/
Два фронтендера сидят в баре. Им не о чем поговорить.
Мнение Криса Койера и многих других разработчиков о расколе нашей профессии и проблемах, которые он несёт для всех → https://css-tricks.com/the-great-divide/
Мнение Криса Койера и многих других разработчиков о расколе нашей профессии и проблемах, которые он несёт для всех → https://css-tricks.com/the-great-divide/
🎧
Свежие подкасты
«Девшахта» №67, в гостях Вадим Горбачев: вопросы безопасности → https://medium.com/p/e36b81ef816d
«Веб-стандарты» №158, в гостях Роберт Харитонов и Денис Радин: сайт «Веб-стандартов», события и сообщества, новинки Safari TP, свежие статьи, снипеты и редакторы кода, кому нужен VR, фонд GitNation → https://medium.com/p/eac76300bd8f
«Фронтенд-юность» №81, в гостях Павел Черторогов и Алексей Золотых: всё, что вы хотели знать о GraphQL, Казахстан, jQuery, React и Ruby, Flow vs TypeScript → https://soundcloud.com/frontend_u/e81
«Новости 512» от CSSSR №35: обзор новостей и интересных публикаций → https://soundcloud.com/csssr/novosti-512-vypusk-35-2101-2701
Свежие подкасты
«Девшахта» №67, в гостях Вадим Горбачев: вопросы безопасности → https://medium.com/p/e36b81ef816d
«Веб-стандарты» №158, в гостях Роберт Харитонов и Денис Радин: сайт «Веб-стандартов», события и сообщества, новинки Safari TP, свежие статьи, снипеты и редакторы кода, кому нужен VR, фонд GitNation → https://medium.com/p/eac76300bd8f
«Фронтенд-юность» №81, в гостях Павел Черторогов и Алексей Золотых: всё, что вы хотели знать о GraphQL, Казахстан, jQuery, React и Ruby, Flow vs TypeScript → https://soundcloud.com/frontend_u/e81
«Новости 512» от CSSSR №35: обзор новостей и интересных публикаций → https://soundcloud.com/csssr/novosti-512-vypusk-35-2101-2701
Как работать с денежными значениями в JavaScript: Сара Даян о распространённых ошибках и способах их избежать в переводе Игоря Камышева → https://medium.com/p/bb0706840f0e
Как и почему инженеры PayPal перешли с Flow на TypeScript во всех новых проектах → https://medium.com/p/9d1acc07c839
Анализ уязвимостей процесса аутентификации: Вадим Горбачёв рассказывает о распространённых проблемах веб-безопасности, иллюстрируя их удивительными историями о реальных взломах → https://medium.com/p/475b749fbb9f
Какой бандлер выбрать: Webpack, Parcel или Rollup? Сравнение скорости, размера итогового бандла и простоты использования → https://github.com/tehcookies/bundlers-comparison
Electronegativity, инструмент для поиска антипаттернов безопасности и конфигурации в приложениях на Electron → https://github.com/doyensec/electronegativity
Почему разработчики Flow игнорировали опенсорс-сообщество и чем они занимались весь прошлый год: официальное объяснение и позиция касательно перехода части проектов Facebook на TypeScript → https://medium.com/p/54239c62004f
Зачем нужны переменные окружения в Node.js и как их использовать с удобством → https://medium.com/p/2da8cdf6e786
Иллюстрированное руководство по Web Authentication, новому стандарту для аутентификации без паролей на основе криптографии с открытым ключом → https://webauthn.guide/
Записи докладов с первого митапа Piter GraphQL: GraphQL и архитектура веб-приложений, GraphQL — новый Redux, паттерны проектирования GraphQL-схем → https://habr.com/p/438124
Программная генерация SVG-иллюстраций с помощью Processing: введение и практические примеры → https://bjango.com/articles/processingsvg/
D3wasm, порт Doom 3 для браузеров на основе WebAssembly: демо и детали реализации → https://www.continuation-labs.com/projects/d3wasm