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 straipsnių „mano technologijų rinkinys“ (mój tech stack) yra išdidus naujovių sąrašas. Šis yra apie kažką kita — apie filosofiją, kuri stovi už cutty.dev pasirinkimų: nuobodu ir stabilu vietoj madingo, europietiška vietoj amerikietiškos, iš esmės privasti ir pakankamai paprasta, kad vienas asmuo galėtų ją išlaikyti.
Frameworkas: Astro (serverio pusėje vykdomas renderiavimas)
cutty.dev yra „Astro“ programėlė, renderuojama serverio pusėje. Kiekvienas užklausos siunčiamas per serverį, dinamiškai suformuoja puslapį ir atsako paruoštu HTML formatu.
Kodėl: norėjau pusės serverio renderavimo be sunkių mechanizmų, gero daugiakalbių palaikymo, įtraukto į patį framework'ą, ir greičio be papildomos apkrovos. Astro suteikia viską, o kodas išlieka skaitomas — kas vienišai dirbančiam projektui yra vertingiau nei bet koks modernus priedas.
Duomenų bazė: SQLite
Vienas duomenų bazė, vienas failas. Be to, запроsų sluoksnis, draugiškas „TypeScript“, dėl kurio duomenų struktūros pakeitimas iškart parodo klaidas kode, o ne produkcijoj.
Kodėl: cutty.dev yra visų pirma „read-heavy“ — kiekvienas nuorodos spustelėjimas yra skaitymas plus skaičiaus padidinimas. SQLite tai daro puikiai, iki labai didelio kasdienio srauto. Atsarginė kopija yra tiesiog vieno failo nukopijavimas — be replikavimo ceremonijų, be sudėtingų skriptų. Paprastumas čia nėra kokybės taupymas; tai apświadona decyzija, kad mažiau judančių dalių reiškia mažiau dalykų, kurie gali sugedėti.
Talpinimas: serveris Europos Sąjungoje
Dedykuotas serveris ES, nuosabas TLS sertifikatas, atbulinis proxy su automatiniu HTTPS, programėlė konteineriuose.
Kodėl: tai yra pagrindas tam, kaip cutty.dev tvarko duomenis. Pilna kontrolė dėl jų vietos (svarbu ES klientams ir BDAR), nepriklausomybė nuo vieno tiekėjo, automatinio replikavimo į JAV trūkumas, kurį suteikia didžiosios debesijos platformos, ir numatoma kaina vietoj nuo srauto priklausomo sąskaitos. Patogios Vakarų platformos leistų gretesnę pradžią — tačiau už tai kaina būtų ta, kur fizinėje vietoje atsidurtų jūsų vartotojų duomenys.
Vertimai: vietinis AI modelis
cutty.dev kalba 25 kalbomis, o vertimus atlieka vietinis, atviro kodo AI modelis, veikiantis mūsų savo infrastruktūroje.
Kodėl: jokia sąsajos tekstas nėra iškeliamas į išorę — mes jo nepersame jokiam išimtinam AI tiekėjui. Papildomai tai užtikrina nuliam vienos vertimo kainą ir pilną kontrolę dėl kokybės: galime juos atnaujinti kada tik norime. Mašininis vertimas visada reikalauja žmogaus patikros — ir kiekvienas kalba yra peržiūrėta — tačiau tai daryti saui reiškia, kad privatumą ne kaip paslaugą kainos sąraše, o kaip architektūros savybę.
CSS: utility-first (Tailwind)
Vienas stilių sistema, be CSS-in-JS, be atskirų stilių failų. Viskas tiesiogiai šablonuose.
Kodėl: iteracijos greitis. Nešvaidou laiko galvojant apie klasių pavadinimus, o nenaudojami stiliai vis tiek nepatenka į galutinį puslapį. Nuoseklus dizainas, kurią priverčia pats sistema. Vienam asmeniui svarbi kiekviena minutė, kurios nepraleidau dirbdamas su šalutiniais dalykais.
Įgyvendinimas: talpyklos
Programėlė konteineriuose (Docker), diegiama tekrojamu, taşoma forma.
Kodėl: ta pati aplinka vietinėje ir gamybinėje sistemoje, nėra „mano kompiuteryje veikė“, ir galimybė per pusę valandos perkeliam visumą į kitą serverį, jei prireiktų. Taşomumas yra nepriklausomybės forma.
Ko mane tai išmokė
- Nuobodus „stack“ laimi. Astro, SQLite, Tailwind, konteineriai — viskas subalancuota, gerai dokumentuota, stabili. Nieko nesulūžų netikėtiausiu momentu.
- Hostingas ES yra paruoštas verslui. Mitas „privalai rinktis didelę amerikietišką debesį, kad viskas būtų rimta“ yra būtent tai — mitas.
- Vietinis AI yra realus. Nereikia atiduoti savo duomenų išimtinam API, kad gautumėte gerą vertimą.
- Vienas asmuo gali išleisti dalyką, kuris atrodo kaip komandos produktas. Laikas yra brangesnis resursas nei pinigai, todėl kiekvienas pasirinkimas čia saugojo būtent laiką.
Žiūrėti gyvai. Klausimai dėl techninio požiūrio — hello@cutty.dev, atsakau tą pačią dieną.