დრო დადგა: Wasp 1.0 ოფიციალურად მუშავდება! სავარაუდო ვადა: ~6 თვე.
ფრეймვორკის წლებით ჯერ კიდევ ახალგაზრდა მიუხედავად, Wasp უკვე საკმაოდ დიდი ხანია არსებობს (>5 წელი), აქვს 100-ზე მეტი релиз, მომხმარებლის ისტორიები სტარტაპებიდან Fortune 500 კომპანიებამდე, მოზიდული $5M დაფინანსება და ამჟამად 8 კაციანი გუნდი, რომელიც იზრდება, პლუს ჩვენი საზოგადოების შესანიშნავი ადამიანები (waspeteers).
და მიუხედავად ამისა, წლების განმავლობაში Wasp Beta-ში ვტოვებდით. წაიკითხეთ, რათა გაიგოთ რატომ, რა შეიცვალა და რა უნდა მოელოდოთ 1.0-ისგან.
გსურთ ელფოსტა, როცა Wasp 1.0 გამოვა? გამოიწერეთ აქ.
Beta-ს თავისუფლება
დიდი ხანი არ გვქონდა ზუსტი ფუნქციების ნაკრები, რომლის მიხედვითაც შევძლებდით ვთქვათ, რომ Wasp უკვე 1.0 არის.
თუმცა ყოველთვის ვიცოდით, რა გვინდოდა, და გვჯეროდა, რომ მივაღწევდით მას და ამოვიცნობდით: ვებ-აპლიკაციების აწყობის ყველაზე „fullstack-ული“, მართული გამოცდილება, რომელიც არსებობს. გამოცდილება, როდესაც წერ მხოლოდ იმ კოდს, რომელიც გაინტერესებს, იმ დეტალურობით, რომლითაც გსურს, ხოლო დანარჩენს შენ მაგიერ ვინმე აკეთებს. ყველაფერი გამოხატულია მხოლოდ კოდით, მოქნილად, უფასოდ და მარტივად სადმე გასატანად.
ამან Wasp-ის დიზაინისას რამდენიმე არატრადიციულ არჩევანამდე მიგვიყვანა:
- შევქმენით საკუთარი, დეკლარატიული ენა ვებ-აპლიკაციის მაღალ დონეზე აღსაწერად ("Spec") და საკუთარი კომპილატორი. (პსსტ, ეს გარკვეულწილად შეცდომა იყო).
- ჩვენი "full-stack"-ის განმარტება უფრო ფართოა,ვიდრე JS ფრეймვორკებში ჩვეულებრივად, და მოიცავს frontend-ს, backend-ს, მონაცემთა ბაზასა და დეპლოის, და ყველაფერს, რაც ამ შორის არის.
- მიუხედავად იმისა, რომ ამჟამად React + Node + Prisma-ზეა დაფუძნებული, ძირითადი მექანიზმი ყოველთვის იყო შექმნილი იმისთვის, რომ მომავალში სხვა სტეკების მხარდაჭერა დაემატოს, დიდწილად ზემოთ ნახსენები Spec-ისა და კომპილატორის წყალობით.
Beta-ში ყოფნამ მოგვცა თავისუფლება, შეგვესწავლა ყველა ეს კონცეფცია ფრეймვორკის >=1.0 ვერსიის შენარჩუნების წონისა და პასუხისმგებლობის გარეშე (თუმცა Beta-შიც უკვე ბევრი „production“ პრაქტიკა დავიცავით: სწორედ თქვენ, გამბედავო ადამიანებო, ვინც ვერ შეძელით შეკავება და production-ში დეპლოი გააკეთეთ).
მზად 1.0-ისთვის
რა ხდის Wasp-ს ახლა 1.0-ისთვის მზად? ამდენი დროის შემდეგ, ვბედავ ვთქვა, რომ სურათი გაცილებით ნათელი გახდა.
- ვიპოვეთ სწორი ფორმა "Spec"-ისთვის (ჩვენი საკუთარი ენიდან TypeScript-ზე გადავედით) ისე, რომ არ დავთმეთ ჩვენი ხედვა (ეს დიდი ნაბიჯი იყო!).
- გამოვიმუშავეთ ინტუიცია, როგორ დავაბალანსოთ მართული გამოცდილება მოქნილობასთან.
- შევაგროვეთ დიდი რაოდენობით უკუკავშირი Wasp-ის ყველა მთავარ ფუნქციაზე (Auth, RPC, Jobs, Routing, API, Entities, Deployment და სხვ.) და ვიცით, რას აფასებენ ადამიანები და როგორ მივაღწიოთ მას.
- ახლა სრულად ვართ ვალდებულნი, გავაცოცხლოთ Full Stack Modules, ეს არის გვირგვინი იმ "fullstack-ული" გამოცდილებისთვის, რომელსაც ვისწრაფვით.
ახლა ზუსტად ვხედავთ გზას Wasp 1.0-მდე, რომელიც GitHub-ის issue-ებით არის მოგებული, და ის სწორად გრძნობს თავს.
როადმეპი
ზუსტი როადმეპი შეგიძლიათ ნახოთ GitHub-ზე.
ის შედგება epic-ებისგან, და თითოეული მათგანი შემდეგ იშლება ქვე-epic-ებად და კონკრეტულ issue-ებად.
დაახლოებით, epic-ები შეგვიძლია დავყოთ შემდეგად:
- ზოგადი გაპრიალება (DX).
- ძირითადი ფუნქციების გადამუშავება (Routing, Auth, RPC და სხვ.).
- production-მზადყოფნის სამუშაოები (core deps-ის პოლიტიკა, perf/scaling დოკუმენტაცია, native Win მხარდაჭერა და სხვ.).
- ახალი ფუნქციები (Full Stack Modules, RBAC და სხვ.).
ზოგადი გაპრიალება (DX)
Beta-ს პერიოდში ბევრ ყურადღებას ვუთმობდით იდეების შექმნასა და ტესტირებას, და ხშირად მათ უპირატესობას ვანიჭებდით უხეში კიდეების გასწორებაზე.
თუმცა, როცა ისინი გროვდება, უხეში კიდეები მაღიზიანებელი ხდება, ამიტომ 1.0-ისთვის ერთ-ერთი დიდი ამოცანათა ჯგუფი არის მრავალი მცირე, მიზანმიმართული გაუმჯობესება, ძირითადად DX-ზე ორიენტირებული.
მათ შორისაა: Wasp-ის უკეთესად მუშაობა agent orchestrator-ებთან, უფრო კარგი გამოტანა ტერმინალში, უკეთესი დოკუმენტაცია, უფრო სწრაფი npm install და სხვ.
დეტალებისთვის ნახეთ Epic #2884.
ძირითადი ფუნქციების გადამუშავება
იდეები, როგორ გავაუმჯობესოთ Wasp-ის თითოეული ძირითადი ფუნქცია (Auth, RPC, Jobs, Email Sender, WebSockets, API, Deployment და სხვ.), არასდროს გვაკლდა, მაგრამ ბევრი მათგანის პრიორიტეტიზება რთული იყო, რადგან ვმუშაობდით უფრო დიდ, ფრეймვორკის მასშტაბის გაუმჯობესებებზე (მაგ. Spec).
1.0-ისთვის თითოეულს ახალ დონეზე ავიყვანთ! ბევრი იდეა უკვე ძალიან detalურად არის ჩაწერილი შესაბამის GitHub issue-ებში, და მაშინ როცა ზოგიერთ ფუნქციას მხოლოდ მცირე შეხება დასჭირდება, ზოგი დიდ გადამუშავებას გაივლის.
მაგალითად, Auth გადავა Lucia-დან და დაემატება ძალიან მოთხოვნადი ფუნქციები, როგორიცაა ანგარიშების გაერთიანება, 2FA, magic links, passkeys და სხვ. ასევე, ახლანდელი მდგომარეობით, თითქმის აუცილებლად მას უფრო მოდულურ იმპლემენტაციად გადავაქცევთ, რომელიც, Wasp Auth-თან ერთად, საშუალებას მისცემს გამოიყენოთ BetterAuth, Clerk, WorkOS ან ნებისმიერი სხვა auth provider, რომელიც შეძლებს ჩვენი auth ინტერფეისის იმპლემენტაციას.
კიდევ ერთი დიდი ნაწილი არის Deployment: ვცდილობთ, გავამარტივოთ wasp build, რომ მან ერთი სერვერი გამოიტანოს, რაც ბევრ სხვა რამეს გახსნის. ასევე ვიკვლევთ ყველაზე მარტივ ვარიანტს Wasp აპლიკაციების უფასო ჰოსტინგისთვის და მას დავამატებთ ერთ-ერთ ვარიანტად ჩვენს ერთბრძანებიან დეპლოიში: wasp deploy <provider>, ხოლო ამავდროულად მიმდინარე ვარიანტებს (Fly, Railway) უფრო მდგრადს გავხდით.
სრული სიისთვის ნახეთ 1.0-ისთვის დაგეგმილი მთავარი ფუნქციები ჩვენს როადმეპში.”
production-მზადყოფნის სამუშაოები
ეს არის არაფუნქციონალური, კონკრეტულ ფუნქციასთან არდაკავშირებული ამოცანები, რომლებიც Wasp-ს იმ დონეზე მიიყვანს, რომელსაც >=1.0 ფრეймვორკისგან ველით.
ერთ-ერთი დიდი არის core deps-ის პოლიტიკა: 1.0-იდან ჩვენ გვექნება მკაცრი წესი იმის შესახებ, რამდენად ახალი ვინარჩუნებთ ძირითად დამოკიდებულებებს (მაგ. არასდროს იყოს უახლესზე 6 თვეზე მეტით ჩამორჩენილი, რაც განაახლებს ჩვენს კოდს და ამავდროულად თავიდან აგვაცილებს bleeding-edge პრობლემებს).
შემდეგ არის დოკუმენტაცია წარმადობასა და მასშტაბირებაზე: მიუხედავად იმისა, რომ ბევრი ეს მხოლოდ ძირითად სტეკზე (React, Node, Prisma) დგას, ნაწილი Wasp-ისთვისაა სპეციფიკური, და გვსურს, რომ ძალიან ნათლად და გასაგებად ვაჩვენოთ, რა უნდა მოელოდოთ Wasp-ისგან ამ მხრივ.
და ასევე native Windows მხარდაჭერა! Wasp მუშაობს Windows-ზე WSL-ის მეშვეობით, მაგრამ იმის მოლოდინი, რომ ის პირდაპირ Windows-ზე იმუშავებს, 1.0 ფრეймვორკისგან სავსებით ბუნებრივია, არა?
დეტალებისთვის ნახეთ Epic #2888.
ახალი ფუნქციები
და ბოლოს, ინოვაციაზე არ ვიშლებით მხოლოდ იმიტომ, რომ 1.0-ს ვუახლოვდებით.
ამ ნაწილის ვარსკვლავი არის FSM-ები (Full Stack Modules): შესაძლებლობა, განსაზღვრო და გაავრცელო ვებ-აპლიკაციის მოდულური, ვერტიკალური ნაწილები, მაგალითად Stripe გადახდები, ფაილის ატვირთვა, AI ჩატი და სხვ. წარმოიდგინეთ ბიბლიოთეკები, მაგრამ frontend + backend + მონაცემთა ბაზა + Spec + მომავალში ისიც კი დეპლოი, ყველაფერი ტიპიზებული და კონფიგურირებადი. ეს არის ის, რითაც ძალიან ვართ აღფრთოვანებულები და რასაც უკვე საკმაოდ დიდი ხანია თანდათან ვამზადებთ. იდეაზე მეტი დავწერეთ სტატიაში JavaScript still can't ship a full-stack module.
FSM-ები შეიძლება პირველ ხანებში 1.0-ის ნაწილად არ მოგეჩვენოთ, მაგრამ ვხედავთ, რომ ისინი იმდენად ინტეგრალური გახდება იმისთვის, თუ როგორ აიგება Wasp აპლიკაციები, რომ გვინდა, ისინი და მათი გავლენა Wasp-ის API-ზე, 1.0-მდე უკვე იყოს მზად.
სხვათა შორის, ღია ვართ სახელის უკეთესი იდეებისთვის, რადგან LLM-ები მუდმივად ფიქრობენ, რომ ფინიტური ავტომატებზე (Finite State Machines) ვლაპარაკობთ.
და შემდეგ გვაქვს კიდევ რამდენიმე საინტერესო იდეა (უფრო სწორად, პოპულარული მოთხოვნები), როგორიცაა RBAC (Role-Based Access Control), მოდულური მონაცემთა ბაზის ფენა, რომელიც Drizzle-ის მხარდაჭერას მისცემს საშუალებას, Wasp Studio (თქვენი კოდბაზის ვიზუალური წარმოდგენა + Wasp-ის dev ინსტრუმენტები) და სხვ.
ეს უფრო "გაჭიმული მიზნებია" და შესაძლოა 1.0-ში სრულად სტაბილური არ იყოს, მაგრამ ძალიან გვსურს, რომ მაინც ექსპერიმენტულ ფუნქციებად გვქონდეს ისინი იმ დროისთვის.
მათ იპოვით Ideas სვეტში.
შევხვდებით იქ
ამ ყველა გაუმჯობესებას ერთ დიდ რელიზად არ დავტოვებთ; სანაცვლოდ, მუდმივად გამოვუშვებთ მათ, როგორც კი მათ შევიყვანთ, ასე რომ ხშირად მოგვმართავთ და მათგან მაშინვე ისარგებლებთ. როცა ყველას დავასრულებთ, გამოვაცხადებთ Wasp 1.0-ს.
თუ გაქვთ დამატებითი იდეები იმის შესახებ, რის ნახვასაც Wasp 1.0-ში ისურვებდით, გვაცნობეთ ჩვენს Discord-ზე ან GitHub-ზე!
ესაა, დანიშნულება უკვე დაფიქსირებულია: შემდეგი გაჩერება, Wasp 1.0! შევხვდებით იქ!

