Правило Парето гласит, что 80% времени программиста тратится на 20% требований. К примеру, на любом современном фронтенд-фреймворке работающую корзину в интернет-магазине можно запилить за день — можно будет добавить/удалить товар и отправить заказ.
А потом еще неделю потратить на полировку — отмену удаления, возможность менять конфигурацию товара, промо-коды и расчет доставки. Обидно, если после запуска окажется, что пользователи склонны делать заказ по телефону и вообще не пользуются корзиной.
Хороший программист делает код, который с самого начала разработки умеет выполнять главную задачу. В случае с корзиной, главная задача — доставлять заказы до менеджеров в любом виде, хоть один номер телефона. А когда основные 20% функций готовы, программист, вместе с бизнесом, детализирует остальные требования. Если они еще актуальны, конечно.
Илья Бирман сетует, как криво в телеграме устроен Instant View. Насчет кривости я не согласен — он просто для гиков. Ниже я подробнее расскажу почему это не криво, а так же отвечу на вопрос Ильи как сделать, чтобы Instant View появился на вашем сайте.
Instant View отличается от AMP или Яндекс-Турбо тем, что требует меньше всего усилий от паблишера — чтобы сайт начал моментально загружаться в телеграме, не нужно вносить никаких изменений в коде страницы. Достаточно написать шаблон, который преобразует уже существующую разметку в соответствии с требованиями телеграма, и отправить его на http://instantview.telegram.org. Шаблоны хранятся на сервере телеграма.
Получается, что шаблон для Instant View может сделать кто угодно, и вовсе не обязательно, чтобы это был владелец сайта. Так и произошло в случае с Ильей — за него шаблон уже сделал Филипп Колсанов.
Чтобы шаблон заработал, то есть в телеграме появилась кнопка Instant View, нужно отправить его на конкурс шаблонов. Если админы телеграма посчитают ваш сайт достаточно важным, а шаблон — неглючным, то он попадет в список одобренных, и произойдет чудо:
Две ссылки на одну и ту же статью, одна с Instant View, другая — без.
К сожалению, на сайте Instant View написано, что конкурс завершен, и когда будет новый — нам перезвонят сообщат. Но если вы очень хотите отправлять подписчикам ссылки с красивой кнопочкой, то способ все-таки есть — нужно отправлять им специальные ссылки, которые содержат идентификатор вашего шаблона.
Для этого нужно пройти регистрацию в InstantView, создать и проверить шаблон, а затем получить его идентификатор. Это делается на странице редактирования шаблона для любой ссылки на сайте:
Получаем ссылку, которую нам предлагают отправить в телеграм. Это ссылка на сервис t.me, которая содержит адрес вашего сайта и идентификатор шаблона. По такой ссылке всегда открывается шаблон Instant View, и никакого конкурса ждать не нужно. Сервису t.me мы передаем два параметра — адрес страницы и идентификатор шаблона.
По этому образцу и нужно формировать ваши ссылки: https://t.me/iv?url=<страница>&rhash=<ид шаблона>. К примеру, для этой заметки ссылка будет вот такой: https://t.me/iv?url=https://borshev.com/instant-view/&rhash=5ef08d16e14be6. Если ее отправить другу в телеграм, то он увидит кнопку Instant View.
В «Лайклях» ссылку на Instant View можно задать через параметр data-url:
Увы, все эти манипуляции не отменяют необходимости читать инструкции и ковыряться в наркоманском XPath, чтобы сделать шаблон для вашего сайта. Если не хотите сами — обратитесь к знакомому веб-технологу, сделать простой шаблон на основе официальных примеров можно за несколько часов.
Обычно уровень работоспособности выглядит так: ∿∿∿∿. Подъёмы чередуются со спадами. На подъёме хорошо заниматься творчеством, на спаде — рутиной: закрывать долги, отвечать на письма, общаться с коллегами. Если на спаде сделать творческую работу, ее скорее всего придётся переделывать — вы проснетесь утром и поймёте, что результат никуда не годен.
Проблема программистов в том, что абсолютно все результаты их работы остаются в проекте навечно. Какой бы код программист не написал сегодня, завтра придётся писать новый код, который зависит от сегодняшнего. Код, который напишут через год — тоже. И если старый код написан плохо, то придётся возвращаться назад и все выкидывать. Ну или дальше делать некачественную работу — дедлайн никто не отменял.
Работа с некачественным кодом сильно выматывает — вместо фокуса на цели приходится разбираться, о чем же думал «тот парень» (и тот, кто его подгонял). В таком режиме волна продуктивности превращается в болото: ∿∿—\____. Хочется уволиться и пойти работать машинистом метро.
Нормальная загрузка программиста похожа на плато: ——————. На плато нет всплесков вроде срочных задач и эмоциональных подъёмов. Но нет и болота с унылым разгребанием долгов. Программист на большом проекте — это марафонец.
На сайте обновилась фавиконка. Автор — Саша Бизиков. Выглядит как-то так:
Во время работы с Сашей непривычно было чувствовать себя на месте клиента — приятно, когда кто-то детально разбирается в твоих задачах.
Саша проявил профессионализм — разобрался, зачем мне нужен блог и телеграм-канал, и чем они полезны для аудитории. Никогда бы не подумал, что про логотип можно задавать неудобные вопросы, но Саша это делал, причем весьма деликатно.