Персональный блог Игоря Антонова aka "spider_net"

Программирование

Подписаться на эту рубрику по RSS

Fuse. Библиотека для реализации неточного поиска на ванильном JavaScript


Рубрика: Программирование -> JavaScript
Метки: | |
Просмотров: 392
Fuse. Библиотека для реализации неточного поиска на ванильном JavaScript

В одном из проектов мне требовалось реализовать поиск неточный поиск по коллекции объектов (JavaScript). Под неточным поиском я подразумеваю: поиск по первым буквам слова, без учета регистра, поиск сразу в нескольких свойствах объекта (в зависимости от условий), возможность установить совпадения с определенными ключами и рядом других условий. В прошлый раз эту задачу решил частично. Не все удалось, но реализация была пригодна для использования в рабочем проекте.

Читать дальше

clipboard.js. Как скопировать текст в буфер обмена без помощи Flash


Рубрика: Программирование -> JavaScript
Метки: | | |
Просмотров: 466
clipboard.js. Как скопировать текст в буфер обмена без помощи Flash

Иногда возникает необходимость реализовать в web-приложении возможность копирования определенного текста в буфер обмена. Например, вы делаете какой-нибудь форматтер текста (вроде jsonformatter) и хотели бы чуточку облегчить вашему пользователю жизнь, позволив путем нажатия одной кнопки, поместить результат преобразования в буфер обмена. Согласитесь, отличный кейс?! Подобные задачи периодически возникают, но не всегда их удается быстро решить. Для ускоренного внедрения возможности работы с буфером обмена, Zeno Rocha создал замечательный модуль clipboard.js.

Читать дальше

Не удаляются помеченные на удаление объекты. Ошибка «DeleteObjects(RemovedList, True, FindedItems)».

Не удаляются помеченные на удаление объекты. Ошибка «DeleteObjects(RemovedList, True, FindedItems)».

Продолжаем на работе внедрять новую типовую конфигурацию и столкнулись со странной проблемой. Пометили несколько десятков документов на удаление и решили их полностью удалить. Открываем стандартную обработку (встроенную в платформу) «Удаление помеченных объектов» («Все функции» -> «Стандартные» -> «Удаление помеченных объектов»), выбираем полное удаление и вместо сообщения об успешном удалении получаем ошибку «DeleteObjects(RemovedList, True, FindedItems); по причине «Нарушение прав доступа!».

Типовая конфигурация состоит из нескольких подсистем, разрабатываемыми независимыми компаниями, поэтому первым делом я подумал, что причина в отсутствии прав на удаление определенных объектов. Проверил учетную запись «Администратор» - все роли были назначены, следовательно, проблема не в этом.

Читать дальше

Борьба с медленными запросами в 1С. Типичные проблемы

Борьба с медленными запросами в 1С. Типичные проблемы

На работе часто приходится проводить ревью кода и разбираться с проблемами в стиле «почему же тормозит запрос». Проблемы подобных тормозов чаще всего вызваны не оптимальными запросами к базе. Так уж получилось, что код нашей конфигурации разрабатывается почти 9 лет и за этот внушительный промежуток времени накопились запросы, которые нужно переписать. Они превосходно решают задачи, но при нынешнем объеме базы данных работают не так быстро, как хотелось бы.

Причин появления медленных запросов много. Где-то сами недоглядели, а где-то просто нельзя было сделать по-другому. Язык запросов 1С за это время совершенствовался, а наш код был написан в то время, когда, например, в нем отсутствовала возможность применять временные таблицы (как пример). Вот и получилось, что в свое время написали так, а сегодня этот код требует доработок. Для таких долгоиграющих проектов это нормально. Код стареет, появляются новые требования и без рефакторинга не обойтись.

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

Читать дальше

Испытал matreshka.js в маленьком проекте


Рубрика: JavaScript -> Программирование
Метки: | | | | |
Просмотров: 448
Испытал matreshka.js в маленьком проекте

Как-то я уже рассказывал о JavaScript фреймворке с необычным названием – matreshka.js. Я даже брал большое интервью у автора этого проекта (см. Интервью с автором matreshka.js). С тех пор ничего об этом фреймворке не писал, но это не означает, что я его не использую. Матрешка (так писать проще) хороша там, где нужна легкость и скорость.

Недавно у меня была задача разработать простенький front для мобильного кабинета курьеров. По факту нет ничего сложного, главные требования от заказчика были: сделать быстро и качественно, работать должно шустро даже на не сильно производительных смартфонах. Первую версию я запилил достаточно быстро на ванильном JavaScript. Все протестировали, посмотрели производительность и ко второй версии (потребовалось добавить ряд интересных фич) решил перевести проект на метрешку.

Читать дальше

Не начинайте изучать JavaScript с фреймворков


Рубрика: Программирование -> JavaScript
Метки: | | |
Просмотров: 726
Не начинайте изучать JavaScript с фреймворков

Сегодня получил письмо от читателя блога с просьбой [strong]посоветовать «хороший» фреймворк для изучения JavaScript[/strong]. Письмо было достаточно длинным, но суть такая: парень не пытался изучать ванильный JavaScript, имеет базовые знания по применению библиотеки jQuery и хочет «прокачать» свои скиллы, изучив один из «крутых» фреймворков. Я начал набивать текст ответа - с подобными вопросами обращались уже неоднократно, но потом решил, что проще ответить сразу всем.

Начну с главного – нельзя стать хорошим разработчиком, начав изучать язык с фреймворка/библиотеки. Первым делом надо изучить сам язык: синтаксис, преимущества, недостатки, проблемы и т.д. Чтобы прочувствовать все выше перечисленное, недостаточно просто прочитать чью-то умную статью. Желательно познакомиться со всем на практике, т.е. выполняя реальные проекты. Пусть это будут маленькие, но все же проекты, решающую реальную задачу. Таким образом, вы сразу сможете понять, какие проблемы решаются выбранным языком программирования наиболее комфортно, а какие нет.

Читать дальше

1С и JSON. Разбираемся с исключением


Рубрика: 1С:Предприятие -> Программирование
Метки: | | |
Просмотров: 692
1С и JSON. Разбираемся с исключением

В платформе 8.3 появились нативные средства для работы с форматом JSON. Нет никакой необходимости использовать сторонние решения, если нативные инструменты работают быстрей и лучше. Мы много, где используем формат JSON и вот случайно столкнулись с небольшой проблемой. Итак, условие. Есть большой файл в формате JSON, который требуется конвертнуть в структуру. Для этого в платформе есть глобальный метод: «ПрочитатьJSON()».

У него много параметров, но в большинстве случае разработчику интересны 1-й (менеджер чтения JSON) и 3-й ИменаСвойствСоЗначениямиДата (Строка, Массив, ФикированныйМассив). С первым все понятно, а вот третий позволяет нам избавиться от необходимости самостоятельно преобразовывать значения типа Дата из строки. Достаточно подготовить массив с именами свойств типа «Дата» и все черную работу метод сделает самостоятельно.

Читать дальше