Владимир Зарыпов (krre31) wrote,
Владимир Зарыпов
krre31

Category:

Океан. Svelte

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

Но сперва небольшое предисловие. Как известно, разработчики делятся на две категории: эгоисты и альтруисты. Первым всегда всего мало. Им нужно, чтобы в программе было ВСЁ и по максимуму. Побольше фичей, свистелок, перделок. Чтобы всё анимировалось, переливалось, блестело, было не хуже, чем в Google или Facebook, и чтобы никто, зайдя на сайт или в программу, не сказал, что в ней чего-то не хватает. Даже если на разработку всего этого хозяйства уйдёт лет двести или триста. Вторым наоборот ничего не надо, они хотят сделать всё как можно экономичней, почти как ХХП, о котором я писал в Океан. Адаптивность, только ещё проще и быстрее. Меньше кода - меньше багов, меньше лагов, и всегда легко что-то переделать. Короче говоря, и те, и те, безусловно, молодцы.

Зачем же я начал говорить об этих двух категориях программистов? А, ну да! Вот, как мог бы выглядеть сайт по манделам, если бы его делал альтруист.

ocean-svelte.png

На самом деле это шутка. На скриншоте прототип, очень далёкий от завершения. Но в нём уже есть всё самое необходимое. Сделал я сие чудо на фреймворке, который называется Svelte. Это был трудный выбор. Выбирать пришлось между Angular и Svelte. Две крайности, которые нельзя даже сравнивать.

Первый меня подкупил тем, что в нём обещали из коробки всё, что нужно, чтобы сделать законченый сайт. И, самое главное, код в нём можно писать на TypeScript. А это значит - статическая типизация! Бинго! После 6 лет разработки на JavaScript, который мы на работе используем в десктопных приложениях, я стал его бояться. Не столько за странности, которые коротко можно выразить этой картинкой:


Сколько за динамическую типизацию. Это просто не пересказать, как смешно, когда опечатки в коде или результат какого-нибудь безобидного рефакторинга ты начинаешь вылавливать в рантайме долгие месяцы спустя после того, как написал код :)) Короче говоря, JavaScript использовать, конечно, можно, но лучше в чём-то простом, а когда количество файлов с кодом переваливает за сотню, почему-то начинает хотеться чего-то более строго типизированного.

С другой стороны, все пугают, что Angular дико сложный. В рейтинге популярности у программистов он занимает почётное последнее место. Я посмотрел документацию - действительно, большая. А когда создал по шаблону тестовый проект, то стало совсем грустно. Десятки каких-то непонятных файлов, стопицот настроек, а зависимостей на 280 мегабайт. На скриншот вместилась только четверть из них.


То есть, если в процессе разработки сломается какая-то зависимость (а она обязательно где-то сломается), то мне ещё и разбираться придётся, почему ничего не запускается и не работает.

В общем, я испугался и стал смотреть в сторону Svelte. Он не поддерживает TypeScript, зато подкупает своей простотой и обещанием высокой производительности сайта на проде из-за отсутствия виртуального DOM. Неделя у меня ушла на то, чтобы изучить документацию по этому фреймворку, посмотреть видосы на YouTube, и потом я всего за полдня на коленке состряпал рабочий сайт! С навигацией, несколькими страницами и переходами между ними. Вот это да! За это Svelte мне безумно понравился. К нему ещё прилагается фреймворк Sapper со встроенным роутером, который тоже достаточно простой и понятный, так что сейчас я не могу сказать, что мне чего-то не хватает. Ради Svelte я даже готов потерпеть страдания с JavaScript.

Пока что я не стал подключать CSS и наводить красоту, чтобы не отвлекаться, и к настоящему времени у меня готово всё для того, чтобы отправлять данные в бэкенд.

Что касается бэкенда. Поскольку я, как сейчас модно говорить, вынужден был стать full stack разработчиком, то бэкенд тоже лежит на мне. Но это как раз та сторона дела, которая пугает меня меньше всего. На работе в последние пару лет меня закопали в серверную разработку по самые уши, так что даже по ночам, просыпаясь, чтобы перевернуться на другой бок, я ловлю момент, чтобы прокрутить в голове, всё ли нормально я сделал с потоками, не оборвётся ли TCP-коннект, не вернётся ли с ошибкой SQL-запрос и не забьётся ли очередь сообщений. Такого рода неприятности дорого обходятся на проде, когда из-за внезапного чудачества какого-нибудь сервера останаливается работа всей нашей конторы. Таким образом, возможность повозиться с веб-разработкой, изучая что-то для меня совершенно новое, я считаю как раз удачным способом отвлечься от тяжёлых мыслей и проветрить мозги от того бардака, который творится на работе.

Для разработки бэкенда к сайту по манделам я никакого фреймворка не выбрал. Ибо на языке Go, который я для этого взял, фреймворки не используются. Они, конечно, там есть, но тру-гоферы смотрят на тех, кто ими балуется, так же строго, как Ленин на буржуазию.


Go я использовал на работе, у нас на нём написан один из серверов, поэтому я могу с уверенностью сказать, что он зарекомендовал себя, как простой и надёжный инструмент для разработки бэкенда. База данных будет в PostgreSQL. Тоже юзается на работе и жалоб нет. Может, потом ещё что-то понадобится, но я пока не могу придумать, чего мне не хватает для полного счастья. Сайт по манделам - штука несложная, высоких нагрузок я на нём не ожидаю, большого количества данных тоже не предвидится, так что имеются все предпосылки для того, чтобы пойти по пути альтруиста. А что делать...

Tags: океан
Subscribe

Posts from This Journal “океан” Tag

  • Океан. Камбэк

    Переделал сайт, теперь для анонимов он будет в режиме чтения. Регистрация у нас по сути и так анонимная, так что не сильно большая потеря.…

  • Океан. Блэкаут

    Выключил сервер. Устал читать ругань и ненависть, которая льётся на сайте бесконечным потоком. Уже давно не обсуждают манделы и редко добавляют…

  • Океан. Манделы пользователя

    Облегчим задачу спецслужбам. Предположим, спецслужбы захотели проверить все манделы конкретного пользователя. Сделать это теперь как нельзя просто.…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 22 comments

Posts from This Journal “океан” Tag

  • Океан. Камбэк

    Переделал сайт, теперь для анонимов он будет в режиме чтения. Регистрация у нас по сути и так анонимная, так что не сильно большая потеря.…

  • Океан. Блэкаут

    Выключил сервер. Устал читать ругань и ненависть, которая льётся на сайте бесконечным потоком. Уже давно не обсуждают манделы и редко добавляют…

  • Океан. Манделы пользователя

    Облегчим задачу спецслужбам. Предположим, спецслужбы захотели проверить все манделы конкретного пользователя. Сделать это теперь как нельзя просто.…