Forwarded from Golang
This media is not supported in your browser
VIEW IN TELEGRAM
Самое главное:
▪ В 10 раз (!) быстрее компиляция, в 2 раза меньше памяти просит;
▪ На видео как раз тест нового компилятора: 0.63 секунды против 3.35 на старом;
▪ Проект пилят с августа 2024, готово уже 80%;
Полный переход займёт годы 😢;
▪ В версии на Go не работает «манкипатчинг», что сделает API TypeScript более безопасным;
⚫ Планируют интеграцию с LLM (надеюсь, локальными);
⚫ Полный переход на TypeScript-Go не отменяет поддержку старой версии;
⚫ Кодовая база TypeScript в Go расходится с оригиналом, так что некоторые фичи (вроде JSDoc и JSX) могут полететь.
Проект в разработке с августа 2024, готово уже 80%.
Полное интервью с апдейтами тут глянуть на YouTube
▪Github: https://github.com/microsoft/typescript-go
▪Microsoft blog: https://devblogs.microsoft.com/typescript/typescript-native-port/
#dotnet #golang #programming #typescript #webdev
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🌀 Middleware и RoundTripper в Go: гибкая обработка HTTP-запросов
В Go нет встроенного понятия "middleware", как в других фреймворках — но вы можете легко реализовать его сами, особенно в контексте
🔧 RoundTripper — это интерфейс, который обрабатывает HTTP-запросы на уровне клиента (`http.Client`). Это даёт возможность внедрять логику *до* и *после* отправки запроса.
🧱 Пример: логгер запросов
📦 Использование:
💡 Таким образом, вы можете создавать middleware прямо внутри
• логирование
• кэширование
• модификация заголовков
• retry-логика
• трейсинг
🔗 Подробнее: dev.to/calvinmclean/middleware-and-roundtrippers-in-go-30pa
#golang #httpclient #middleware #webdev #devtools
В Go нет встроенного понятия "middleware", как в других фреймворках — но вы можете легко реализовать его сами, особенно в контексте
http.RoundTripper
.🔧 RoundTripper — это интерфейс, который обрабатывает HTTP-запросы на уровне клиента (`http.Client`). Это даёт возможность внедрять логику *до* и *после* отправки запроса.
🧱 Пример: логгер запросов
type LoggingRoundTripper struct {
rt http.RoundTripper
}
func (l *LoggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
log.Printf("📤 Запрос: %s %s", req.Method, req.URL)
resp, err := l.rt.RoundTrip(req)
if err == nil {
log.Printf("📥 Ответ: %d", resp.StatusCode)
}
return resp, err
}
📦 Использование:
client := &http.Client{
Transport: &LoggingRoundTripper{rt: http.DefaultTransport},
}
💡 Таким образом, вы можете создавать middleware прямо внутри
http.Client
, например:• логирование
• кэширование
• модификация заголовков
• retry-логика
• трейсинг
🔗 Подробнее: dev.to/calvinmclean/middleware-and-roundtrippers-in-go-30pa
#golang #httpclient #middleware #webdev #devtools