Ի՞նչ ենք մենք սովորել ChiselStrike-ի մեկ տարվա ընթացքում:
ChiselStrike-ի գործադիր տնօրենը կիսվում է մեր առաջին տարվանից քաղած դասերով:
Անցած տարվա ընթացքում մենք ChiselStrike ենք կառուցում բաց դաշտում: Այս ընթացքում մենք կառուցել ենք մի մեծ Discord համայնք՝ ավելի քան 200 անդամներով, և ստացել ենք արժանապատիվ Open Source ակտիվություն:
Մենք բաց կոդով վետերաններ ենք, ուստի մեզ համար այս կամ այն, ինչ մենք կառուցում ենք, որպես բաց կոդով նախագիծ կառուցելը միշտ անիմաստ էր: Բայց որպես ընկերություն, մեր նպատակն էր դա օգտագործել՝ մեր Backend-as-a-Service առաջարկը հզորացնելու համար, որտեղ մարդիկ կարող էին տեղակայել ChiselStrike կոդը:
Ի սկզբանե մենք մտքում ունեինք, որ մենք կստեղծենք SQLite-ի եզրին լուծում՝ ChiselStrike պլատֆորմը հզորացնելու համար: Սակայն, երբ մենք ավելի մոտեցանք այդ նպատակի իրականացմանը և զուգակցելով համայնքից ստացած այլ արձագանքների հետ, մենք հասկացանք, որ սա, որը մենք անվանեցինք «Turso, պետք է դառնա մեր հիմնական արտադրանքը:
Այսօր մենք դադարեցնում ենք հյուրընկալված BaaS առաջարկը (բայց ոչ ChiselStrike Open Source նախագիծը, դրա մասին ավելին ստորև), որպեսզի կենտրոնանանք Turso-ի վրա:
Նախագծի դադարեցումը երբեք հեշտ որոշում չէ: Բայց հե՜յ, ավելի լավ է, քան աշխատանքից հեռացնել ձեր անձնակազմի 20%-ին, մեջբերել ինչ-որ հայտնի անձնավորության և դատարկ «Ես լիովին պատասխանատվություն եմ կրում» BS էլ.
Այս հոդվածում ես կցանկանայի մի քանի խոսք ասել այն մասին, թե ինչ սովորություններ են մեզ դրդել դա անել, և որն է ChiselStrike Open Source նախագծի ապագան:
Այն, ինչ մարդիկ սիրում էին ChiselStrike-ի մասին
Մենք այնքան լավ արձագանքներ ենք ստացել մեր կառուցած իրերի վերաբերյալ: Հակիրճության համար առանձնացնեմ հիմնականները.
Ամբողջը TypeScript է
Ի տարբերություն ստանդարտ ORM-ների, ChiselStrike-ը TypeScript-ն է, ոչ թե տվյալների բազայի առաջինը: Մոդելները սահմանված են TypeScript-ում և ավտոմատ չեն ստեղծվում միջանկյալ ներկայացումից: Հաճախորդի API-ի ավելացմամբ, տեսակները տարածվում են ամբողջ տարածքում, ուստի ամեն ինչ անվտանգ է: Միգրացիաներ չկան.
Մշակողի փորձը մեծ է
Կառուցված SQLite-ի վրա՝ հեշտ է սկսել տեղական մակարդակում, և կարիք չկա այն միացնելու արտաքին տվյալների բազաներին, բարդ կարգավորումներին և այլն:
Բացի այդ, երբ դուք ունեք TypeScript դասի ռեժիմ, .crud()
-ն այն ամենն է, ինչ ձեզ հարկավոր է ամբողջական CRUD REST API ստեղծելու համար: Դուք պատրաստ եք գնալ վայրկյանների ընթացքում:
Ինչը մարդկանց դուր չեկավ ChiselStrike-ում
Այնուամենայնիվ, մենք միանշանակ արձագանք ենք ստացել որոշ բաների մասին, որոնք այնքան էլ ճիշտ չէին:
Փախուստի լյուկ չկա
Որքան էլ որ մենք գովասանք ստացանք մեր աբստրակցիաների համար, մշակողները ճնշող մեծամասնությամբ մեզ ասացին, որ կցանկանային անհրաժեշտության դեպքում իջնելու SQL շերտը: Սա libSQL-ում մեր ներդրումների հիմնական շարժիչ ուժերից մեկն է որպես բաց կոդով նախագիծ, և Turso-ն որպես այդ հիմքի վրա կառուցված արտադրանք:
Շփոթեցնող է հասկանալ, թե որտեղ է աշխատում իմ կոդը
Անսերվերը դառնում է երկրորդ բնույթ վեբ մշակողների համար: Մեր սկզբնական նպատակն էր, որ մշակողները տեղակայեին իրենց հավելվածը իրենց սիրելի առանց սերվերի հարթակում, իսկ «backend կոդը», որը ապրում է տվյալների հետ միասին՝ ChiselStrike հարթակում:
Բայց դա անմիջապես հարցեր առաջացրեց այն մասին, թե որ կոդը ուր է գնում: Կարո՞ղ եմ ChiselStrike-ը տեղակայել որպես իմ Next.js նախագծի մաս: Հարթակում մարդկանց թույլ տված երկու ամենատարածված սխալներն էին իրենց ամբողջ վեբ հավելվածը տեղակայելը կամ փորձել ավելացնել ChiselStrike կոդը, որը կտեղակայվի Vercel-ում, Netlify-ում կամ Cloudflare-ում առանց սերվերի գործառույթների միջոցով:
Մեր ChiselStrike Open Source backend նախագծի ապագան
Մենք դեռ պահպանում ենք Open Source նախագիծը, բայց միայն այն մարդկանց համար, ովքեր ցանկանում են ինքնուրույն հյուրընկալել այն: Fly.io-ն և Digital Ocean-ը դրա համար հիանալի հարթակներ են կամ ցանկացած ենթակառուցվածք, որտեղ դուք մուտք ունեք սերվեր:
Քանի որ մենք ի սկզբանե կապում էինք կոդը և տվյալները մեր ճարտարապետության մեջ, ChiselStrike-ը տեղադրում է TypeScript գործարկման ժամանակ (Deno):
Այլևս չհոսթինգ կոդը և կենտրոնանալ բացառապես տվյալների բազայի շերտի վրա, առաջարկում է նաև մի քանի շատ գայթակղիչ հնարավորություններ:
Նախ, մենք կարող ենք պարզեցնել տվյալների բազայի արտադրանքը՝ հեռացնելով Deno-ն build-ից և հենվելով արտաքին գործարկման ժամանակի վրա: Գործարկման ժամանակի համադրումը նույն գործընթացում, ինչ տվյալների բազան, թեև կատարման համար հիանալի է, բայց դրանք շատ մոտ է կապում այն ճկունության համար, որն անհրաժեշտ է առաջ շարժվելու համար: Փոխարենը, ծրագրավորողները կարող են ապավինել այլ ծայրամասային արտադրանքներին, ինչպիսին է Cloudflare-ը՝ գործարկելու իրենց հետին պլանի կոդը:
Երկրորդ, մենք կարող ենք տվյալների բազայի մեջ ներդնել անվտանգության նոր շերտ, որը թույլ է տալիս առջևի կոդերն ուղղակիորեն հարցումներ կատարել տվյալների բազայի վրա՝ հնարավորինս լավագույն եզրային կատարումը ստանալու համար՝ առանց խախտելու հավելվածի տվյալների ամբողջականությունը:
Վերջնական խոսքեր մեր բոլոր հավատարիմ ծրագրավորողներին
Մենք դեռ հույս ունենք, որ դուք կշարունակեք օգուտ քաղել ChiselStrike Open Source backend-ից՝ ձեր backend-ների ստեղծումը հեշտացնելու համար: Եվ եթե դուք դեռ չեք միացել մեր Discord-ին, մենք դեռ այնտեղ ենք:
Եվ եթե ձեզ դուր եկավ այն, ինչ մենք արել ենք մինչ այժմ, մենք վստահ ենք, որ դուք նույնպես կսիրեք Turso-ին: Turso-ն այժմ մասնավոր բետա փուլում է, և դուք կարող եք միանալ մեր սպասողների ցուցակին: