Страх и ненависть на сервере, или Можно ли написать сайт в Excel

Рассказывает Воган Мэй 


В заголовке не шутка: я сам попробовал, вполне получилось.

Итак, представляю вашему вниманию файл в формате Excel, который умеет генерировать из своего содержимого сайты на Bootstrap.

Господи, зачем?!

Мое сообщение в Slack, с которого все началось

Мое сообщение в Slack, с которого все началось

А почему нет? Как мне известно, VBA умеет совершать операции со строками и имеет логические операторы, а также может работать с HTTP. Что еще нужно?

Еще мне захотелось просто поэкспериментировать с VBA. Несмотря на всеобщую ненависть среди программистов, Excel — удобная для определенных целей платформа, и мне было интересно приложить ее к какой-нибудь нестандартной пугающей задаче.

На самом деле мне вообще очень не нравится дифференциация на «элитные» и «плохие» языки программирования. Существует такая точка зрения (порождающая адские холивары), что некоторые языки и платформы во всем лучше остальных и что есть такие, которые лучше никогда не использовать. Разве это объективно?

Итак, я попробую делать сайты с помощью Excel. И никто не сумеет меня остановить.

Как это работает

Книга лежит в открытом доступе — для начала скачайте ее, если вам интересно все попробовать лично.

Пользоваться ею очень просто — на главном листе можно заполнять текстом ячейки, а потом макрос генерирует выходной HTML. Есть даже возможность управлять компонентами — ненужные части страницы можно отключить.

Результаты записываются в html-файл. В принципе, вам только он и нужен — весь CSS и JavaScript лежит на CDN-сервере. И вот у вас уже готова минимальная страничка, еще и на Bootstrap!

На нее можно даже поставить Bootstrap-тему! Вам будет дан список на выбор.

Теперь настало время поделиться своим творением с миром. У меня тут завалялся свободный сервер, так что я по-быстрому прицепил к нему домен excel-bootstrap.cf, установил Apache с LetsEncrypt, и получился настоящий хостинг (с самым минимальным уровнем безопасности).

Под «минимальным уровнем безопасности» я имею в виду этот супер-скрипт на PHP:

Есть еще четырехстрочный .htaccess, но он особого интереса не представляет.

По сути, на моем неподражаемом хостинге этот скрипт просто ищет файл с подходящим названием и выводит его на страницу. Если пытаются обратиться к корню сайта — переадресует на GitHub-репозиторий проекта.

Даже есть вышеупомянутые зачатки безопасности: размещать файлы вы можете, только имея правильный GUID. Конечно, там могут быть какие-то лазейки, которые отыщет опытный хакер, но не забывайте, я написал все это за 10 минут.

В продакшн!

На всю работу ушло менее 3 часов. Давайте расскажу подробнее, на какую часть работы сколько ушло.

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

Где-то за 34 минуты я обрисовал идею и реализовал макет.

Потом создал репозиторий на GitHub, написал маленькое readme — и настало время делать сам проект.

Потом я добавил Font Awesome (иконочные шрифты сейчас популярны, и мне тоже захотелось). Немного расширил генерацию HTML, набрал красивых тем на Bootswatch.com, потом немного копипаста… и вуаля, вот у меня уже есть Excel Bootstrap с инновационным интерфейсом!

На это ушло около часа и 45 минут. И вот мой документ уже умеет генерировать HTML-страницы, но какой с них толк, если их негде хостить?

Я быстренько зарегистрировал на себя домен excel-bootstrap.cf, прицепил к серверу, создал для него неповторимое API (на картинке видно, как оно используется) и добавил в книгу возможность загружать на мой сервер сгенерированные файлы.

Потом добавил кнопочку, немного потестировал… ну и все!

В процессе работы:

  • Всего затрачено времени: 2 часа 15 минут.
  • Всего потеряно единиц IQ за время создания: неизвестно.

И ради чего все это?

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

Буду я еще когда-нибудь писать сайты в Excel? Да ни за что в жизни.

Найдется ли какой-нибудь незадачливый бизнесмен, которому понравится идея сделать страничку для своей компании в родной и привычной программе? Вполне может быть.

А кто может оценить, насколько верен выбранный путь? Да никто.

Итак, мораль.

Выбирая инструмент для выполнения задачи — берите тот, которым вы лучше всего владеете, тот, который вы сможете использовать еще долго и тот, на котором вы способны довести работу до конца. Но не тот, который посоветуют умные дяди с форума.

Источник: блог Wogan May