Satont.
314 subscribers
321 photos
52 videos
1 file
201 links
Download Telegram
Я попробовал deno 2.0, и вот почему вы тоже должны это сделать.

Поддержка TypeScript.
Из коробки deno позволяет вам запускать, проверять типы вашего тайпскрипт кода. Не нужно ставить отдельные зависимости, настраивать и понимать уже до осточерчения переусложнённый конфиг. Создаёте файлик -> запускаете.

Удобный тулинг.
Позволяет вам запускать fmt, run, test, check (ts check), lint. с watch режимом, исключая при этом какие-то паттерны.
Имеет в себе воз и маленькую тележку утилит, по типу bench, compile. Флаги на все случаи жизни.
Есть форматирование и линтинг из коробки, с уже задаными правилами.

Безопасность.
С deno вы можете ограничить доступ программы к определённым путям файлов, или наоборот разрешить.
Гибкая настройка позволит вам разрешить\запретить читать env переме
Выход в интернет только на определённые домены; запуск подпроцессов.

Поддержка воркспейсов.
Из коробки это работает так, как блин должны было быть в ноде с появлением их в npm. Прописываете "workspace": ["./libs/config", "./apps/api"] в deno.json, и можете импортировать ваш libs/config в приложение по заданному name из deno.json.
Главное достоинство этого — вам не нужно ребилдить конфиг если он поменялся перед запуском приложения. То есть вы можете запустить ваше приложение с watch флагом, сделать изменение в libs/config, и deno перезапустит вам приложение!

Полная совместимость с nodejs.
Начиная с версии 2.0 deno полностью совместим с nodejs! Можно импортировать любой node:* пакет, можно импортировать npm пакеты, всё работает, я проверил.
Например прописав в deno.json: "imports": { "chalk": "npm:chalk@^5.3.0" } можно импортировать его как обычно import chalk from 'chalk'.
Более того, — вы можете использовать deno и в кач-ве пакетного менеджера, и в кач-ве рантайма. Что это значит? Что если у вас есть проект на nodejs, и вы хотите плавно его перенести на deno, то теперь это вполне возможно, deno поддерживает package.json. deno install -> deno run dev и полетели. Правда тут вроде как нюанс — проект должен быть на es модулях (но это не точно).

Быстрый LSP.
Добавив\удалив пакет из deno.json (в том числе через cli) изменения моментально подтягиваются в вашем редакторе кода. Я проверил в Intellij, VSCode, — работа потрясающая. Знаете этот момент в nodejs, когда поставил пакет, и нужно делать TypeScript restart? Бесит, правда?

JSR (реестр пакетов).
То, с какой простотой вы можете публиковать и поддерживать свои пакеты там поражает. Более того, вы можете сделать multi-runtime пакет, и эта информация будет в реестре.
Опять же, ESM only, но за ним будущее. Переходите все на ESM.

Минусы:
- ESM only. Ваши require сразу выходят из чата, а так же куча тулинга, которые работают поверх этого.
- Пока маленький adoption by community. Но за счёт поддержки npm пакетов это будто невелируется.
- Для кого-то может быть минусом, что за Deno стоит компания, а не какой-то foundation с кучкой энтузиастов.
- Набор линт правил не особо большой, всего 105 штук. Надеюсь будут удобные механизмы расширения, но пока их вроде как нет.
- Я пока не могу выделить что-то ещё, но если появятся в процессе освоения — я обязательно напишу.

Небольшой вывод:
Deno после Node ощущается как глоток свежего воздуха.
Это то, как современный рантайм джса должен себя вести и выглядить. Ребятам из node есть куда расти и развиваться, надеюсь они пересмотрят поликики свои, процессы. В то же время Deno встал взрослее и перспективнее, если вы пишите на js/ts — рекомендую ради общего кругозора его потыкать.
Он простой, приветливый к новичкам, быстрый, современный.
🔥7😈2👏1
Пельмешки с медвежатиной.
😭9🤯2
Всем привет я пью вкусненькие алкогольные коктейли.
🆒6
Уже в другом заведении, пью коктейли, курю кальян.
🍾5
Закидывайте свои итоги по музыке.
Добавил метрики на twitch клинт в твире, и внезапно обнаружил, что видимо твич зафлагали твир как бота, и у меня лимиты сильно выше, чем должны быть. По дефолту 800, у меня 15к.

Но это только на отправку сообщений.
🆒5
Персентали ответов кстати грустные. Надо в Америке хостится, чтобы лучше было время ответа.
😢4
4🔥2👎1
TwirApp.

Ну, как обычно.
🫡8😁1🎅1
Satont.
Photo
Это кстати единственный подарок, который я получу в этот день. 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3😭2
Satont.
Photo
Так сказать приблежённые к твичу челы меня можно сказать послали нахуй со словами "чел, это твоя проблема, ты сам должен модерировать чё там твои 500 дурачков понасоздавали". Вот тебе апи эндпоинт, по которому ты можешь проверить сообщение на соответствие правилам твича, но правда он может быть вызван только 5 раз в минуту, но это тоже не наши проблемы чел, и то только если автомод на канале настроен.
Как бы извини, но moobot, nightbot, fossabot могут в чат писать слово негр и их не банят, но ты не подумай, на них нет никакого вайл-листа, потому и тебе мы его тоже дать не можем.

Знаете что добавляет иронии? Я проверил все аудит логи (Я могу смотреть что создают пользователи в боте), и там нет ни одного запрещённого с точки зрения твича сообщения. Ну то есть они мне причину не говорят, и сам я ничего не нашёл.

Я думаю после следующего бана я просто закрою проект. Ну а что я ещё могу сделать?
😢16
У кого нибудь интернет сегодня медленный?
👎8🥴3😎2
Стримов больше не будет.
😭9😢5🤡4👍21
Можете отписываться кто подписан из-за стримов.
😭9🫡3😡3🖕21👌1🤡1
Постараюсь больше писать тогда о кодинге, хуле, раз такая пляска.
8
https://youtu.be/ufPGsZtqrac
https://blog.jetbrains.com/junie/2025/01/meet-junie-your-coding-agent-by-jetbrains/

Ну наконец они что-то сделали с ии.

Мне особо это не нужно, я попробовал cursor, windsurf — и они ну туповатые. Но так как ИИ технологии на хайпе, то это в любом случае идёт в плюс в копилку им.
Тем, кто держит свой сайт — рекомендую поставить его за Cloudflare, и озаботиться фильтрациями.

Сейчас всякие AI боты активно скрапят интернет, тем самым они могут создавать вам непредвиденную нагрузку.
Как от этого защититься:
- Паркуем домен на cloudflare.
- Во вкладке`DNS` указываем нужные нам записи A, AAAA, CNAME и так далее. Подробнее как это сделать — в интернете погуглите.
- После этого открываем вкладку Security -> Bots, и там включаем Block AI Bots, а так же Bot Fight Mode, если хотите всякие другие странные автоматические скраперы заблочить.

После этого на вкладке Security -> Events можете наблюдать (см. скриншот), как всякие Claude, GPT и т.д пытаются безуспешно считать ваш сайт.
Ну и всякие скрипты, ищущие уязвимости по типу /admin/login.php тоже отпадут.
👍161
А я для вас сегодня с приколами под го.

Знаете zod? Ну такая библеотечка с декларативным описанием схемы.

Есть отличная альтернатива под го: https://zog.dev/getting-started

Usage валидации очень прост:


import (
z "github.com/Oudwins/zog"
)


type User struct {
Name string `zog:"firstname"` // tag is optional. If not set zog will check for "name" field in the input data
Age int
}

var userSchema = z.Struct(z.Schema{
// its very important that schema keys like "name" match the struct field name NOT the input data
"name": z.String().Min(3, z.Message("Override default message")).Max(10),
"age": z.Int().GT(18).Required(z.Message("is required")),
})


func main() {
u := User{
Name: "Zog",
Age: 1,
}
errsMap := schema.Validate(&u)
if errsMap != nil {
// handle errors -> see Errors section
}
}


Или же err := userSchema.Parse(zhttp.Request(r), &user), что ещё больше сокращает, сначала спарсив реквест, потом прокинув в валидацию.

Посмотрите, поиграйтесь, это многим лучше go-validate, который очень пополярный и до жути не удобный.
🔥5