"Do one thing every day that scares you."

Tag: Go

10x Faster TypeScript

Не е за вярване, но се случва.

От Майкрософт са решили да пренапишат компилатора на TypeScript на Go. Изкараха някои доста впечатляващи цифри. Разработват го от около половин година.

В началото са седнали и са помислили какво им трябва и защо. След това са събрали екипи, които са направили мокъп на различни езици за програмиране и са смятали плюсове и минуси. Оказало се че Go има най много плюсове за това, за което им трябва в случая. И така са избрали него.

Естествено има много недоволни от това решение. Някои предложиха да бъде написан на C#, други на Rust и C++. Всеки със своите аргументи и страхове. В крайна сметка е решено – Go.

Цифрите които показаха са меко казано впечатляващи. Подобряване на скоростта на компилиране на 10х. Хванали са някои от най-ползваните проекти на TypeScript и са ги компилирали с новия компилатор на Go.

Разбира се още не е готов. В процес на разработка е. Очаква се до края на годината да пуснат официална версия, като за сега са напреднали много. Официално обмислят да е във версия 7. Предстои пускането на версия 6 на TypeScript, която да подготви основата за 7, като ще има някои значителни промени.

Това което забелязвам в последните години е избягването на писане на инструменти за JavaScript средата на Node.js, за сметка на други езици като Go, Rust и C++.

Линк към YouTuBe видеото: https://www.youtube.com/watch?v=pNlq-EVld70

Simple web server with Go Fiber

Hi everyone and happy new year 🙂

Fiber is one of Go web frameworks that is simple, intuitive and easy to use. There are a lot of features, but it is not fully featured like PHP Laravel.

It is mainly for API but can be used for websites with HTML templates, not just for SPA. To install Fiber just run this command:

go get github.com/gofiber/fiber/v2

This is example of running web server with one http hander:

package main

import "github.com/gofiber/fiber/v2"

func main() {
	app := fiber.New()

	app.Get("/", func(c *fiber.Ctx) error {
		return c.SendString("Hello, World!")
	})

	app.Listen(":3000")
}

Line by line: first we say the name of current package. After that it includes Fiber itself. The main function in main.go file is the point where our program will start. Making instance of Fiber is easy, just call fiber.New(). This method can receive some params, but will cover them in another article.

The simplest way to declare a http handler is to call app.Get, for GET requests. Every handler returns an error and receive as param the Fiber context, where we can use response and request.
The server itself is running with app.Listen method. This is the easiest way to run production ready web server in Go Fiber.

Another features of Fiber are:

  • Routes
  • Grouping Routes
  • Templates
  • Error handling
  • Validation
  • Hooks
  • Middlewares
  • And many methods to works with request and response and modify headers.

Топ 6 Golang Frameworks за 2024: Изборът на най-добрите инструменти за разработка на приложения

Go (или Golang) е един от най-популярните програмни езици, известен със своята ефективност, бързина и скалируемост. Той е чудесен избор за разработване на високо производителни приложения и системи. Въпреки че сам по себе си Go е много мощен, фреймуърковете могат значително да ускорят процеса на разработка, като предоставят решения за често срещани задачи. В тази статия ще разгледаме най-добрите фреймуъркове за Golang, които трябва да познавате.

1. Gin

Gin е един от най-популярните и широко използвани фреймуъркове за Go, известен със своята производителност и лекота на използване. Той е умишлено минималистичен и предоставя само основни функции за работа с HTTP заявки, маршрутизиране и обработка на сесии, което го прави изключително бърз. Gin е идеален за изграждане на RESTful API и е подходящ за проекти, където скоростта и ефективността са от първостепенно значение.

Основни характеристики:

  • Много бърз (един от най-бързите фреймуъркове за Go)
  • Лесен за използване
  • Поддържа мидълуери, групи от маршрути, JSON валидиране и други
  • Добре документиран и широко използван в индустрията

2. Echo

Echo е друг много популярен фреймуърк за Go, известен със своята лекота на конфигуриране и мащабируемост. Той предлага по-богат набор от функции в сравнение с Gin, което го прави отличен избор за по-големи проекти. Echo се отличава със своето добро представяне в условия на висока натовареност и има множество вградени функции като маршрутизиране, валидиране на JSON данни, обработка на сесии и много други.

Основни характеристики:

  • Висока производителност
  • Поддръжка на HTTP/2
  • Лесна интеграция с различни бази данни и платформи
  • Множество вградени мидълуери за аутентификация, логиране и обработка на грешки

3. Revel

Revel е фреймуърк за Go, който следва по-подхода на традиционните MVC (Model-View-Controller) фреймуъркове и е идеален за разработка на сложни уеб приложения. Той предоставя пълна настройка “out-of-the-box” и включва функционалности като автоматично презареждане на код, вграден механизъм за маршрутизиране и много други инструменти, които ускоряват процеса на разработка.

Основни характеристики:

  • Пълноценен MVC фреймуърк
  • Вградена поддръжка за маршрутизация, шаблони и валидиране
  • Автоматично презареждане на код по време на разработка
  • Разширяем и удобен за големи проекти

4. Buffalo

Buffalo е мощен и гъвкав фреймуърк за разработка на уеб приложения и API с Go. Той е проектиран да бъде аналог на традиционните уеб фреймуъркове като Ruby on Rails или Django, като предоставя пълен набор от функционалности, включително модели за бази данни, управление на миграции, сесии и други. Buffalo е отличен избор за разработчици, които търсят интегрирано решение за създаване на уеб приложения.

Основни характеристики:

  • Интегриран комплект за разработка на уеб приложения
  • Вградена поддръжка за бази данни, миграции и шаблони
  • Лесен за настройка и конфигуриране
  • Поддържа и автоматично презареждане на код

5. Fiber

Fiber е един от най-бързо развиващите се фреймуъркове за Go, вдъхновен от Express.js за Node.js. Той предлага изключителна производителност и е проектиран с цел да бъде максимално лек и бърз. Fiber е отличен избор за създаване на RESTful API и уеб приложения, като същевременно предлага лесна и удобна работа с маршрути, мидълуери и различни типове заяви. Със своите малки изисквания към ресурсите и висока производителност, Fiber е един от водещите фреймуъркове за изграждане на мащабируеми и ефективни приложения с Go.

Основни характеристики:

  • Висока производителност и ефективност
  • Подобен на Express.js за Node.js, но за Go
  • Лесно използване с минимално количество код
  • Отлична поддръжка за HTTP/2 и WebSocket
  • Множество мидълуери за автентикация, обработка на грешки и други

6. Gorm

Въпреки че Gorm не е класически фреймуърк за уеб приложения, той е неоспорим лидер в света на ORM (Object-Relational Mapping) библиотеките за Go. Gorm е основен инструмент за работа с бази данни в Go, предоставяйки лесна за използване абстракция за работа с релационни бази данни като MySQL, PostgreSQL и SQLite. За разработчиците, които искат да интегрират бази данни в своите Go приложения, Gorm е основен избор.

Основни характеристики:

  • Поддръжка на множество бази данни
  • Мощни възможности за миграция на схеми и работа с транзакции
  • Поддръжка за автоматично генериране на SQL заявки
  • Лесна интеграция с Go проекти

Заключение

Изборът на правилния фреймуърк за вашето приложение зависи от конкретните ви нужди и предпочитания. Ако търсите най-бързото решение за API разработка, Gin и Fiber са перфектни избори благодарение на тяхната производителност. Ако обаче се нуждаете от по-богат набор от функции, Echo и Revel могат да бъдат по-подходящи за вас. За тези, които искат да изградят сложни уеб приложения, Buffalo предлага пълноценна настройка. Не на последно място, Gorm остава най-добрият избор за работа с бази данни.

Използването на подходящ фреймуърк може значително да ускори процеса на разработка и да ви помогне да изградите по-надеждни и ефективни приложения. Надяваме се тази статия да ви е полезна при избора на инструменти за вашия следващ проект!

Powered by WordPress & Theme by Anders Norén