Писал в Мастодоне как мне сложно переизобретать роутер. Суть в том что мой будущий движок сайта не может заранее знать какие ссылки он будет обслуживать и должен разруливать их в пути к файлам на ходу. Аналогично и с простыми файлами "наружу" вроде картинок, аудио, стилей и прочего.
Существующие роутеры достаточно комплексные и сложные, чтобы в них можно было указывать регулярные выражения, переменные и так далее. Но даже они для меня не подходят, так как всё кроме АПИ так или иначе находится "в корне", в ветке отвечающей за
Даже собрался писать собственную версию роутера, пока не наткнулся на этот пост: достаточно воспользоваться простым распиливанием ссылки на "директорию" со "всем остальным" и в зависимости от нужд погружаться глубже или работать с тем что есть. Я попробовал применить эту утилиту отдельной веткой гита и охуел™️. Она действительно даёт нужную мне гибкость в работе с файлами страниц, статики и шаблонами. А разговоров-то было...
Мне очень нравится тенденция упрощения работы над привычными процессами, aka Xless. Не ковырять файлы для логов, а печатать их как есть. Не держать состояния в памяти, а сразу гонять их в любое хранилище и читать оттуда. Не привязывать себя к файлу конфигурации, а читать окружение. Не переизобретать роутер, а складывать ветки в деревья.
В общем, превращать приложение из микрозавода со всем необходимым внутри в простую схему трубопровода. Не ломать голову над тем как обеспечить завод всеми ресурсами чтобы он хотя бы запустился, а просто подключить любой источник данных к трубе, которая что-то с ними делает и забрать результаты как тебе удобно. Трубам плевать откуда и куда их включили, да хоть друг в друга, но это и делает их универсальными инструментами.
Завод однажды развалится и закроется, а трубы будут гонять трафло и дальше. Также и с моим движком. Если понадобится, я заменю хранилище страниц с файлов на базу данных. Страницы буду рисовать не по HTTP в браузере, а в WebView телеги. Может буду писать логи в файл или сразу отправлять их на сервер метрик.
Я не знаю куда будет подключена моя труба в будущем, но появляется уверенность в том, что она будет работать.
Существующие роутеры достаточно комплексные и сложные, чтобы в них можно было указывать регулярные выражения, переменные и так далее. Но даже они для меня не подходят, так как всё кроме АПИ так или иначе находится "в корне", в ветке отвечающей за
/.Даже собрался писать собственную версию роутера, пока не наткнулся на этот пост: достаточно воспользоваться простым распиливанием ссылки на "директорию" со "всем остальным" и в зависимости от нужд погружаться глубже или работать с тем что есть. Я попробовал применить эту утилиту отдельной веткой гита и охуел™️. Она действительно даёт нужную мне гибкость в работе с файлами страниц, статики и шаблонами. А разговоров-то было...
Мне очень нравится тенденция упрощения работы над привычными процессами, aka Xless. Не ковырять файлы для логов, а печатать их как есть. Не держать состояния в памяти, а сразу гонять их в любое хранилище и читать оттуда. Не привязывать себя к файлу конфигурации, а читать окружение. Не переизобретать роутер, а складывать ветки в деревья.
В общем, превращать приложение из микрозавода со всем необходимым внутри в простую схему трубопровода. Не ломать голову над тем как обеспечить завод всеми ресурсами чтобы он хотя бы запустился, а просто подключить любой источник данных к трубе, которая что-то с ними делает и забрать результаты как тебе удобно. Трубам плевать откуда и куда их включили, да хоть друг в друга, но это и делает их универсальными инструментами.
Завод однажды развалится и закроется, а трубы будут гонять трафло и дальше. Также и с моим движком. Если понадобится, я заменю хранилище страниц с файлов на базу данных. Страницы буду рисовать не по HTTP в браузере, а в WebView телеги. Может буду писать логи в файл или сразу отправлять их на сервер метрик.
Я не знаю куда будет подключена моя труба в будущем, но появляется уверенность в том, что она будет работать.
Mastodon
Maxim Lebedev (@toby3d@mstdn.io)
Невозможно просто так взять и написать нормальный HTTP-роутер.
Вот есть у меня движок для контента на сайте. Я хочу чтобы пути к любым одиночным страницам оканчивались без слэша, а любые разделы/коллекции/подборки - со слэшем. Но тогда любая связанная с…
Вот есть у меня движок для контента на сайте. Я хочу чтобы пути к любым одиночным страницам оканчивались без слэша, а любые разделы/коллекции/подборки - со слэшем. Но тогда любая связанная с…
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Многие из вас могли забыть, но я вежливо напомню что сегодня бензопильный вторник. Не благодарите. ✌️🏻
😁2🤯1
Что-то я вчера передушнил. Зато могу претендовать на работу в DTF с такими лонгридами.
👏1
Максим Лебедев
Что-то я вчера передушнил. Зато могу претендовать на работу в DTF с такими лонгридами.
Хотя, не, о чём это я...
🥱1
Максим Лебедев
Хочу такого же на своей работе
— Mom, I want issues automatization!
— We already have issues automatization at home.
Issues automatization at home: https://t.me/toby3dRu/2410
— We already have issues automatization at home.
Issues automatization at home: https://t.me/toby3dRu/2410
Telegram
Максим Лебедев
Хочу такого же на своей работе
😁1
Максим Лебедев
Хочу такого же на своей работе
Блять, а ведь даже в поставленной собой задаче бот обосрался и закрыл PR спустя четырнадцать дней