Kalo te përmbajtja

Standardet

Pjesët që nuk varen nga kush po shikon

Kushdo mund ta përshkruajë mënyrën si punon në një bisedë të parë. Ky është versioni që shkruhet para bisedës, vlen për çdo bashkëpunim dhe mund të kontrollohet në kod ndërsa ju shikoni. Kur një standard ka një kufizim real, edhe kufizimi është në këtë faqe.

Portat e cilësisëçfarë ekzekuton çdo ndërtim, lokalisht
Kontrollet që ekzekuton çdo projekt reference, sipas fazës, për këtë faqe, aplikacionin web të Whenbird dhe API-në e Whenbird. Ekzekutohen lokalisht. Çdo kontroll lidhet me provën e tij.
Kjo faqeWhenbird webWhenbird API
kontrolli i tipevetsc --noEmit
testetvitest, axe, JS-offvitest, axevitest
ndërtiminext build
publikimithroughbolt.comwhenbird.comapi.whenbird.com

Vetëm ndërtimet web: ende nuk është publikuar asnjë studim për celular. Si kontrollohen ndërtimet për dyqanet

Dorëzimi

Si drejtohet puna

Këto janë standardet me të cilat ndërtohen produktet tona. Një bashkëpunim i trashëgon sepse ndërtohet mbi të njëjtat baza, jo sepse u shkruan për një propozim.

  • Shtrirja e punës shkruhet para se të fillojë puna

    Një dokument me shtrirje fikse të punës — çfarë dorëzohet, etapat, çmimi, struktura e pagesave — i miratuar para se të shkruhet ndonjë rresht kodi. Çmimi nuk ndryshon, nëse nuk ndryshon shtrirja, dhe çdo ndryshim i shtrirjes çmohet dhe pranohet me shkrim para se të ndërtohet.

  • Çdo javë merrni një version të gjallë

    Një adresë që e hapni dhe e përdorni, çdo javë, që nga java e parë — ose një version që instalohet, kur projekti është aplikacion celular. Jo raport statusi dhe jo prezantim. Ekziston që një projekt të mos dështojë në heshtje për dy muaj: rasti i parë për të thënë “nuk është kjo që donim” është java e parë, kur ndryshimi është ende i vogël.

  • Kontrollet ekzekutohen lokalisht para se të regjistrohet diçka

    Kontrolli i tipeve, testet e njësive, linting-u dhe një kontroll i rregullsisë së importeve janë të regjistruara si konfigurim workflow-i dhe ekzekutohen në të gjithë monorepo-n para se të regjistrohet puna. Një kontroll që nuk është ekzekutuar trajtohet si kontroll që ka dështuar — përfshirë tonat.

    Kontrollet ekzekutohen lokalisht, çdo commit tregon cilat u ekzekutuan, dhe i ekzekutojmë përsëri përpara jush në bisedë.

  • Aksesueshmëria është portë kontrolli, jo shqyrtim

    Kontrollet automatike WCAG 2.1 A/AA ekzekutohen mbi çdo faqe publike me tolerancë zero — një shkelje e rrëzon ekzekutimin. Aty ku mjetet automatike nuk e shohin dot një kriter, mangësia shënohet në vetë skedarin e testit, që askush të mos e ngatërrojë jeshilen me të plotën.

    Dy kufizime që ia vlen t'i themi. Mjetet automatike mbulojnë afërsisht një të tretën e WCAG — janë një minimum, jo certifikatë, dhe vetë grupi i testeve e thotë këtë. Dhe në këtë repozitor kontrolli ekzekutohet sipas kërkesës, jo në çdo push, sepse workflow-i që e përfshin ende nuk ka asnjë shkas që aktivizohet. Shkruante “rrëzon ndërtimin” derisa dikush kontrolloi cilat ndërtime kishte rrëzuar në të vërtetë.

    for (const route of ROUTES) {
      test(`${route} has no detectable WCAG A/AA violations`, async ({
        page,
      }) => {
        await page.goto(route);
        await settleAnimations(page);
        const results = await new AxeBuilder({ page })
          .withTags(["wcag2a", "wcag2aa", "wcag21a", "wcag21aa"])
          .analyze();
    
        expect(
          results.violations,
          results.violations
            .map((v) => `${v.id} (${v.impact}): ${v.help}`)
            .join("\n")
        ).toEqual([]);
      });
    }
    Fig. 1 · web/throughbolt/tests/e2e/a11y.spec.ts, rreshtat 106–123Kontrolli i aksesueshmërisë: një ekzekutim axe për çdo faqe publike, që dështon me çdo shkelje
  • Objektivat e performancës janë numra, jo mbiemra

    Largest Contentful Paint, Cumulative Layout Shift dhe Total Blocking Time kanë pragje të shkruara me të cilat matet një ndërtim, në vend të një premtimi se do të duket i shpejtë. Numrat janë në repozitor, ku mund t'i lexoni dhe të na kërkoni llogari për to.

    Sot maten sipas kërkesës, jo në çdo commit — workflow-i që i mban këto buxhete ekziston, por ende nuk është lidhur me një shkas që aktivizohet. Preferojmë ta themi këtë sesa t'ju tregojmë një distinktiv.

  • Përputhshmëria me dyqanet vlerësohet para dorëzimit

    Kur një projekt publikohet në një dyqan aplikacionesh, ndërtimet vlerësohen sipas Udhëzimit 4.3 të Apple dhe rregullave të Play për veçantinë, me një rubrikë të publikuar dhe një prag numerik që duhet kaluar para se të dorëzohet diçka. Refuzimi është rrezik për afatet, ndaj trajtohet gjatë ndërtimit, jo zbulohet gjatë shqyrtimit.

  • Historia është e shqyrtueshme

    Commit-e konvencionale, një çështje për çdo commit, dhe një arsyetim i shkruar në trupin e commit-it për çdo gjë që nuk është e qartë vetvetiu. Ju po blini një kod që dikush tjetër do ta mirëmbajë një ditë — arsyetimi duhet t'i mbijetojë bashkëpunimit.

Pronësia

Çfarë mbani ju, që nga dita e parë

Çdo pikë këtu është menduar që përfundimi i bashkëpunimit të jetë një vendim, jo një ngjarje.

  • Kodi dhe infrastruktura janë në llogaritë tuaja

    Repozitorët, cloud-i, llogaritë e dyqaneve të aplikacioneve dhe të palëve të treta janë tuajat që në fillim, jo të transferuara në fund. Mund të na hiqni aksesin sot pasdite dhe të vazhdoni të publikoni.

  • Pipeline-i është i regjistruar, jo i mbajtur mend

    Hapat e ndërtimit, proceset e publikimit, monitorimi dhe alarmet — dhe dorëzimi në dyqan, kur projekti publikohet në një të tillë — janë konfigurim në repozitorin tuaj: të shqyrtueshme, të ekzekutueshme dhe të transferueshme pa ne. Asgjë thelbësore nuk qëndron në kokën e dikujt apo në një panel privat.

  • Puna bëhet e juaja ndërsa paguhet

    Të drejtat për çdo etapë kalojnë te ju kur paguhet fatura e saj; deri atëherë mund ta shqyrtoni dhe ta testoni. Mjetet që sjellim me vete vijnë me një licencë të përhershme, pa honorare, për projektin tuaj, kështu që nuk ka lidhje të detyruar me hosting-un, nuk ka tarifë për përdorues më pas dhe nuk ka asnjë komponent për të cilin duhet të vazhdoni të na paguani.

  • Partneritetet përfundojnë me njoftim 30 ditë përpara

    Minimumi tre muaj, pastaj muaj pas muaji, me njoftim 30 ditë përpara nga secila palë dhe pa rritje automatike të tarifës. Përfundimi përfshin një dorëzim të dokumentuar të projektit dhe të historisë së tij operative.

Siguria dhe të dhënat

Çfarë kërkojmë, dhe çfarë nuk mbajmë

Përgjigjet e ndershme për pyetjet që bën një shqyrtim sigurie, përfshirë ato ku përgjigjja është jo.

  • Aksesi është i kufizuar dhe mund të revokohet

    Punojmë në llogaritë tuaja, nën ofruesin tuaj të identitetit, me rolin më të ngushtë që e kryen punën, dhe kërkojmë kredenciale prodhimi vetëm aty ku puna i kërkon vërtet. Aksesi listohet në dokumentin e shtrirjes së punës, që të dini saktësisht çfarë është dhënë.

  • Kodi dhe të dhënat e klientit mbeten në sistemet e klientit

    Nuk e kopjojmë kodin burimor të klientit apo të dhënat e klientëve të tij në infrastrukturën tonë për lehtësi, dhe nuk mbajmë asnjërën pas përfundimit të bashkëpunimit, përveç asaj që një marrëveshje e nënshkruar na detyron të ruajmë.

  • Puna përtej kapacitetit tuaj mbetet nën NDA dhe pa markën tonë

    Dorëzimi white-label nën markën tuaj mbetet nën markën tuaj. Nuk publikojmë, nuk përmendim dhe nuk listojmë punë të bëra nën një NDA, dhe e nënshkruajmë NDA-në tuaj në vend që t'ju kërkojmë të pranoni tonën.

  • Kjo faqe nuk mbledh asgjë

    Pa analitikë, pa gjurmues reklamash, pa piksela gjurmimi, pa cookie marketingu dhe pa skripte të palëve të treta. Fontet hostohen vetë gjatë ndërtimit, kështu që ngarkimi i kësaj faqeje nuk i dërgon kërkesë askujt tjetër. Prandaj nuk ka banner për cookie — nuk ka asgjë për të pranuar.

  • Nuk kemi certifikime sigurie

    Pa SOC 2, pa ISO 27001, pa Cyber Essentials. Nëse procesi juaj i prokurimit kërkon një të tillë, sot nuk jemi ofruesi i duhur për ju — dhe është më mirë ta mësoni këtu sesa katër javë pas fillimit të një shqyrtimi.

    E themi qartë, sepse një ofrues që është i paqartë për këtë ju kushton ato katër javë.

Angazhimet

Çfarë nuk do të bëjmë

Çfarë refuzon të bëjë një kompani nën presion tregtar tregon më shumë sesa çfarë thotë se vlerëson, ndaj këto janë shkruar si refuzime. Secili prej tyre na kushton diçka, dhe vetëm për këtë ia vlen të lexohet.

  • Nuk do të shpikim prova sociale. Asnjë logo klienti, dëshmi, vlerësim, numër përdoruesish apo notë nuk shfaqet në këtë faqe, përveç nëse është e vërtetë dhe me burim të identifikueshëm — dhe asnjë nuk është.
  • Nuk do t'ju dërgojmë faturë që nuk e keni pranuar paraprakisht. Ndryshimet e shtrirjes së punës çmohen dhe pranohen para se të ndërtohen, kurrë nuk rregullohen më pas.
  • Nuk do të marrim një bashkëpunim për të cilin nuk jemi të duhurit. Një “nuk ju duhemi” i drejtpërdrejtë në bisedën e parë është përfundim normal dhe nuk ju kushton asgjë.
  • Nuk do të vazhdojmë të faturojmë një partneritet që e keni tejkaluar. Nëse muajt vërtet të qetë përsëriten, hapi i ndershëm është tarifa për orë sipas nevojës, dhe më mirë humbasim një zë në faturë sesa të ndiheni të pakënaqur me të.
  • Nuk do ta fshehim çmimin. Çdo tarifë publikohet para se të flisni me dikë, sepse një shifër që duhet ta kërkoni është shifër që varet nga sa duket se mund të paguani.

Hapi tjetër

Kontrollojeni, mos e merrni me fjalë

Çdo standard më sipër zbatohet në një repozitor që mund ta shfaqim në ekran. Sillni dy që ju interesojnë më shumë dhe do t'ju tregojmë konfigurimin që i zbaton, herën e fundit që secili dështoi, dhe çfarë ndodhi më pas. Tarifat janë te çmimet; kushtet që rregullojnë një bashkëpunim janë në shtrirjen e nënshkruar të punës, jo në këtë faqe, dhe kushtet e përdorimit të vetë faqes janë të ndara nga të dyja.

Nisni një projekt

Ju përgjigjemi brenda një dite pune.