Попробовал, наконец, разработку на Blazor. Это такой фреймворк под .NET, который позволяет писать фронтенд на C#. Работает он двумя способами: либо собирает весь проект в WebAssembly, и бедный пользователь грузит себе мегабайтную dll, либо устанавливает клиент-серверное соединение через SignalR и шлёт клиенту информацию об обновлённых DOM-элементах.
Вот вторую то я и пробовал. Казалось бы — каждое нажатие кнопки требует отправить на сервер запрос и получить ответ. Никогда такого не было! Но субъективно разницы во времени отклика нет (потому что веб и так достаточно медленный, хаха).
Фронтенд-часть пишется очень похоже на JSX: вёрстка реактивно вперемешку с кодом. Когда-то я очень ругал React за такой подход, потому что каша. Но нетипизированный JS по-умолчанию каша, а здесь же по факту получается очень удобно: статический анализ не даёт тебе делать ошибки и писать ерунду.
Но приятный полноценный язык программирования вместо JavaScript это лишь вишенка на торте. Самое крутое — вся сила серверного кода с полноценной возможностью обращения к базе данных, шеринг моделей данных между сервером и клиентом, и, наконец, Dependency Injection любого серверного модуля в «клиент»! То есть вы не просто пишете одно приложение вместо двух, вы ещё и получаете отсутствие ошибок при каком-нибудь изменении моделей API, когда сервер стал отдавать не то, что ожидает клиент. Вам вообще теперь не нужен API, достаточно закодить нужную функцию на серваке и инжектировать её в нужный фронтенд-модуль.
Это супер удобно, супер быстро, супер устойчиво к ошибкам. Теперь не хочется возвращаться даже на вполне крутой Vue 3. Но, система пока новая, она не обросла решениями от комьюнити, а браузерный API всё равно придётся дергать через JavaScript Interop. Для совсем кайфа нужно подождать годик, поскольку развитие идёт довольно быстро. Например, там нет очень нужного в таком деле hot reload, но в .NET 6 он уже анонсирован, и вроде как есть в превью, а релиз в ноябре.
#dev
#typescript#blog#nextjs#nodejs#typescript
VanBlog is a simple and useful personal blog system. It offers many features like automatic HTTPS certificates, dark mode, mobile-friendly design, and a built-in comment system. Users can track website traffic with its analytics tools and customize their blog with various layouts and themes. It also supports Markdown editing, image uploading, and SEO optimization. This makes it easy for users to manage and grow their blog without needing much technical knowledge.
https://github.com/Mereithhh/vanblog
🎮 DOOM запустили на ChatGPT
Люблю наблюдать за тем, как эту легенду запускают на разных устройствах — видел даже запуск на огромном битном «компьютере» с «экраном» в майнкрафте не так давно.
Тут тоже интересно: после предварительной подготовки прямо в диалоге с ChatGPT открывается 🧙
Нет, ChatGPT не пишет с нуля код всей игры, разочарую вас🐸
Делал тот же чувак, который ранее предложил вариант captcha (бесячего теста, что ты не робот) с проверкой твоих навыков стрельбы в DOOM 😁
Душные пояснения для тех, кому интересно, как так получилось:
Разработчик взял шаблон ChatGPT App на Next.js, добавил инструмент play_doom и задеплоил всё на Vercel.
Chatgpt не просто описывает игру, а реально запускает рабочий Doom прямо в чат: серверный и клиентский рендеринг работают одновременно.
- Пояснения, как работает эта связка ChatGPT+Vercel
- Оригинальный пост
⚠️ Видео и пост из X (бывший Twitter), который сейчас запрещен в РФ.
#ИИ#ChatGPT#DOOM#AI#NextJS#Vercel#GameDev
#typescript#examples#nextjs#vercel
Vercel offers ready-to-use templates and examples that help you quickly start web projects with best practices and optimized settings, especially for frameworks like Next.js. These templates save you time by handling setup and deployment details, letting you focus on coding. You can also contribute your own examples easily using provided commands and guidelines. Vercel automatically checks your code style and quality before commits, ensuring clean code. Plus, it integrates with Git and runs tests before deployment to catch bugs early. This makes building, deploying, and maintaining fast, reliable web apps much easier and faster for you.
https://github.com/vercel/examples