Perejti prie turinio
cutty.dev
All posts

cutty.dev technologijų rinkinys — sąmoningi pasirinkimai

Kas yra po cutty.dev paviršumi ir kodėl. Be evangelizavimo — filosofija: nuobodus, stabilus stackas, hostingas UE ir privatumą įtrauktas į architektūrą, kurią vienas asmuo gali išlaikyti.

Dauguma įrašų „mano technologijų rinkinys“ (my tech stack) yra išdidžios naujienų sąrašai. Žiūrėk, turiu tai, turiu tą, o čia dar visiškai nauja biblioteka iš praėjusio savaitės. Šis bus kitas.

Nes tiesa tokia, kad kai valdai projektą vienas, ieškai ne patikščiausio. Išieškai kažką, kas tave neprivers pabudėti trečia valandą naktį. Ir būtent apie tai yra visa ši cutty.dev technologijų sutampa: nuobodu vietoj madingo, europietiška vietoj amerikietiškos, privati nuo pačių pamato ir pakankamai paprasta, kad suimtų viena pora rankų.

Einu po eilę, tarsi tau tai aiškintum gerdamas kavą.

Astro generuojamas serverioje (ir kodėl ne kažkas „įdomesnio“)

cutty.dev yra Astro su pusės serverio renderavimu (SSR). Kiekvienas užklausos siunčiamas per serverį, suformuoja puslapį ir grąžina paruoštą HTML. Nuobodu? Tiksliai, apie tai ir kalbame.

Norėjau trijų dalykų: serverio renderinimą be sunkios mechanikos, tinkamą daugiakalbių palaikymą iškart ir greitį be papildomo varglio. Astro suteikia viską, o kodas išlieka skaitomas. Kai grįžtu prie jo po dviejų mėnesių pertraukos, žinau, kas ten vyksta. Dirbant vienam projektu, tai verta daugiau nei bet koks madingas priedas, kurio po metų niekas nebeprastatės.

Vienas failas vietoj duomenų bazės su fejerverkais

SQLite. Viena duomenų bazė, vienas failas diskode. Be to, užklausų sluoksnis bendrauja su TypeScript, todėl jei pakeičiu duomenų struktūrą, klaida atsiranda mano redakture, o ne gamybinėje aplinkoje vidury naktis.

Kodėl būtent tai? cutty yra „read-heavy“. Kažkas spustelėja trumpintą nuorodą, mes atliekame skaitymą ir padidiname skaičių skaitiklį. Tiek. SQLite lengvai tvarko tokį srautą, iki tikrai didelių skaičių per dieną. O atsarginė kopija? Kopijuoji failą. Taip ir viskas. Be replikavimo ceremonijų, be skriptų, kurių niekas neprisimena, kaip veikia.

Čia vieną daly atkreipkite dėmesį, nes tai dažna purkštukas: žmonės girdi „SQLite“ ir galvoja „žaidliukas projektui įvertinti“. Tai netiesa. Mažiau judančių dalių reiškia mažiau dalykų, kurie gali išsisklaistyti. Tai ne kokybės taupymas, tai sąmoningas sprendimas.

Serveris yra Europoje ir tai nėra atsitiktumas

Skirtas serveris ES. Nuosalas TLS, atbulinis proxy su automatiniu HTTPS, programėlė konteineriuose.

Tai yra pagrindas, kaip „cutty“ tvarko duomenis. Žinau tiksliai, kur jie fiziškai saugomi (ES ir BDAR klientams tai nėra smalsumas, o sąlyga), nesu priklausau nuo vieno tiekėjo, niekas automatiškai nėra išsiunčiamas už vandenyno, o sąskaita yra nuspėjama, o ne šoka kartu su srautu.

Taip, patogios platformos iš Vakarų suteiktų greitesnę pradžią. Spaudžia, deploy, veikia. Tik bet už tai moki tuo, kur atsiduria tavo vartotojų duomenys. Man tai buvo blogas sandoris.

Vertimai daro savo modelį, pas save

cutty kalba 25 kalbomis. Tai verčia vietinis, atvirojo kodo AI modelis, kuris veikia mano infrastruktūroje. Aš negarsinu teksto iš sąsajos jokiam išoriniam tiekėjui.

Naudai yra praktiškumą. Vienkartinis vertimas kainuoja nieko. Aš turiu pilną kontrolę dėl kokybės ir galiu ją atnaujinti, kada tik noriu. Be to, mašinai visada reikia žmogaus akies, todėl kiekvienas iš šių 25 kalbų buvo peržiūrėtas. Tačiau faktas, kad tai darau savo patologijoje, reiškia, kad privatumo nėra kaip atskira pozicija kainos sąraše. Tai yra savybė, sukurta taip, kaip visuma yra sukonstruota.

Tailwindas, talpyklos ir keletas mažesnių sprendimų

Stilius? „Utility-first“, tai yra Tailwind. Be CSS-in-JS, be atskirų stilijų failų, viskas tiesiog šablonuose. Neminštu laiko galvojama klasės pavadinimams, unused stiliai ir taip pat neegzistuoja galutinėje puslapio versijoje, o dizainas laikosi kartu, nes pats sistema tai priverčia. Vienam asmeniui svarbu kiekviena minutė, nešvaistoma smulkmenų.

Įgyvendinimas yra Docker. Ta pati aplinka vietinėje ir gamybinėje sistemoje, pabaiga „mano kompiuteryje veikė“. Ir jei kada nors reikėtų, viską perkeliu į kitą serverį per apie pusę valandos. Taşomumas yra tylus nepriklausomybės forma.

Ką iš to išvadačiau

Nuobodus stekas laimi. Astro, SQLite, Tailwind, konteineriai. Viskas subalgintas, patikrintas, aprašytas. Nieka kas nesulūžta tuo momentu, kai to labiausiai reikia.

Hostingas ES yra paruoštas produkcijai, tikrai. Pasaka, kad „prireikia eiti į didelę amerikietišką debesį, kad viskas būtų rimta“, yra pasaka. Vietinis AI taip pat yra realus, nereikia atiduoti duomenų išimtinam API, kad gautumėte priklausomą vertimus. Ir paskutinis dalykas: viena osoba gali išleisti kažką, kas atrodo kaip viso komandos darbas. Tik reikia prisiminti, kad laikas yra brangesnis už pinigus, ir šiuo požiūriu rinktis kiekvieną detalę.

Kai kuriate kažką savo, kiekvienai technologijai užduokite vieną klausimą: ar po metų aš sugebėsiu tai prižiūrėti pats? Jei ne, tai tikriausiai jau turite atsakymą.

Visa tai veikia čia: cutty.dev. O jei norėtumėte pasikalbėti apie أحد iš šių sprendimų, rašykite į [email protected], atsakysiu tą pačią dieną.