Leaflet: как маленький эксперимент програмиста-
новичка изменил мир интерактивной картографии
Владимир Агафонкин30.01.2016
нужен сайт для своей рок-группы
нужен сайт для своей рок-группыстановится web-разработчиком
играет в игры и пьет пиво вместо пар
играет в игры и пьет пиво вместо парвылетает из универа
ГИС — это очень сложно
8 лет опыта в разработке картографических
приложений
самый популярный открытый инструмент для
интерактивных карт
до сих пор ничего не понимаю в ГИС
типичная ГИС-конференция
не понимаю ГИС
главная причина успеха Leaflet
значит, теперь я буду делать карты —
это же не сложно, правда?
карты?• квадратные картинки
карты?• квадратные картинки• таскаешь их мышкой
карты?• квадратные картинки• таскаешь их мышкой
•добавляешь что-нибудь сверху
напишем ПО с нуля!
— не изобретай велосипед
— не изобретай велосипед
— уже есть проверенное временем решение
— не изобретай велосипед
— уже есть проверенное временем решение
— давай сделаем обертку
OpenLayers
>100,000 строчек кода? сотни функций?
#osmdev: привет чуваки, а не создать ли мне
простой, легковесный инструмент для карт?
хаха, у тебя никогда не получится
тратишь время впустую
сообщество: никчемная идея
начальство: не изобретай велосипед
пишу с нуля; никому не сказал
пару недель спустя
рожден как протест против сложности,
захламленности, неповоротливости
3 года спустя: open source!
ход мыслей человека, желающего создать гео-приложение
я хочу изучать ГИС, читая книги и научные статьи про пространственные данные,
картоографические проекции, серверные технологии, базы данных, разные гео-
стандарты и протоколы и их реализации в доступных серверных и клиентских ПО,
провести анализ моих данных и сценариев, вовлекая других ГИС-специалистов и провести другие исследования, чтобы
сделать взвешенные решения про требуемый набор технологий, подкорректитровать их
под мои нужды и наконец-то сделать гребаную карту (через пару лет)
я хочу изучать ГИС, читая книги и научные статьи про пространственные данные,
картоографические проекции, серверные технологии, базы данных, разные гео-
стандарты и протоколы и их реализации в доступных серверных и клиентских ПО,
провести анализ моих данных и сценариев, вовлекая других ГИС-специалистов и провести другие исследования, чтобы
сделать взвешенные решения про требуемый набор технологий, подкорректитровать их
под мои нужды и наконец-то сделать гребаную карту (через пару лет)
я хочу карту прямо сейчас
уберите технологии с моего пути
суть инженерного дела — устранение
сложности
технологии должны быть связующим звеном между творческим мышлением и конечным результатом
просто начать просто понять просто использовать просто делать вклад
не заставляй меня думать о незначительных деталях,
пока я не решил их поменять
удобство важнее конфигурации:
простота позволяет добиваться большего
меньшим
простота проивлекает
активное сообщество
простото означает сосредоточенность на самом важном, ведя к высокому качеству
“Простота — необходимое условие надежности.” —Эдгар Дейкстра
не нужно предусматривать все возможные сценарии
необходимость функции
сложность
упрощение
github.com/mourner/projects
github.com/mourner/rbush
github.com/mapbox/geojson-vt
github.com/mapbox/earcut
1990: алгоритм триангуляции за линейное время
1990: алгоритм триангуляции за линейное время
2015: до сих пор нет известных реализаций
github.com/mapbox/linematch
в 3400 раз быстрее
простота позволяет легче
сосредоточиться
упрощение — основа технологического
прогресса
простая задача
задача посложнее
простота — наша цель, а не отправная
точка
мы тратим столько лет, получая знания, до того
как получим шанс применить их
вы не думаете о простоте, когда сложность сама
собой разумеется
парадокс фитнеса: вы не осознаете преимуществ регулярных тренировок, пока не приведете себя в хорошую
форму
простота — мускул, нуждающийся в
регулярных упражнениях
давайте будем регулярно упражняться
в упрощении ГИС-технологий
чтобы быть счастливее и
создавать больше крутых карт!