Информация об изменениях

Сообщение Re[8]: Какое же всё-таки говно стала студия от 29.09.2024 18:16

Изменено 29.09.2024 18:20 Alekzander

Re[8]: Какое же всё-таки говно стала студия
Здравствуйте, Pauel, Вы писали:

A>>Тут недавно уже обсуждалось, зачем вообще декларативно описывать UI, когда можно сделать псевдо-декларацию на императивном языке (с трюками типа показанных выше). Не хочу повторяться.


P>Ссылка то есть у вас?


Это было совсем недавно, но просматривать список всех тем не хочется. Может, кто-то вспомнит.

Мне проще будет накидать несколько пунктов.

* Как это просматривать (в сборе) и редактировать? В чём? Для контентных языков — plain text'а и маркдауна — есть сколько угодно редакторов. Есть в том числе визивижные. А тут? Кто сказал, что нужно всё, что ты нагородил — метадата, название, ссылки? Нужно просто текст документа. Зато у тебя каждый параграф вынесен в отдельный элемент, и упакован в main. Почему в main, а не в какой-нибудь whoein? Откуда это должен знать редактор?

* Какой будет механизм управления локализациями? Кто будет выбирать локализацию лицензии, выбранную в среде (т.е. браузере)? Когда среди вариантов лицензий не найдётся ни одной, совпадающей с топовой локализацией, кто выберет из списка понимаемых юзером языков второй, третий и т.д.? (Ты этот список вообще из джаваскрипта можешь получить? А браузер может. Если ты добавишь русский к системным языкам Андроида, мобильный фаерфокс перестанет задалбывать тебя предложениями перевести страницу). Когда вообще ни одной подходящей локализации не найдётся, кто кинет ворнинг в консоль браузера?

* Если юрист при подготовке сломает md-файл (ошибётся в статье или выделит то, что от выделения потеряет юридическую силу), это будет его косяк. Если юрист при подготовке сломает js-файл (например, пропустит символ присваивания), это будет твой косяк как архитектора. В результате ошибки юриста у тебя может вообще не отобразиться лицензия.

* То, что юрист может сломать по ошибке, хакер может сломать по злому умыслу. В середину лицензии он может вставить отсылку на данных на сервер. А файл с лицензией заставить таскать в соответствии с лицензией. Кто внимательно читает лицензию после слов "бесплатно при условии включения этой лицензии"?

* Даже при внимательно изучении этот код можно не найти, т.к. люди, не застрявшие в нулевых, в курсе о трюках с Юникодом. В нём есть двунаправленность, при помощи которой текст можно скрыть от отображения в IDE, но он будет исполняться. (Есть обзоры, кто и как подвержен этой беде в 2024). Юникод можно использовать совместно с другими атаками, например, подменяя в коде имя переменной или адрес сервера (которые визуально выглядят так же). Один из вариантов решения этой проблемы — строго отделить контент от кода. Файлы с кодом — строго в безопасном наборе символов, файлы с контентом — строго без кода. А поскольку код может быть инлайновой частью разметки, для безопасности было бы крайне полезно иметь возможность строго отделять контент и от разметки тоже.

* Части контента приобретают нездоровую зависимость от порядка объявления. Сломанный кусок в начале сломает всё остальное. Прощабельные схемы (автозакрытие выделения при помощи *, например) становятся невозможны, т.к. джаваскрипт ошибок не прощает.

* Не имея информации о том, что это контент, браузер ограничен в вариантах оптимизации. Для него это строковые значения полей объектов и больше ничего.

И т.д., и т.д., и т.д.

Если мало, я насыплю ещё.

И это один только пример с лицензией. А ведь я могу взять в качестве примера что-нибудь типа разметочной замены векторных шрифтов. Не задумывался, откуда взялось это уродливое явление, если в HTML всё так хорошо с управлением разметкой?
Re[8]: Какое же всё-таки говно стала студия
Здравствуйте, Pauel, Вы писали:

A>>Тут недавно уже обсуждалось, зачем вообще декларативно описывать UI, когда можно сделать псевдо-декларацию на императивном языке (с трюками типа показанных выше). Не хочу повторяться.


P>Ссылка то есть у вас?


Это было совсем недавно, но просматривать список всех тем не хочется. Может, кто-то вспомнит.

Мне проще будет накидать несколько пунктов.

* Как это просматривать (в сборе) и редактировать? В чём? Для контентных языков — plain text'а и маркдауна — есть сколько угодно редакторов. Есть в том числе визивижные. А тут? Кто сказал, что нужно всё, что ты нагородил — метадата, название, ссылки? Нужно просто текст документа. Зато у тебя каждый параграф вынесен в отдельный элемент, и упакован в main. Почему в main, а не в какой-нибудь whoein? Откуда это должен знать редактор?

* Какой будет механизм управления локализациями? Кто будет выбирать локализацию лицензии, выбранную в среде (т.е. браузере)? Когда среди вариантов лицензий не найдётся ни одной, совпадающей с топовой локализацией, кто выберет из списка понимаемых юзером языков второй, третий и т.д.? (Ты этот список вообще из джаваскрипта можешь получить? А браузер может. Если ты добавишь русский к системным языкам Андроида, мобильный фаерфокс перестанет задалбывать тебя предложениями перевести страницу). Когда вообще ни одной подходящей локализации не найдётся, кто кинет ворнинг в консоль браузера?

* Если юрист при подготовке сломает md-файл (ошибётся в статье или выделит то, что от выделения потеряет юридическую силу), это будет его косяк. Если юрист при подготовке сломает js-файл (например, пропустит символ присваивания), это будет твой косяк как архитектора. В результате ошибки юриста у тебя может вообще не отобразиться лицензия.

* То, что юрист может сломать по ошибке, хакер может сломать по злому умыслу. В середину лицензии он может вставить отсылку на данных на сервер. А файл с лицензией заставить таскать в соответствии с лицензией. Кто внимательно читает лицензию после слов "бесплатно при условии включения этой лицензии"?

* Даже при внимательно изучении этот код можно не найти, т.к. люди, не застрявшие в нулевых, в курсе о трюках с Юникодом. В нём есть двунаправленность, при помощи которой текст можно скрыть от отображения в IDE, но он будет исполняться. (Есть обзоры, кто и как подвержен этой беде в 2024). Юникод можно использовать совместно с другими атаками, например, подменяя в коде имя переменной или адрес сервера (которые визуально выглядят так же). Один из вариантов решения этой проблемы — строго отделить контент от кода. Файлы с кодом — строго в безопасном наборе символов, файлы с контентом — строго без кода. А поскольку код может быть инлайновой частью разметки, для безопасности было бы крайне полезно иметь возможность строго отделять контент и от разметки тоже.

* Части контента приобретают нездоровую зависимость от особенностей императивного языка, в котором описаны, например, от порядка объявления. Сломанный кусок в начале сломает всё остальное. Прощабельные схемы (автозакрытие выделения при помощи *, например) становятся невозможны, т.к. джаваскрипт ошибок не прощает.

* Не имея информации о том, что это контент, браузер ограничен в вариантах оптимизации. Для него это строковые значения полей объектов и больше ничего.

И т.д., и т.д., и т.д.

Если мало, я насыплю ещё.

И это один только пример с лицензией. А ведь я могу взять в качестве примера что-нибудь типа разметочной замены векторных шрифтов. Не задумывался, откуда взялось это уродливое явление, если в HTML всё так хорошо с управлением разметкой?