masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Category:

Проект, нашёптаный головными тараканами

не Гербалайф не Temple Os

Сама по себе идея возникла давно и лет 10 назад была в изрядной мере воплощена, так что конструктивное доказательство возможности у меня вот тут рядышком (но по моим нынешним представлениям о прекрасном это лютейший говнокод, так что не покажу, sorry). Но за 10 лет был у меня опыт разработки одного проекта (какого - неподзамочно писать не буду), и мнение

Итак, чего хочется; кратко - писать интерфейс (в основном веб) и не блевать при этом; по пунктам:
1. писать код, а не разметку, где-то внутри там возможно DOM (а возможно и canvas), но я знать этого не хочу как только можно долго; всё скрыто абстракцией, создаю объекты, работаю с ними, как они выглядят, в коде не трогаю.
2. писать простой ООП-код (в случае JS - прототипное ООП) - лишних абстракций мне не надо, декларативщины не надо (вот тут я очень хорошо знаю, о чём говорю), каких-то своих сущностей, не имеющих отношения к интерфейсу, тоже.
3. ну и чтоб это желательно не требовало каких-то препроцессоров, кросс-компиляторов, не диктовало свою там экосистему и архитектуру.

В принципе очень похоже выглядит Swing на Java - объекты, которые выглядят почти как родные для операционной системы (меня устроит), а главное - выглядят единообрано и согласованно, при чём чем-то иным они не занимаются, для этого в Java есть другие библиотеки.

Теперь аргументация всех этих пунктов.

1. от противного; доводилось разрабатывать большой и сложный проект с богатым интерфейсом на небогоугодном Flex. Внутри там ActionScript и XML - вот как раз то самое смешение кода и разметки, причём тут у нас довольно хороший случай - код и разметка хорошо друг с другом согласованы, но... в итоге копипаста на копипасте - выделение абстрактного класса от необходимости разметки не избавляло, часть поведения и внешнего вида оказывалось в разметке и поддерживать было трудоёмко (конечно, можно было многое - почти всё - сделать стилями, но язык провоцировал на другое - правильно сделать было труднее, чем неправильно), поиск, замена... При этом трудно было сделать чтоб разные экраны и формы выглядели и вели себя одинаково, то есть как раз то, что должно получаться само - Swing мы знали и вспоминали часто, равно как например и GWT... до swing этому проекту было далеко.

2. как только появляются свои абстракции (особенно любят на js своё наследование делать), то работа кода перестаёт быть прозрачной как миниум для IDE (сразу отдельный плагин нужен), а так же линтеров, анализаторов и прочих подобных полезных утилит. Декларативное же описание (и сюда же передача словаря параметров) ведёт к тому, что обнаружение ошибок уровня "букву пропустили" откладывается на потом, особенно если параметр необязательный, а ошибка того же вида в методе setDefaultValue сразу же вылезет исключением. Если есть армия тестеров, то будет им работа, а у меня армии нет, так что...

3. так проще использовать и легче обнаруживать/исправлять ошибки особенно в режиме "с наскока" или не на своём компьютере - мне показывают что что-то не то и я или могу войти в отладчик или мне потом пытаться это воспроизвести; имея опыт и того и другого, я определённо чувствую разницу. Да, а экосистема и архитектура могут уже быть там, где я хочу использовать библиотеку, что - борьбу устраивать?

Не факт, что я вот сяду на новогодних праздников и начну рефакторить то, что есть, но мои мысли примерно такие.
Tags: javascript, Планы, Философское, ХочетсяСтранного
Subscribe

  • Что такое херошо... и хорово тоже!

    Получил вчера заказ с мембранами - все дошли и упакованы прекрасно. Две пары плюс ещё 4 разных для эксперимента. Не фотал, убрал от пыли подальше -…

  • Если б я был фантаст

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

  • (no subject)

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

  • 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