Программистский подход
February 13, 2011 in Engineering philosophyОсновано на реальных событиях.
Задача: отметить на карте и выбрать по нескольку достопримечательностей 20 крупнейших городов США.
Человеческий подход
- выбрать города в Википедии - полчаса
- поотмечать города на карте в Paint/Photoshop - десять минут на поиск карты и час на отмечание городов
- полазить еще в гугле/википедии, найти интересные места - _два часа (5 минут _ 20)*
Как эту задачу решает программист
- 20 раз делать одно и то же? Бред! Надо автоматизировать.
- Давайте грабить википедию.
- (прошло полчаса в поисках Ruby-клиента для Википедии)
- Ладно, просто сграбим вот эту страницу и распарсим нокогирей
- (час на написание парсера, сверяние с документацией и отлавливание багов)
- Теперь будем писать скрипт для определения координат города. Где взять координаты? Конечно, через Google Maps API!
- (час на написание скрипта, который стянет координаты с Google Maps)
- (десять минут на обнаружение и исправление вручную тех пяти городов, для которых Google Maps чего-то ошибся)
- Достопримечательности? Искать вручную? Снова парсим Википедию!
- (еще три часа на стягивание страниц википедии и написание семантического анализатора текста статьи на предмет ссылок на достопримечательности)
- (еще полчаса на сверяние информации и исправление неизбежных ошибок)
- Готово!
Склонность тратить слишком много времени на автоматизацию мелких, но скучных задач иногда заставляет меня жалеть о том, что я программист.
Понравился пост? Купи мне кофе