Почему я ненавижу чужой код

Крик души...

   2 года назад   0 415

Поделиться:

Почему я ненавижу чужой код

Уже ни раз при попытке использовать готовое решение в виде плагина jQuery (как правило) и не только, я сталкиваюсь с чередой одних и тех же проблем. 

Я пожалуй выделю следующие их виды:

  • Кривой, либо заумный мануал
  • Никакущая кастомизация
  • Ошибки в коде

С первым типом я столкнулся, когда делал простенький чат техподдержки. Требовалось помечать сообщения прочитанными, для этого мне нужно было решение, которое бы выбирало только те блоки с сообщениями, которые находятся в видимой области контейнера (в моем случае div). Да, на просторах интернета решений множество, но 90% из них работают лишь с body, а не с произвольным прокручиваемым элементом. Наткнулся я на хабре на интересную статью, где я собственно и нашел сам плагин viewport, огромное спасибо автору за это замечательное решение. Я довольно опытный по части php и SQL, но вот js я знаю далеко не на профессиональном уровне. И из мануала я как-то не совсем догнал про псевдо селекторы с параметрами как у функции, а там все в общем виде, и ни одного конкретного примера (я из тех людей, кто не воспринимает в общем виде, чтоб понять мне лучше посмотреть пару конкретных частных случаев). Спустя несколько часов методом проб и ошибок я наконец-то догнал что к чему. 

Со вторым типом сталкиваешься пожалуй в 95% случаев. Все стили жестко вшиты в код, ну почему так трудно сделать чтоб классы можно было передавать как параметры? Приходится допиливать все самому и вместо быстрого решения несколько часов уходит чтоб разобраться в коде и подправить оформление.

Один из недавних случаев как раз можно отнести к этому и типу. В общем понадобились мне теги, когда вводишь в поле и он генерирует хтмл сущность по энтеру или запятой. Нашел bootstrap tags input для уже устаревшего бутстрапа 3. Попадалась еще недоверсия для 4го, но все равно без доработки не юзабельно. Особенно долго пришлось повозиться с typeahead, чтобы предлагал существующие теге по мере ввода. Тот на который ссылались в документации естественно не подошел, т.к. стили не заточены под 4 бутстрап, после длительных мучений кое как нашел рабочую версию.

И вот сегодня убил пол дня на TinyMCE. Проблем было несколько. Необходимо было прикрутить его к Yiiподружить его с файловым менеджером и плагином CodeMirror. Первых два особых затруднений не создали. Через composer был установлен виджет для Yii от 2amigos. И скачан и настроен filemanager.  А вот с последним пришлось повозиться. Мало того, что версий этого плагина для TinyMCE огромное множество, так еще и почти во всех них один и тот же косяк, возникала одна и та же ошибка. Фикс все же нашел, но обнаружился косяк в плагине для Yii. При добавлении codemirror в конфиг язык становился английским, но эту проблеммку я решил быстро и кинул pull request автору.

В общем подведем итог. Готовые решения - это не всегда быстрое решение задачи, порой проще изобрести свой велосипед, чем разбираться и фиксить чужой код. И второе - если проявлять настойчивость, то решение всевозможных проблем и фиксы всевозможных косяков всегда найдутся.


Теги:  проблема  jquery  чужой код

logo

Комментарии:

Оставьте комментарий первым :)

Нажимая отправить вы соглашаетесь с политикой конфиденциальности