Мэт Рейер в своей статье "A JavaScript-Free Frontend" поделился опытом написания web-приложения с минимально-возможным количеством JavaScript.
Мэт рассказывает о том, что его приложение для выставления счетов slimvoice, сначала было написано на Angular, потом на React, а в последствии переписано с самым минимальным количеством JavaScript кода. Он хотел доказать, что возможно написать современное надёжное web-приложение без JavaScript, тем самым сильно снизив сложность кода. Модальные окна были сделаны с использованием скрытого чекбокса, раскрывающийся элемент списка с помощью HTML-тегов
Статья заканчивается резонной критикой того, куда движется развитие стандартов. У нас есть WebVR, WebBluetooth, но нет встроенных семантических средств для создания модальных окон.
#webdevelopement #javascript
https://dev.to/winduptoy/a-javascript-free-frontend-2d3e
Мэт рассказывает о том, что его приложение для выставления счетов slimvoice, сначала было написано на Angular, потом на React, а в последствии переписано с самым минимальным количеством JavaScript кода. Он хотел доказать, что возможно написать современное надёжное web-приложение без JavaScript, тем самым сильно снизив сложность кода. Модальные окна были сделаны с использованием скрытого чекбокса, раскрывающийся элемент списка с помощью HTML-тегов
<details>
и <summary>
, валидация ввода и форма также были сделаны на чистом HTML с помощью возможностей HTML5. JavaScript остался только для реализации функции автозаполнения. В итоге самая тяжёлая страница на его проекте стала занимать 230 Кб. После кэширования каждый просмотр страницы генерирует всего лишь 6 Кб скачиваемых данных.Статья заканчивается резонной критикой того, куда движется развитие стандартов. У нас есть WebVR, WebBluetooth, но нет встроенных семантических средств для создания модальных окон.
#webdevelopement #javascript
https://dev.to/winduptoy/a-javascript-free-frontend-2d3e
Николас Закас – автор нескольких книг по JS и оригинальный автор eslint – в январе написал статью про то, почему он решил не использовать дефолтные экспорты в своих модулях. Статья называется "Why I've stopped exporting defaults from my JavaScript modules".
Для меня самое полезное в статье (как это ни странно) не причины, из-за которых автор отказался от дефолтных экспортов, а принципы, которыми он руководствуется при разработке и которые ценно вспоминать время от времени:
1. явное лучше неявного;
2. имена должны быть консистентны во всех файлах;
3. выкидывайте исключений как можно раньше и чаще;
4. меньшее количество решений - более быстрая разработка;
5. необходимость переключать контекст (side trips) замедляет разработку;
6. избыточная когнитивная нагрузка замедляет разработку.
Николас в статье рассказывает, почему дефолтные экспорты противоречат перечисленным принципам. При этом он не машет флагом, призывая к их уничтожению, наоборот, он говорит про то, что если вы любите использовать модули с дефолтными экспортами, в этом нет ничего плохого. Используйте то, что наиболее подходит вашему стилю разработки. Но мне лично доводы Николаса кажутся вполне разумными.
#javascript #modules #esm #musings
https://humanwhocodes.com/blog/2019/01/stop-using-default-exports-javascript-module/
Для меня самое полезное в статье (как это ни странно) не причины, из-за которых автор отказался от дефолтных экспортов, а принципы, которыми он руководствуется при разработке и которые ценно вспоминать время от времени:
1. явное лучше неявного;
2. имена должны быть консистентны во всех файлах;
3. выкидывайте исключений как можно раньше и чаще;
4. меньшее количество решений - более быстрая разработка;
5. необходимость переключать контекст (side trips) замедляет разработку;
6. избыточная когнитивная нагрузка замедляет разработку.
Николас в статье рассказывает, почему дефолтные экспорты противоречат перечисленным принципам. При этом он не машет флагом, призывая к их уничтожению, наоборот, он говорит про то, что если вы любите использовать модули с дефолтными экспортами, в этом нет ничего плохого. Используйте то, что наиболее подходит вашему стилю разработки. Но мне лично доводы Николаса кажутся вполне разумными.
#javascript #modules #esm #musings
https://humanwhocodes.com/blog/2019/01/stop-using-default-exports-javascript-module/
Humanwhocodes
Why I've stopped exporting defaults from my JavaScript modules - Human Who Codes
After years of fighting with default exports, I've changed my ways.
Сергей Ufocoder написал статью про приведение типов в JavaScript — "Насколько JavaScript сильный?".
Слабая система типов JavaScript стала источником большого числа шуток и недопониманий. Но насколько она слаба и можно ли её усилить? В статье проводится исследование неявных преобразований типов в JavaScript. Разбираются все возможные варианты приведений. Рассказывается, в каких случаях можно "усилить" систему типов. В статье есть очень много отсылок к спецификации с несложными объяснениями.
Вот некоторые выводы из статьи. Из 40 возможных приведений типов есть 3 контролируемых преобразования, 5 явных приведений, 9 преобразований типов невозможны (здесь JS проявляет свою строгость) и 23 неконтролируемых приведения типов.
В общем, статья большая и подробная. Рекомендую почитать, если хотите углубить свои знания в JavaScript.
#javascript
https://medium.com/devschacht/javascript-coercions-9a36505c1370
Слабая система типов JavaScript стала источником большого числа шуток и недопониманий. Но насколько она слаба и можно ли её усилить? В статье проводится исследование неявных преобразований типов в JavaScript. Разбираются все возможные варианты приведений. Рассказывается, в каких случаях можно "усилить" систему типов. В статье есть очень много отсылок к спецификации с несложными объяснениями.
Вот некоторые выводы из статьи. Из 40 возможных приведений типов есть 3 контролируемых преобразования, 5 явных приведений, 9 преобразований типов невозможны (здесь JS проявляет свою строгость) и 23 неконтролируемых приведения типов.
В общем, статья большая и подробная. Рекомендую почитать, если хотите углубить свои знания в JavaScript.
#javascript
https://medium.com/devschacht/javascript-coercions-9a36505c1370
Medium
Насколько JavaScript сильный?
Погружение в тему неявных преобразований. Где и как возникают и вычисляются неявные преобразования в JavaScript?
jsc — интерпретатор JavaScript, встроенный в macOS
Крейг Хокенберри написал статью про малоизвестную утилиту jsc — "jsc: My New Best Friend".
Все устройства с macOS идут в комплекте с jsc — интерпретатором JavaScript на базе движка JavaScriptCore. Бинарник находится по пути
Крейг пишет, что jsc используется командой разработки WebKit для запуска тестов. Возможно, что это так, но я не смог найти про это информацию. Нашёл, что jsc используется для поддержки выполнения скриптов в Swift- и Objective-C-программах.
Утилита jsc — это не замена Node.js, но она может оказаться полезной для запуска простых скриптов, когда Node.js под рукой нет.
#tool #javascript #macos
https://furbo.org/2021/08/25/jsc-my-new-best-friend/
Крейг Хокенберри написал статью про малоизвестную утилиту jsc — "jsc: My New Best Friend".
Все устройства с macOS идут в комплекте с jsc — интерпретатором JavaScript на базе движка JavaScriptCore. Бинарник находится по пути
/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Helpers/jsc
. В cтарых версиях macOS по пути /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc
.Крейг пишет, что jsc используется командой разработки WebKit для запуска тестов. Возможно, что это так, но я не смог найти про это информацию. Нашёл, что jsc используется для поддержки выполнения скриптов в Swift- и Objective-C-программах.
Утилита jsc — это не замена Node.js, но она может оказаться полезной для запуска простых скриптов, когда Node.js под рукой нет.
#tool #javascript #macos
https://furbo.org/2021/08/25/jsc-my-new-best-friend/
Furbo.org by Craig Hockenberry
jsc: My New Best Friend • furbo.org
A friend of mine recently pointed me at a well hidden command line tool. In the JavaScript framework used by Safari and other parts of Apple’s products, there is a tool called jsc. It’s a command line interface for JavaScript that uses the same code as the…