Ի՞նչ ենք մենք սովորել 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-ն այժմ մասնավոր բետա փուլում է, և դուք կարող եք միանալ մեր սպասողների ցուցակին: