iKonekt
Hapni konsolën

Ndarja

Kufiri që e mban baza e të dhënave, jo kodi

Çdo CRM pretendon se është me shumë qiradhënës. Pretendimi është i lirë; ajo që ka rëndësi është cili shtresë mban vijën. Nëse përgjigja është „aplikacioni ynë gjithmonë shton filtrin e duhur", atëherë garantimi është vetëm aq i mirë sa zhvilluesi më i plogësht që ka shkruar ndonjëherë një kërkese.

iKonekt ishte me shumë qiradhënës që nga migrimi i saj i parë, jo i shtuar më pas — çka tingëllon si mburrje dhe është në fakt një pranim: shtimi i tij më pas është pothuajse i pamundur të bëhet bindshëm, dhe të gjithë ata që e kanë provuar kanë një histori.

Ndarja jeton në bazën e të dhënave. Secila nga njëzet e gjashtë tabelat mban qiradhënësin të cilit i përket, dhe politika që e verifikon ekzekutohet në çdo lexim dhe çdo shkrim, plotësisht nën aplikacion. Një kërkese që harron kufirin nuk kthen klientët e dikujt tjetër. Ajo nuk kthen asgjë.

Siguria në nivel rreshti, e detyruar

Jo një konventë, jo një rregull rishikimi kodi. Baza e të dhënave refuzon. Shtatëdhjetë e dy politika, të shkruara njëra pas tjetrës dhe jo të gjeneruara — sepse një politikë e gjeneruar është një politikë që askush nuk e ka lexuar.

Çelësa të përbërë

Një regjistrim i lidhur referon qiradhënësin e tij dhe prindin e tij së bashku, si çift. Një identifikues i humbur nga kompania e gabuar nuk zgjidhet — thjesht nuk është një referencë e vlefshme.

Asnjë qiradhënës parazgjedhje, kurrë

Një kërkesë pa fokus nuk bëhet në heshtje një kërkesë për qiradhënësin zero. Ajo hidhet para se të arrijë bazën e të dhënave. Nuk ka mënyrë „pa fokus" që dikush të harrojë ta fikë.

Defekti që nuk mund të shpallte veten

Ndërsa puna e qiradhënësve ishte në zhvillim, shumica e gabimeve ishin të zhurmshme. Jepni dy kompanive të njëjtin domain klienti dhe baza e të dhënave kundërshton menjëherë, me kod gabimi dhe gjurmë stack; e rregulloni para drekës.

Një nuk kundërshtoi. Një tabelë me mbishkrimet e redaktueshme të udhëzimeve ishte e kyçur vetëm mbi llojin e udhëzimit — jo mbi llojin dhe qiradhënësin. Një kompani e dytë që redaktonte kopjen e vet do ta kishte mbishkruar në heshtje atë të kompanisë së parë, përmes SQL plotësisht të vlefshëm, pa gabim, pa paralajmërim dhe pa test që dështonte. U gjet duke lexuar çdo indeks unik të mbetur pas ndryshimit të një kyçi, njëra pas tjetrës, me dyshimin se ato të zhurmshmet kishin shoqëri.

E përmendim sepse është forma e sinqertë e kësaj pune. Ndarja nuk është një veçori që e aktivizoni; është një zakon i leximit të pjesëve të mërzitshme të skemës me supozimin se diçka aty nuk pajtohet me ju.

Testet, për të dhënën: 942 prej tyre, të ekzekutuara kundrejt një baze të rindërtuar nga zero në çdo ndryshim. Ato nuk janë aty për të provuar se dizajni është i zgjuar. Ato janë aty sepse mënyra e dështimit të këtij dizajni të veçantë është e heshtur, dhe dështimet e heshtura kanë nevojë për dikë që bërtet në emër të tyre.

Çfarë i sjell ndarjes një njeriu normal

  • Një grup mund të drejtojë disa kompani nga një instalim i vetëm, dhe një shitës në njërën nuk do të shohë kurrë një klient të tjetrës — jo nga politika, nga ndërtimi.
  • Një program partnerësh, një grup udhëzimesh, një pretendim mbi një klient: të gjitha me fokus për kompani, kështu që konfigurimi i një qiradhënësi nuk mund të bëhet i të gjithëve.
  • Një kërkesë fshirjeje nderohet brenda një kufiri dhe jo përgjatë një grumbulli të përbashkët, çka e bën të mundur përgjigjen e sinqertë.
  • Dhe askush nuk duhet ta mbajë mend asnjërën. Kjo është thelbi — një garantim që varet nga të mbajturit mend nuk është garantim.

Edhe një rresht që nuk ka të bëjë me bazat e të dhënave

Çdo shërbim vëllazëror në familje mban kredencialin e vet të emërtuar. Asgjë nuk flet me një të përbashkët, kështu që asnjë shërbim nuk mund të veprojë aksidentalisht si tjetri — një disiplinë e vogël që erdhi drejtpërdrejt nga fakti që dikur kishim pasur një token të përbashkët dhe nuk e patëm kënaqësi.

Është i njëjti instikt si rregulli i bazës së të dhënave. Bëjeni të pamundur atë të gabuarin në vend të të dekurajuarit, dhe e shpenzoni vëmendjen tuaj te klientët në vend të vigjilencës.

KufiriNën aplikacion
  • 126 tabelaSecila mban qiradhënësin e saj, me kontrollin e detyruar.
  • 272 politikaTë shkruara individualisht, kështu që secila është lexuar nga një njeri.
  • 3942 testeKundrejt një baze të rindërtuar nga zero, në çdo ndryshim.
  • 40 qiradhënës parazgjedhjeNjë kërkesë pa fokus nuk arrin kurrë te të dhënat.

Matur në versionin e punuar në mënyrë të gjallë

«Aplikacioni ynë gjithmonë filtron sipas kompanisë.»

Fjala «gjithmonë» bën shumë punë në atë fjali.

Zhvendoseni kufirin poshtë, në bazën e të dhënave, dhe një klauzolë WHERE e harruar kthen asgjë në vend të klientëve të dikujt tjetër. Një ekran bosh është një dështim më i mirë sesa një njohje e sikletshme.

Për grupet me disa marka →