Za grupe i više brendova
Više kompanija, jedna instalacija, bez zajedničkih kupaca
Grupe to obično rješavaju dva puta loše: ili pet odvojenih instalacija i pet odvojenih svega, ili jedna instalacija i svečano obećanje da će aplikacija uvijek ispravno filtrirati. Prvo je skupo. Drugo je obećanje, a obećanja nisu sigurnosni model.
Ako vodite više od jedne kompanije — holding sa podružnicama, franšizu, dva brenda usmjerena na različita tržišta, agenciju i stvar koju je agencija izdvojila — Već znate oblik problema. Brendovi dijele ljude, alate i finansijski odjel. Ne dijele kupce, i ne smiju se činiti da ih dijele.
iKonekt vodi sve njih iz jedne instalacije, a razdvajanje između njih čuva baza podataka, a ne kod. Ta razlika zvuči akademski dok ne dođe dan kada nije.
Zašto je sloj važan
Filter na nivou aplikacije je rečenica u upitu. Radi dok god svaki upit koji će ikada biti napisan sadrži tu rečenicu — uključujući onaj napisan u žurbi, onaj napisan od strane novog programera, i onaj napisan za izvještaj koji je trebao biti iskorišten samo jednom.
Pomjerite granicu u bazu podataka i aritmetika se obrće. Pravilo se izvršava na svakom čitanju i svakom pisanju, ispod svega. Upit koji zaboravi kompaniju ne vraća pogrešne redove; ne vraća ništa. Način greške postaje prazan ekran i zbunjen programer, a to je ispravan način greške.
Prazni ekrani su funkcija. Radije ćemo objasniti prazan ekran jednom od naših inženjera nego objasniti spisak kupaca dva klijenta koji se nisu očekivali sresti.
- 1Kupci & nitiOgraničeno. Prodavac iz brenda A ne može pristupiti brendu B — po samoj konstrukciji, a ne po konfiguraciji.
- 2Zahtjevi na kupca„Ovaj račun već imamo
- 3Promptovi i postavkeSvaka kompanija uređuje svoje. Jedino mjesto na kojem je ovo ikada dijeljeno bila je greška, i to je greška na čije je pronalaženje ovaj sistem najponosniji.
- 4Partnerski programiModul po kompaniji, a ne globalni koji svi nasljeđuju.
Granica nametnuta ispod aplikacije
Šta grupa zaista može dijeliti
Odvojenost nije izolacija zarad izolacije. Stvari vrijedne dijeljenja unutar grupe dijele se namjerno, a to su uglavnom one dosadne — što je upravo ispravno, jer baš u dosadnim leži udvostručeni trošak:
- Jedna instalacija za pokretanje i ažuriranje. Jedna implementacija, jedan set pristupnih podataka o kojima se vodi briga, jedna stvar koju treba držati zakrpljenom.
- Jedan tim ljudi s različitim ulogama. Osoba može raditi u više od jedne kompanije; ono što ne može jeste vidjeti obje istovremeno kroz upit koji je zaboravio pitati.
- Jedan set navika. Način na koji se dodjeljuje potencijalni klijent, način na koji se piše zapis, način na koji posao postaje faktura — nauči se jednom, primjenjuje svugdje, što uvježbavanje skraćuje na otprilike jedno jutro.
- Jedan odnos s ostatkom porodice. castomAPI u pozadini, isti račun, isti konektori — podešeni po kompaniji tamo gdje je to bitno.
Pitanje koje grupa uvijek postavlja drugo
„Možemo li izvještavati preko svih njih?“ Da — iz vlastite perspektive grupe, namjerno i eksplicitno, a ne kao posljedica propusne granice. Ta razlika je cijeli dizajn: prelazak preko linije mora biti čin koji je neko svjesno izvršio, s ovlaštenjem da to uradi. Nikada ne smije biti nešto što slučajno učini zalutali identifikator.
A pitanje koje postavljaju treće: „šta se dešava ako prodamo jedan od brendova?“ Granicu koju baza podataka drži moguće je i presjeći tako da se izvadi čista kopija. To nije slučajnost — odvojenost i prenosivost su isto svojstvo gledano s dva različita sastanka.
Ispod poda
Šta konkretno čuva granicu
Nije tvrdnja, nego lista. Ako dobavljač ne može proizvesti ovu listu o vlastitom proizvodu, to vrijedi primijetiti.
26
Tabele koje nose svoju kompaniju, s provjerom nametnutom, a ne samo dostupnom.
72
Pravila, zapisana jedno po jedno tako da je svako pročitao čovjek, a ne generisano u petlji.
942
Testovi, pokrenuti nad bazom podataka izgrađenom od nule svaki put kada se išta promijeni.
0
Zadane kompanije. Zahtjev bez opsega baca grešku prije nego što dopre do podataka — nema rezervne postavke koju neko zaboravi isključiti.

„Pet kompanija, pet instalacija, pet faktura od vas.“
Jedna instalacija. Pet granica koje baza podataka drži.
Dijeljeni ljudi, dijeljene navike, dijeljena platforma — a nijedan dijeljeni klijent. Prelazak te linije mora biti nešto što je osoba učinila namjerno, nikada nešto što je identifikator uspio slučajno.
Kako je odvojenost izgrađena →