Size: a a a

Иван Акулов про разработку

2018 January 17
Иван Акулов про разработку
Сделал плагин, чтобы выбрасывать неиспользуемые локализации из Moment.js: https://www.npmjs.com/package/moment-locales-webpack-plugin
источник
Иван Акулов про разработку
Сейчас этого же можно добиться с помощью ContextReplacementPlugin или IgnorePlugin, но они 1) непонятные, 2) однажды могут поменять АПИ (и вам придётся разбираться в этом самостоятельно).

Устанавливайте плагин, чтобы этих проблем не было :–)
источник
Иван Акулов про разработку
Для сравнения — вот как выбрасываются файлы локализации через ContextReplacementPlugin
источник
Иван Акулов про разработку
(Я когда-то день разбирался, чтобы понять, что именно делает этот плагин: https://iamakulov.com/notes/webpack-contextreplacementplugin/)
источник
Иван Акулов про разработку
И, конечно, если у вас свежий проект, лучше берите date-fns:
источник
Иван Акулов про разработку
Переслано от Yegor Belov
Даже без лишних локализаций Moment остается очень жирной либой. Их уже давно просили поступить, как, например, lodash, и разнести методы по модулям, чтобы не нужно было тянуть всю библиотеку ради одной функции. Насколько я понимаю, делать они этого не собираются, так что есть альтернативы -- например, https://github.com/date-fns/date-fns, где это реализовано.
источник
2018 January 18
Иван Акулов про разработку
​​Хинт: используете babel-preset-env и babel-polyfill? Добавьте useBuiltIns: true в настройках пресета.

В моём тестовом приложении с поддержкой IE11 это убрало 24 КБ минифицированного кода.

https://babeljs.io/docs/plugins/preset-env/#usebuiltins
источник
2018 January 20
Иван Акулов про разработку
Привет! У меня первый оффтопик за всё время канала :–)

Я учусь навыкам, которые нужны в бизнесе — разбираться в финансах, управлять людьми и рекламировать. Завёл канал по этой теме: https://t.me/iamakulov_learning_biz

Вот что в него попадает:
источник
Иван Акулов про разработку
Активы

#бпбп
источник
Иван Акулов про разработку
Крутой пост, который вы написали, можно не только запостить в Фейсбуке и Твитере, а переформатировать в дополнительный контент ещё кучей способов. Это помогает меньшими усилиями поддерживать quantity, не теряя в quality: http://blog.scoop.it/2016/01/05/reformat-one-piece-of-content-entire-marketing-campaign/
источник
Иван Акулов про разработку
источник
Иван Акулов про разработку
Приходите, если тоже хотите развивать эти навыки :–) https://t.me/iamakulov_learning_biz

(Про разработку я, как и раньше, продолжаю писать здесь)
источник
2018 January 24
Иван Акулов про разработку
🚄 Про HTTP/2 и параллельную загрузку

The Best Request Is No Request

Если вы слышали про HTTP/2, то вы знаете про его параллельную загрузку — один из главных плюсов. Раньше было правило — лучший запрос это отсутствующий запрос. Действует ли это правило в случае с HTTP/2? Или параллельная загрузка спасёт нас?

У ребята из A List Apart есть большое исследование. Спойлеры:
«Triggering a large number of requests in an HTTP/2 environment is no longer inherently bad for performance; transferring unnecessary data is».

• • •

→ Подписаться на канал: https://t.me/joinchat/AAAAAE--HPaYhq7cN4gyJQ
источник
2018 January 25
Иван Акулов про разработку
​​Вышла бета Вебпака 4, релиз — через месяц: https://twitter.com/wSokra/status/956300912330493952

Новые важные фичи:
Два режима работы: development и production. Первый оптимизирован для быстрых ребилдов, во втором включаются оптимизации для продакшена (минификация, конкатенация модулей и т.д.). На практике это значит, что половина плагинов из вашего конфига теперь включена по умолчанию и не нужна

CommonsChunkPlugin-а больше нет. Вместо него — более простые опции optimization.splitChunks и optimization.runtimeChunks (подробности в заметке Тобиаса)

Библиотеки могут указывать флаг sideEffects: false в package.json. Флаг помогает Вебпаку оптимизировать реэкспорты; для нас это значит, что импорты из библиотек вроде lodash-es теперь станут меньше (пример в твите Сина Ларкина).
источник
Иван Акулов про разработку
Кстати, первую альфу Вебпака 4 я разбирал детально. Там часть этих изменений уже есть: https://t.me/iamakulov_channel/219
источник
Иван Акулов про разработку
​​Ещё из крутого — в Реакт смержили новое АПИ контекста: https://github.com/facebook/react/pull/11818

Новое АПИ:
— совместимо с будущими апдейтами Реакта (Реакт планирует однажды сделать рендеринг асинхронным и оптимизировать производительность, задерживая рендеринг компонентов вне экрана)
— не ломается из-за shouldComponentUpdate -> false

(Картинку нагло украл из твита)
источник
2018 January 28
Иван Акулов про разработку
​​Интересный взгляд на проблемы REST (комментарии тоже классные): https://medium.freecodecamp.org/rest-is-the-new-soap-97ff6c09896d

— С REST не выразить многие штуки, которые нужно делать в приложении («отправить письмо со сбросом пароля» — это какой ресурс?)
— REST предлагает использовать для ошибок HTTP-коды, но многие коды описаны слишком абстрактно, плюс для многих ошибок подходящих кодов нет
— У REST нет простой чёткой спецификации, и все делают его немного по-разному (и постоянно спорят, как лучше)

Взамен автор предлагает использовать API вроде RPC (Remote Procedure Call). В комментариях ещё советуют GraphQL.

Что думаете? Если разбираетесь в теме, поделитесь мыслями → @iamakulov_channel_chat
источник
Иван Акулов про разработку
Константин прислал хороший комментарий к статье:
источник
Иван Акулов про разработку
Переслано от Константин Брызгалин...
Phil Sturgeon написал ответку в двух частях на этот плач ярославны: https://philsturgeon.uk/api/2017/12/18/rest-confusion-explained/ и https://philsturgeon.uk/api/2018/01/20/rest-confusion-explained-further/
источник
2018 February 01
Иван Акулов про разработку
Пару месяцев назад пришлось быстро переквалифицироваться в фулстека. Рассказываю, как быть, если вы столкнётесь с тем же.
источник