Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Мэттью Гаудк — разработчик SpiderMonkey — написал статью про опыт имплементации приватных полей класса в JavaScript-движке — "Implementing Private Fields for JavaScript".
Мэттью пишет о том, что при добавлении новой фичи в движок нужно учитывать три аспекта: ментальную модель, спецификацию и реализацию. Иногда они совпадают друг с другом, и имплементация сводится к пошаговой реализации алгоритма из спецификации. Иногда они расходятся, и имплементация очень начинает сильно отличаться от спецификации, сохраняя только семантику. Реализация приватных полей попала во вторую категорию.
Также в статье разбираются нюансы работы c приватными полями. Оказывается, что приватные поля могут быть добавлены к любому объекту, даже если он был явно закрыт от изменений с помощью
Очень интересная статья. Рекомендую почитать.
#js #internals #spec #firefox
https://www.mgaudet.ca/technical/2021/5/4/implementing-private-fields-for-javascript
Мэттью пишет о том, что при добавлении новой фичи в движок нужно учитывать три аспекта: ментальную модель, спецификацию и реализацию. Иногда они совпадают друг с другом, и имплементация сводится к пошаговой реализации алгоритма из спецификации. Иногда они расходятся, и имплементация очень начинает сильно отличаться от спецификации, сохраняя только семантику. Реализация приватных полей попала во вторую категорию.
Также в статье разбираются нюансы работы c приватными полями. Оказывается, что приватные поля могут быть добавлены к любому объекту, даже если он был явно закрыт от изменений с помощью
Oblect.seal(). Насколько я понимаю, это побочный эффект спецификации, и его не стоит использовать для решения своих задач.Очень интересная статья. Рекомендую почитать.
#js #internals #spec #firefox
https://www.mgaudet.ca/technical/2021/5/4/implementing-private-fields-for-javascript
Matthew Gaudet
Implementing Private Fields for JavaScript — Matthew Gaudet
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Новые возможности управления кешом в HTTP
Тим Пэрри написал статью про новые HTTP-заголовки для управления кешом и упрощения отладки проблем кеширования — "New HTTP standards for caching on the modern web".
Современные веб-приложения используют разные уровни кеширования, начиная кешом браузера и заканчивая кешами балансера и CDN. Для упрощения отладки проблем кеширования был добавлен HTTP-заголовок
Для более тонкого управления кешом в стандарт был добавлен Targeted Cache-Control. По сути это обычный
Тим пишет, что Cache-Status и Targeted Cache-Control находятся на стадии черновика, но спецификации уже не будут меняться кардинально.
#http #cache #spec
https://httptoolkit.tech/blog/status-targeted-caching-headers/
Тим Пэрри написал статью про новые HTTP-заголовки для управления кешом и упрощения отладки проблем кеширования — "New HTTP standards for caching on the modern web".
Современные веб-приложения используют разные уровни кеширования, начиная кешом браузера и заканчивая кешами балансера и CDN. Для упрощения отладки проблем кеширования был добавлен HTTP-заголовок
Cache-Status, с помощью которого можно отследить прохождение запроса через все уровни кеширования.Для более тонкого управления кешом в стандарт был добавлен Targeted Cache-Control. По сути это обычный
Cache-Control, который можно использовать для точечного управления кешами. Akamai и Cloudflare уже поддерживают CDN-Cache-Control, Akamai-Cache-Control и Cloudflare-CDN-Cache-Control. В будущем возможно появление Client-Cache-Control и других подобных заголовков.Тим пишет, что Cache-Status и Targeted Cache-Control находятся на стадии черновика, но спецификации уже не будут меняться кардинально.
#http #cache #spec
https://httptoolkit.tech/blog/status-targeted-caching-headers/
Httptoolkit
New HTTP standards for caching on the modern web
If you run any large public-facing website or web application on the modern web, caching your static content in a CDN or other caching service is super...