"Do one thing every day that scares you."

Month: December 2024

(Само) Няколко любими снимки

Zig

Като за край на старата година нека да я изпратим като разгледаме един език за програмиране – Zig.

Zig е сравнително нов език, създаден през 2016 година, като системен такъв. Неговата цел е да наследи С като добави нови функционалности и други “благинки”, с които да улесни разработката на софтуер на ниско ниво. Предназначен е да бъде general-purpose.

За разлика от други езици, Zig се компилира и няма garbage collector. Авторите му го определят като “simple” език, без скрити алокации в паметта, без макроси и препроцесор.

В GitHub има над 35к звезди и над 30к commits, което го прави популярно репозитори, и в същото време доста работа е свършена.

Изглежда ми интересен, може би някога бих го учил в дълбочина ако се наложи да правя неща които изискват такова ниво близо до хардуера. Като цяло не е предназначен за уеб. Синтаксиса прилича малко на Rust(или Rust на него). С Rust поне може да се направи уебсайт с наличните инструменти и библиотеки(системни и доработени такива).

Говори се на запад за този език, а и не само там, но като цяло няма много обяви за работа за него. Нещо подобно е и за Rust. Така че за сега си остава екзотика. Нещо на което не бива да се разчита че ще дойде в България а по-скоро на нещо като страничен knowledge, който да е за специфични разработки или за “кеф” както е случая при мен.

И докато обяснявам че е само за системни разработки, намерих няколко проекта в GitHub където хората са си направили уеб сървъри и API с него 🙂

Новото PHP

E чак пък да е ново. Колко да е ново.
Така наричам PHP след версия 7 и включително. Много неща се промениха в езика. Много и не се промениха, останаха си същите за добро или не.

Факт е че се промени, променя се от няколко години насам и ще продължи да се променя. Добавиха се много нови концепции, функции и други. Модерният PHP или новото PHP както го наричам аз изглежда като старото но не съвсем.

Може би едно от най-важните новости е Just In Time компилатора, който е направен по начин различен от другите езици. Не е нужна компилация на кода преди изпълняването му. Това става в run time-a.

Друга функционалност е типизацията. Тя не е пълният си вид като на други места. Има я само в класовете – параметри на методи, връщани стойности на методите и в променливите на класа. Освен build in типове има и такива които може самият потребител да създава, най вече с класове. Тук е важно да се отбележи че отбелязването на какъв тим са променливите не е задължително а само пожелателно.

Има много подобрения по съществуващи функции, нови такива както и доста благинки свързани с класовете, наследяването, статични стойност, readonly класове и променливи, match expression, и списъка е дълъг за да изброя всички.

Нов тим примерно са енумерациите / Enum. Като цяло промените се въртят около променливите, връщаните стойности на функции, нейните аргументи, клас properties, и нещата свързани с класовете.

Има и green treads, който се наричат Fibers. Хем се ползва като отделен thread хем не са точно асинхронни. Но те неща нещо което всеки да полазва. Предимно се имплементират в библиотеки.

Може би друг голям feature са атрибутите. Те са нещо като анотациите в JAVA ама не съвсем. В някои от следващите постове ще покажа примери как се ползват. Изглеждат ми доста полезни. Но пак са за свързани с библиотеки или отделни фрагменти от кода, които се изолират за да бъдат преизползвани.

Извода е че има много новости. Повечето са хубави. Надявам се за добро. А най-хубавото е че езика се развива. Може би идеята е да се върви в посока JAVA. Дали ще стане или не – ще разберем. Едно време бих се радвам много за завоя в тази посока. Днес? Ами днес имам малко по-различно мнение, което ще остава за друг път.

Топ 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 остава най-добрият избор за работа с бази данни.

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

Homelab

Ех тези модерни думи. Тези така мразени от някои(?никои) хора чуждици. В последно време все повече се говори за homelabbing.

Но какво всъщност е това. Тъй като не намирам официално определение ще се придържам към това какво хората представят за това и какво аз мисля че е.

Homelab е домашен сървър или множество сървъри и устройства които работят в домашната мрежа и/или предоставят достъп и до външната такава. Може да се ползват за много неща.

От домашен уеб сървър където някои хоства блога си или малки сайтове, до VPN сървъри, NAS устройства, NDS сървъри, медия сървъри, виртуални машини и много други.

Аз самият имам homelab. Състои се от настолен компютър HP, който съм ъпгрейдндал и ползвам за сървър, минем през NAS който ползвам за съхранение и достъп на файлове като снимки, видеа, документи и други важни digital assets, и стигнем до Raspbery Pi, който ползвам за какво ли не и за нищо в същото време.

Homelabbing-a е за всеки. Всеки може да се занимава с него. Не се изисква кой знае какви знания технически или други. Дори може и да е на достъпна цена. Това може да е едно Raspberry Pi или някой компютър на старо. Другото нещо което ви трябва е желание и време да се експериментира. Започвате да инсталирате различни видове софтуер и да си “играете” с него.

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

Възможности има много. Хубавото е че няма правилно и грешно, няма правила, няма грешни решения, има само опит и практика и придобиване на нови знания.

Пожелавам приятен homelabbing 🙂

Powered by WordPress & Theme by Anders Norén