masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Category:

JS

Когда я в воскресенье вошёл "в личную зону" компьютера (сделал удобно за ним сидеть и сел так на час-полтора), я раскопал свои эксперименты по JS.

Что там - оконный интерфейс на JS и довольно удобный текстовый редактор в нём (картинка - отсюда). Основная идея интерфейса - пишется код, а не разметка (примерно как SWING на Java или там AWT), разметка спрятана глубоко и не факт, что она есть (почему бы просто не рисовать на Canvas с тем же интерфейсом или вообще на аппаратном экранчике). Основная идея редактора - редактируется структура текста, а не внешний вид, внешний вид делается стилями и часто вообще другим человеком. Средства работы со структурой и (готовыми) стилями прилагаются; также в комплекте удобные фишечки типа автозамены, автоформата и древовидной отмены (привет, nabbla1).

1. эта штука работает спустя почти 12 лет после написания, несмотря на местами нетривиальный код.
2. подобного мало, а в совокупности свойств - я не нашёл
3. чего-то подобного от интерфейса мне хочется (утилитарно) часто, в итоге я отказываюсь от того, чтоб выложить ну например мои эксперименты с картинками или другие штуки, требующие GUI.
4. внутри лютый говнокод (на 50% из-за IE, см. ниже, а другим 50 нет прощения), так что даже показывать "как есть" не хочется;

Начал разбираться и переписывать на ООП со стороны редактора, запнулся об отладочный костыль двенадцатилетней давности для редкого случая, делающий этот случай принудительно всегда.

--
Про IE - когда-то давно у него, насколько помню, было два сборщика мусора - для кода JS и для DOMа. Пара ссылок туда-обратно (что более чем просто сделать) и память течёт. Популярность метода - самому создать элемент, самому назначить ему id и самому же по id обращаться, вместо того, чтобы сохранить ссылку и работать с ней - как мне кажется, из-за этого. У меня был другой подход - ссылки из DOM на js лежали в небольшом числе элементов в прогнозируемых местах и при удалении элемента очищались. Тем не менее, сделать объект, например, редактор, который сам знал, где у него что лежит, не получалось, в итоге объектов я не делал и там просто большая куча функций, которые сам знают, где что смотреть - вот это было зря. Правильнее было доступ к элементу обернуть, чтоб там внутри была шняга с getElementBySomeShit или поиск вот тех "прогнозируемых место" в контейнерах и использовать сомнительные прелести прототипного ООП, а теперь бы я исправил эту обёртку и всё.
Tags: javascript, ХочетсяСтранного
Subscribe

  • 3D в La Scala

    Это вот про такую картинку - где сзади стенки сходятся и зажимают треугольный рассекатель. И вот ещё про что.…

  • Немарксизм (не путать с неомарксизмом)

    Есть у меня такая привычка - сомневаться, что классы это классы; другими словами, что из принадлежности к классу следуют нетривиальные выводы,…

  • (no subject)

    Прокрастинация она прокрастинация и есть... а у меня она на остатках сил и в последнюю очередь (ну не умею я) - "заточил" 8 деталек под 62…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments