ermouth: (Default)
[personal profile] ermouth

Я присмотрелся к клону повнимательней – и по нему видно, что разработка происходит прямо сейчас.

Там любопытное происходит. Безымянный клонер делает все ошибки, которые я делал 8 лет назад, когда писал первую считалку. Я их разберу. (Дальше будет интересно только веб-деятелям и отчасти дизайнерам. Там довольно много.)

UTF8 vs CP1251

Юникод рулит. Когда я вижу такое вот, мне хочется блевать.

image

В силу того, что я из полиграфического дизайна, где культура типографики с вебом не сравнима, мне всегда нужны были правильные тире, кавычки и знаки умножения «–×–». Поэтому я никогда ничего не делал в cp1251. Мне вообще странно, что кто-то этим в вебе ещё пользуется.

Платформа vs быдлокодинг

Оригинал – типа как на liteprint.me или ermouth.com/bulatova/ – это по преимуществу javascript, который генерит html “на лету” по описанию полей считалки и формул взаимозависимостей.

То есть, вместо того, чтобы писать стопицот <div>’ов со стилями и навешивать ручками обработчики, я в специальную функцию отсылаю конструкцию типа

{qty: {value:”1”, label:”К-во”, type: ”int”, increment:”1”, min:”1”, max:”100”, postfix:”шт”, price:”this.value*5”, variants:[1,2,5,10]}}

и эта функция рисует мне поле ввода количества с кнопочками, единицами измерения и предопределенными вариантами количества рядом с полем ввода. Она навешивает на поле ввода все обработчики, чтобы цена (и другие зависимые поля, если есть) пересчитывались при каждом нажатии клавиш, а не только при потере фокуса.

Чувак, поглядев на мою считалку и на её код, видимо решил что это слишком сложно. И стал рисовать все эти стопицот дивов руками.

Конечно, он запутался в обработчиках, и поэтому цена то автообновляется, то нет. Естессно, что многократный повтор одинаковой разметки занимает много места. Естессно, весь код из костылей.

Итого.

У меня 4 зипованных запроса к серверу в сумме на 64 Кб – и две считалки уже работают и дальше грузят только картинки. К родному серверу запрос на 19 Кб, остальное с CDN.

У чувака – одна считалка на 200 Кб в 11 зипованных запросах. Все запросы к себе на сервер. Плюс у меня отдается статический код, а у чувака – ещё и два обращения к скриптам.

У меня добавление новой считалки в набор – это примерно +1…10 Кб, у чувака 30+ Кб. Время, полагаю, отличается примерно на порядок.

Итого, по кумулятивному показателю, кривей раз в 50 бгг

Это потому, что платформа всегда выигрывает. Я это понял в середине первой считалки, что я делал. Только описание у меня было тогда не в json-формате, а в xml.

Платформа предполагает обдумывание, а не бросок с места в карьер.

Придумывание vs сдирание

Самый лучший вариант понимания дизайна чего угодно – это когда ты сначала придумываешь это что-то в голове, думаешь “вау, какой я клёвый”… И тут бац, и видишь это уже кем-то сделанное, да ещё нередко покруче, чем тебе думалось.

А когда показывают пальцем на сэмпл и говорят “братюня, мне надо вот так” – а думать неохота – появляется например вот такое (сначала оригинал, потом – клон).

image
image

То-есть, клонер скопировал компоновку, не понимая вообще зачем это всё. Жопа тут во всём, начиная с раскраски заканчивая этим “прово… Ещё…”. Причём чувак уже пишет букву ё, но не видит при этом, что по сути этими своими “1. Класс размещения” написал нумерованный список в строку. И ему не влом, что у него в одном предложении два двоеточия.

У меня тоже не айс, кста – мне было склонять под числительные лень. Но у меня и бета 0.1.

Вот кнопочки “плюс-минус” ещё, нопремер:

image image

Ну то-есть ясно где тут кто бгг. У меня сразу видно цифру, а только потом кнопки и рамку. И кнопки внесены в поле ввода – это место экономит и после поля ввода можно написать единицы измерения.

У чувака этот элемент управления сначала орёт “блиоооо, мой создатель первый раз в жизни сделал кнопки плюс-минус, и поэтому хуйнул их с пузырями, бевелом, тенью и градиентом, чтоб все видели как он ниибацца крут!!!!1111”. Потом длинная колбасина рамки (уголки – png-шки о_О). И только потом уже цифра. Безразмерная.

Или вот это image. То-есть, у меня тоже есть элемент управления с плюсиком, он добавляет в панель сбоку вариант расчёта. А тут плюсик поставлен просто из обезьянства, ну клон – чё уж.

То-есть, вместо того, чтобы решать задачу теми способами, что умеет, безымянный автор решил пойти на поводу у заказчика и обрёк себя на адский гемор.

Судя по характерно-беспомощному javascript-коду и именованиям констант в стиле DESC_ANNOUNCE_LEN, яваскрипт для чувака вообще не родной, он на чем-то типа php пишет. Да и jQuery тоже неродной – когда он подключен, код типа document.getElementById – это дрочево.

Писал бы себе форму классическими дропдаунами и чекбоксами с отправкой на сервер, было бы аккуратнее, короче и не так беспомощно. А тут типа сразу чувак в дамки решил.

И получилась в результате так себе. Чтобы клонировать по-хорошему, надо для начала понимать, что ты клонируешь и для чего.

Завершающий аккорд

Моя компоновка считалки специально заточена под тыканье и листание пальцами и намеренно напоминает компоновки соцсетей, от которых никто не ждёт, что они поместится по вертикали на один экран.

Компоновка клона напоминает мою компоновку, расписанную в цвета детской неожиданности и взрослой ожиданности, заляпаную грязными пятнами кнопок и батонами рамок – и адски глючит при листании и на айпаде, и на маке. И некорректно работает при наборе цифр с малой клавиатуры в Хроме – обработчики событий кривые.

И даже три оригинальные фичи – предупреждение об ошибке с кнопкой “Исправить”, всплывающее окно заказа и приколоченная шапка – глючат со страшной силой.

Не уважаю адски. Клон вышел недоношенный.

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 4th, 2025 12:32 am
Powered by Dreamwidth Studios