- Imigomo ye-SOLID iyisisekelo sesofthiwe elondolozekayo nengakala.
- Umgomo ngamunye ubhekana nesici esibalulekile: ukuhlangana, ukunwetshwa, ukufaka esikhundleni, ukuhlukanisa kanye nokuguquguquka.
- Ukuzisebenzisa ngendlela efanele kusiza ukubambisana, ukuhlola, nokujwayela izinguquko ezizayo.
Ikhwalithi yesofthiwe akuyona into eyenzeka ngenkani noma edlulayo: iyisisekelo lapho kwakhiwe khona noma yimuphi umsebenzi wezobuchwepheshe ofuna ukukhulisa, ukuthuthuka, nokusinda emakethe eshintshayo. Wake walondoloza noma wazama ukuthuthukisa uhlelo lokusebenza ngaphandle kwesakhiwo noma imikhuba emihle? Ngokuqinisekile uyazi ukuthi kunjani ukuthandaza njalo uma uthinta umugqa wekhodi. Yilapho izimiso ze - SOLID zishintsha khona umdlalo: zinikeza isiqondiso esicacile, lapho sisetshenziswa ngokuqonda okuvamile, siguqula izinhlelo ezibuthakathaka nezixubile zibe izixazululo eziqinile ezilula ukuziqonda nokuzigcina ngokuhamba kwesikhathi.
I-SOLID , hhayi nje isifinyezo esikhumbuleka kalula, imelela izimiso ezinhlanu eziyisisekelo ezikwazi ukuguqula ngokuphelele indlela esiklama ngayo amakilasi, amamojula, kanye nezakhiwo ezinhlelweni eziqondiswe ezintweni. Uma usebenza ezweni lokuthuthukiswa, ukuzisebenzisa kumelela ukuguquka kwamaqembu kanye namaphrojekthi ngamanye. Kulesi sihloko, uzothola konke okubalulekile nokuthuthukile mayelana ne-SOLID: umlando wayo, isimiso ngasinye ngokujulile, izibonelo ezisebenzayo, izinzuzo, imikhawulo, kanye nendlela yokuzihlanganisa ukuze kufezwe ikhodi ehlanzekile, evivinywayo, neqinile.
Iyini i-SOLID futhi le ndlela yenzeke kanjani?
I-SOLID ingaphezu nje kwesifinyezo: ihlanganisa izimiso ezinhlanu ezibalulekile ezakha isisekelo sezinhlelo zesimanje ezigxile ezintweni . Lezi zimiso zavela ngasekupheleni kwekhulu lama-20, phakathi kobunzima obukhulayo bezinhlelo zesofthiwe kanye nesidingo esiphuthumayo sokubhekana nezinkinga ezifana nekhodi ye-spaghetti , ukuqina lapho kubhekene noshintsho, kanye nokuhlangana okwesabekayo phakathi kwezingxenye.
Imvelaphi yalo mbono isukela emuva ku-2000, lapho uRobert C. Martin —owaziwa ngokuthi uMalume Bob — ehlanganisa izincomo eziningana esihlokweni sakhe esinethonya esithi “Design Principles and Design Patterns,” ngokusekelwe kokuhlangenwe nakho kwakhe kanye nokubona ukwehluleka okuphumelelayo nokukhulu. Ngemva nje kwalokho, uMichael Feathers waqamba igama elithi SOLID ukuze aqoqe futhi aqokomise lezi zimiso ezinhlanu, okuthi, uma zisetshenziswa ndawonye, ziholele ezinhlelweni ezisebenzayo.
- Okugcinekayo: intuthuko yesikhathi esizayo iyashesha futhi ivikelekile
- I-Scalable: ilungele ukukhula ngaphandle kokuwela esiphithiphithini
- Kulula ukuqonda: Noma yiliphi ilungu leqembu lingajoyina futhi linikele
- Ukuhlangana okuphansi nokuhlangana okuphezulu: Izinguquko zinomthelela omncane ongenzeka futhi ikhodi ingasetshenziswa kabusha.
Kusukela ngaleso sikhathi, i-SOLID ibilokhu ibhekwa njengesisekelo somklamo wesofthiwe ogxile ezintweni futhi ithonya layo lifinyelela kokubili ekwakhiweni kwezakhiwo zakudala kanye nezindlela zesimanje (ama-microservices, izinhlelo zokusebenza kanye ne-multiparadigm).
Ukuhlahlela isifinyezo: Usho ukuthini umgomo ngamunye we-SOLID?
Isifinyezo esithi SOLID sakhiwe ngezinhlamvu ezinhlanu, ngayinye imele isimiso:
- S – Isimiso Sokuzibophezela Okukodwa (SRP): Isimiso Sokuzibophezela Okukodwa
- O – Isimiso Esivuliwe/Esivaliwe (OCP): Umgomo ovuliwe/ovaliwe
- L – Liskov Substitution Principle (LSP): Isimiso sokufaka esikhundleni seLiskov
- I – Interface Segregation Principle (ISP): Isimiso sokuhlukaniswa kwesixhumi esibonakalayo
- D – Isimiso Sokuguquguquka Kokuncika (DIP): Isimiso Sokuncika Sokuncika
Ngayinye yalezi zimiso idlala indima ethile ekunciphiseni ubunzima, ukukhulisa ukuvikelwa emaphutheni, kanye nokufeza isakhiwo sekhodi sobungcweti ngempela.
Ukubaluleka kwe-SOLID ekuthuthukisweni kwesimanje
Ukusetshenziswa kwe-SOLID kudlulela ngalé kwemfundiso yezemfundo; ukusebenzisa lezi zimiso kufana nokusinda kumaphrojekthi angokoqobo . Izinkinga ezifana nemiklamo eqinile, ukuncika okujikelezayo, ubunzima bokuhlola, kanye nodumo oluthi "lokhu kuyasebenza kodwa akekho owaziyo ukuthi kungani" kuyizimpawu zokungazinaki imikhuba emihle kakhulu.
Ingabe ufuna ukusebenza njengeqembu, wabelane ngekhodi, futhi uthuthukise ukwakheka kwakho? Ukwamukela i-SOLID kuzokuvumela ukuthi ugweme:
- Amakilasi "kaNkulunkulu": izinto ezenza yonke into futhi zigcine ziyimithombo yezimbungulu
- Ukulungiswa okungalawulwa: Ukuthuthukiswa ngakunye noma ukulungiswa kudala "umphumela wovemvane" wamaphutha
- Ukungakwazi ukusebenzisa kabusha ikhodi: Kopisha futhi unamathisele kugcina kuyisixazululo esiphindaphindayo (esibi).
- Ukungakwazi ukusebenzisa ukuhlolwa kweyunithi: ikhodi ayilokothi ihlukaniswe ngokwanele
- Ukugqugquzela okuphansi nezindleko eziphezulu: Yonke intuthuko entsha noma ukuhlanganiswa kuwumthombo wokungaqiniseki nokukhungatheka
Ngakho-ke, ukwamukela i-SOLID akugcini nje ngokwenza impilo ibe lula kubathuthukisi , kodwa futhi kubavumela ukuthi bakhe amaphrojekthi aqinile, alungele ukukhula futhi akwazi ukuzivumelanisa nezidingo zebhizinisi ezihlala zishintsha.
Isimiso S: Ukuzibophezela Okukodwa (SRP)
Isimiso Somthwalo Wemfanelo Owodwa sithi ikilasi ngalinye noma imodyuli kufanele ibe nesizathu esisodwa, nesisodwa kuphela, sokushintsha . Umgomo wayo obalulekile ukukhuthaza ubumbano , okusho ukuthi ingxenye ngayinye yesistimu igxile emsebenzini owodwa.
Kungani kunzima kangaka ekusebenzeni? Ngoba kuvame ukulinga ukungeza izindlela eziningi noma ukusebenza ekilasini elikhona esikhundleni sokudala esisha. Kodwa-ke, uma ikilasi linezibopho eziningi, izinguquko kwesinye sazo zingathinta kabi ezinye, zikhiqize imiphumela engemihle engenakwenzeka ukuyilindele.
Isibonelo esijwayelekile: cabanga ngeklasi elimele incwadi futhi elihlanganisa, ngaphezu kwedatha yencwadi uqobo, i-logic yokuphrinta, ukulondoloza, ukuthumela izaziso, njll. Ngayinye yalezi zindlela zokusebenza iphendula ezizathwini ezahlukene zokushintsha , okugcina kuphule i-SRP.
Isixazululo sisekuhlukaniseni umthwalo ngamunye ngekilasi lawo : ikilasi elilodwa ledatha yencwadi, elinye lokuphrinta, elinye lokugcina, elinye lezaziso, njalo njalo. Lokhu kwenza kube lula ukugcinwa, kunciphisa izingxabano phakathi kwamaqembu, futhi kwenza ukulawula izinguqulo kube lula kakhulu.
Isisho esiyisihluthulelo: “Qoqa izinto ezishintshayo ngezizathu ezifanayo. Hlukanisa lezo ezishintshayo ngezizathu ezahlukene.”
Izinzuzo zokusebenzisa i-SRP
- Ukunakekela okwenziwe lula: Wazi kahle ukuthi ungayishintsha kuphi ikhodi ngokuphendula izidingo ezintsha.
- Ukunciphisa ukungqubuzana: Onjiniyela abaningana bangasebenza ezindaweni ezihlukene ngaphandle kokunyathela izinzwane zomunye nomunye.
- Isilawuli senguqulo ehlanzekile: Ikilasi ngalinye libonisa izinguquko ezihlobene nomsebenzi owodwa
- Amaphutha ambalwa: amaphutha akhawulelwe ekusebenzeni okukhulunywa ngakho
Amaphutha ajwayelekile nokuthi ungawagwema kanjani
Iphutha elivelayo liwukuxuba ingqondo ehlukene (isibonelo, ingqondo yebhizinisi, isethulo nokuphikelela) ekilasini elilodwa. Isixazululo siwukuhlukanisa umsebenzi ngokwakha amakilasi ahlukene esihlokweni ngasinye, nakuba lokhu kungase kube nzima kakhulu ekuqaleni.
Isimiso O: Vula/Kuvaliwe (OCP)
Lesi simiso sithi: “Izinhlaka zesofthiwe kufanele zivulekele ukunwetshwa kodwa zivaliwe ukuze ziguqulwe .” Umqondo oyinhloko ukuvumela ukwengezwa kwemisebenzi emisha ngaphandle kokuthinta ikhodi ekhona, okunciphisa ingozi yokwethula amaphutha futhi kwenze kube lula ukuvela kohlelo.
Empeleni, kunconywa ukuthi amakilasi namamojula akhelwe ukuze, lapho izidingo zishintsha noma kuphakama izidingo ezintsha, izandiso (isibonelo, amakilasi amasha asebenzisa isixhumi esibonakalayo) zingangezwa esikhundleni sokushintsha ikhodi ehloliwe nekhiqizayo.
Icebiso: Sebenzisa ama-interface namakilasi angabonakali ukuze ufeze lokhu. Ngale ndlela, ungakha izici ezintsha ngokudala ukusetshenziswa okusha, ngaphandle kokwesaba ukuphula lokho osekuvele kusebenza.
Isibonelo, ohlelweni lokukhokha, uma udinga ukugcina ama-invoyisi ezindaweni ezahlukene (ifayela, isizindalwazi, izinsizakalo zangaphandle, njll.), qala ngokuchaza isikhombimsebenzisi sokuqhubeka. Indlela ngayinye entsha yokugcina isetshenziswa njengeklasi elihlukile, kugwema ukuguqulwa kwe-logic eyinhloko.
Amaphuzu abalulekile uma usebenzisa i-OCP
- Yehlisa ubungozi bezimbungulu: i-codebase ehloliwe ihlala injalo
- Ithuthukisa ukunwebeka: uhlelo lukhula ngaphandle kokuwa ngobunkimbinkimbi
- Ikhuthaza i-polymorphism: Ungashintsha noma uhlanganise ukusetshenziswa ngesikhathi sokusebenza
Qaphela, lesi simiso singahlehla uma sithathwa ngokwedlulele, sidale inqwaba yokuxhumana nezandiso ngaphandle kombandela ocacile, okuholela ekusetshenzisweni kobunjiniyela ngokweqile. Ibhalansi kanye nomqondo ojwayelekile ngaphezu kwakho konke!
I-Liskov Substitution Principle (LSP)
Isungulwe nguBarbara Liskov, lesi simiso sidinga ukuthi ama-subclass kumele athathelwe indawo ngokuphelele ngama-base class awo ngaphandle kokushintsha ukusebenza okulindelekile kwesistimu.
Isihluthulelo ukuthi, uma indlela noma umsebenzi ulindele into yesigaba esiyisisekelo, ingasebenza nanoma iyiphi into yezigaba zayo ezingaphansi ngaphandle kokuziphatha okungalindelekile noma amaphutha.
Isibonelo esichazayo: uma unekilasi likaRectangle kanye nekilasi elingaphansi kweSkwele (lapho izinhlangothi zombili zilingana khona), izindlela ezisebenza neRectangle kufanele zisebenze neSkwele ngaphandle kwenkinga. Uma iklasi elingaphansi liqala ukwephula noma ukuguqula izinkontileka zekilasi eliyisisekelo (isibonelo, ukudlula ama-setter ngendlela "yokudala"), kwephula i-LSP.
Kungani i-LSP ibaluleke kangaka?
- Ezokuphepha: ivimbela amaphutha okunzima ukuwabona kanye nokuziphatha okungalindelekile
- Ukucaca: iqinisekisa ukuvumelana kwefa kanye ne-polymorphism
- Ukuvumelana nezimo: kwenza kube nokwenzeka ukunweba isistimu ngaphandle kokubhala kabusha noma ukwephula ikhodi ekhona
Isimiso I: I-Interface Segregation Principle (ISP)
“ Izixhumi eziningi ezincane neziqondile zingcono kunezixhumi ezivamile ezilodwa, ezinkulu .” I-ISP ikhuthaza ukuchaza izixhumi eziqondile ezenzelwe isidingo ngasinye , esikhundleni sokuphoqa bonke abenzi bokusebenza ukuthi bazuze izindlela abangasoze bazisebenzisa.
Isibonelo esilula: cabanga ngesixhumi sokupaka esihlanganisa izindlela zokukhokha kanye nokubhuka. Ukuze ubonise ukupaka kwamahhala, uzophoqeleka ukusebenzisa izindlela zokukhokha ongeke uzisebenzise, okuholela ekhodini engadingekile kanye nokudideka.
Isixazululo sisekuhlukaniseni i-interface ibe yiziningana ezikhethekile : eyodwa yokuphatha izikhala kanye nenye yokukhokha. Ngale ndlela, ikilasi ngalinye lisebenzisa kuphela lokho elikudingayo.
Ekugcineni, lokhu kunciphisa ubunzima, kwenza kube lula ukuhlanganiswa kwemisebenzi emisha, ethize, futhi kugweme "umsindo" ekusetshenzisweni. Khumbula: uma ukuncika okungadingekile kuncipha, uhlelo luzohlanzeka futhi lugcinwe kahle.
Isimiso D: Umgomo Wokuguqulwa Kokuncika (DIP)
Mhlawumbe okujule kunakho konke, lesi simiso sibeka imithetho emibili eyisisekelo:
- Amamojula ezinga eliphezulu akufanele ancike kumamojula asezingeni eliphansi: kokubili kufanele kuncike ezintweni ezidonswayo
- Ukukhipha akumele kuncike emininingwaneni, imininingwane kufanele incike ezintweni ezincanyana.
Futhi lokhu kusho ukuthini ekusebenzeni? Ukuthi izingxenye zakho eziyinhloko (isibonelo, izilawuli zengqondo yebhizinisi) kufanele zihlale zisebenza ngezindawo zokusebenzelana noma amakilasi angabonakali, zingalokothi zisebenzise ngokuqondile izinto ezibonakalayo (izizindalwazi, amasevisi angaphandle, njll.). Ngakho-ke, uma ushintsha ubuchwepheshe noma izidingo kusasa, ikhodi yakho eyinhloko ngeke ishintshe.
Ukufakwa kokuxhomekeka kungenye yamaphethini asiza kakhulu ukufeza lesi simiso. Ngale ndlela, uhlelo luguquguquka kakhudlwana, luhlukaniswe, futhi kulula ukuluhlola ngama-mock noma ama-simulation.
Isetshenziswa kanjani imigomo ye-SOLID ezilimini ezidumile
Lezi zimiso azigcini kunoma yiluphi ulimi olulodwa. Ungazisebenzisa ku- Java , C# , Python , noma kunoma iyiphi enye indawo egxile ezintweni. Ake sibone ukuthi zisebenza kanjani ngezibonelo ezisebenzayo:
Isibonelo ku-Java
Ake sithi unesevisi yesaziso. Esikhundleni sokuthembela ngokuqondile ohlotsheni oluthile lwezaziso, dala isixhumi esibonakalayo futhi ube nokusetshenziswa okuhlukile njengefa kulo:
public interface NotificationService {
void send(String message);
}
public class EmailNotificationService implements NotificationService {
@Override
public void send(String message) {
// Enviar email
}
}
public class UserController {
private NotificationService notificationService;
public UserController(NotificationService notificationService) {
this.notificationService = notificationService;
}
public void notifyUser() {
notificationService.send("Bienvenido a la inversión de dependencias");
}
}
Ngakho-ke, i-UserController incike ku-abstraction, okungukuthi, isikhombimsebenzisi, hhayi ukuqaliswa okuqondile. Ukuze ufunde kabanzi mayelana nokuphathwa kokuxhomekeka, ungafunda nge -OpenTitan kanye nethonya layo ekuphepheni kwehadiwe nesofthiwe.
Isibonelo ku-C#
public interface IPrinter { void Print(); }
public interface IScanner { void Scan(); }
public class MultifunctionDevice : IPrinter, IScanner {
public void Print() { /* ... */ }
public void Scan() { /* ... */ }
}
Ngale ndlela, isikhombimsebenzisi ngasinye sicacile futhi kuphela okudingekayo kudivayisi kuyasetshenziswa.
Isibonelo kuPython
class User:
def __init__(self, name):
self.name = name
class UserRepository:
def save(self, user):
# Guardar en la base de datos
pass
class UserNotificationService:
def send_welcome_email(self, user):
# Enviar correo
pass
Ubudlelwano phakathi kwe-SOLID neKhodi Ehlanzekile
Umqondo we- Clean Code uxhumene ngokwemvelo nezimiso ze-SOLID. Ukubhala ikhodi ehlanzekile kuhilela ukusebenzisa amagama anencazelo, ukugcina izindlela zincane futhi zigxile, ukunciphisa ubunzima obungadingekile, ukugwema ukuphindaphinda, kanye nokuhlela isofthiwe ukuze ifundeke kubantu.
Eqinisweni, izincwadi nezihloko zikaMalume Bob (ezifana nethi "Clean Code: Practical Skills for Agile Software") zethula i-SOLID njengesiqondiso esiyisisekelo sokufeza izinhlelo 'ezihlanzekile' ngempela nezisimeme. Uma ufuna ukujula ezihlokweni ezihlobene, ungabheka izindlela ezinhle kakhulu zokuthuthukisa isofthiwe.
I-SOLID isiza kanjani ukuhlanza ikhodi? Ukwenza yonke ingxenye yesofthiwe ibe lula ukuyiqonda, ukuguqula, ukuhlola, nokunwetshwa, ukugwema ukuphawula okungadingekile, ukwephula umkhuba wokukopisha/unamathisele, nokwenza ikhodi icace kakhudlwana kunoma yiliphi ilungu leqembu.
Izinzuzo kanye nezinzuzo zokusebenzisa i-SOLID
- Ukugcinwa kalula nokuziphendukela kwemvelo: Izinguquko ziphathwa ngendlela yendawo nevikelekile
- Ukwehluka: Uhlelo lungakhula kokubili ekusebenzeni namaqembu okuthuthukisa ngaphandle kokugoqa
- Ukusetshenziswa kabusha kwekhodi: Izingxenye namamojula asetshenziswa ezimeni ezahlukene, kugwema ukuphindaphinda.
- Ukusebenzisana okusebenzayo: Amaqembu asebenza ngokuhambisana ngaphandle kwengozi yokweqa izinguquko ezibalulekile
- Ukwehliswa kwephutha: Ukucaca nokuhlukaniswa kwezigaba kunciphisa ukubukeka kweziphazamisi futhi kuzenze kube lula ukuzithola.
- Testability: Ikhodi ehlukanisiwe nehlukanisiwe kulula ukuyihlola, ilungele iyunithi nokuhlolwa kokuhlanganisa
Imikhawulo kanye nokugxeka okungaba khona kwe-SOLID
Njenganoma iyiphi indlela, ukusebenzisa i-SOLID ngendlela egoqela ngokweqile kungaholela ezinkingeni:
- Ubunkimbinkimbi obungadingekile: Ukuxhumana okuningi kakhulu noma amakilasi ahlukene angakhinyabeza intuthuko, ikakhulukazi kumaphrojekthi amancane.
- I-Overdesign: Ukulindela zonke izandiso ezingaba khona kungagcina kuxakile okulula.
- Ijika lokufunda: Onjiniyela abasaqalayo bangazizwa bekhungathekile lapho bahlela izinhlelo zabo zokusebenza zokuqala.
- Ubunzima: Ukulandela imigomo ngokuqinile, kwezinye izimo, kungase kungqubuzane nokushesha okudingekayo noma ukusebenza kahle.
Isihluthulelo ukusebenzisa i-SOLID ngokuqonda okuvamile : cabanga ngobukhulu, isabelomali, kanye nomongo wamaphrojekthi akho. Ezinhlelweni ezincane, cishe awudingi ukutshala imali kumaphethini ayinkimbinkimbi, kodwa udinga ukuqonda umqondo womthwalo wemfanelo owodwa ukuze ugweme izinkinga ezinkulu esikhathini esizayo.
Nini (futhi nini) ukufaka i-SOLID
Le migomo yakhelwe amasistimu adinga ukugcinwa okuphezulu, ukunwebeka nokuvumelana nezimo. Kodwa-ke, kunezimo lapho ukuzisebenzisa ngokuqinile kungaba nomthelela omubi:
- Amaphrojekthi amancane noma ama-prototypes: ibeka phambili isivinini nobulula ngaphezu kokwandiswa kwesikhathi esizayo
- Amaqembu amasha: beka izimiso kancane kancane, hhayi njengemfundiso-nkolo
- Izimo zokusebenza okuphezulu: hlola ukuthi ukwengeza izendlalelo ezengeziwe kuyasinxephezela ngempela yini
- Amasistimu wefa: Ukulungisa ikhodi yefa kungase kudinge ukutshalwa kwezimali okukhulu; ibeka phambili intuthuko ekhuphukayo
Ekugcineni, sebenzisa okunengqondo, kodwa khumbula ukuthi ukwenza ngcono kakhulu kusenesikhathi kungaba yingozi njengokungabikho kwemikhuba emihle.
Ubudlelwano be-SOLID nezinye izimiso namaphethini
Ngokungeziwe ku-SOLID, kunezinye izimiso ezihambisanayo nezinqubo ezinhle:
- ZOMISA (Ungaziphindi): gwema ukuphindaphinda kwekhodi
- KISS (Gcina Ilula, Isiphukuphuku): gcina izixazululo zilula
- I-YAGNI (Ngeke Uyidinge): Ungasebenzisi izici kuze kube yilapho sezidingeka ngempela
- GRASP: amaphethini wokunikeza izibopho ezintweni
Ukuhlanganisa i-SOLID nalezi zindlela kuphindaphinda izinzuzo kunoma iyiphi i-architecture yesimanje egxile entweni.
Amathiphu asebenzayo wokwamukela i-SOLID empilweni yakho yansuku zonke
- Qala kancane kancane: usebenzisa isimiso sesibopho esisodwa kuqala
- Yenza kabusha ngokuhlakanipha: Buyekeza ikhodi yakho ngezikhathi ezithile ufuna amaphunga ekhodi namathuba okuthuthukisa.
- Lungisa ithiyori ukuze uzijwayeze: lungisa izimiso zibe ngokoqobo kweqembu lakho nephrojekthi
- Yabelana ngolwazi: ikhuthaza izinkulumo-mpikiswano zangaphakathi, ukubuyekezwa kanye nokuqeqeshwa ukuze kwakhiwe izisekelo
Khumbula ukuthi izimiso ze-SOLID ziyiziqondiso, hhayi imithetho engaguquki . Zisebenzise ukuze uthuthukise, kodwa ungadeli ukusebenza noma isivinini sokulethwa lapho umongo udinga lokho.
Le ndlela ihlinzeka ngohlaka oluqinile lwabathuthukisi ukuze bakhe amasistimu aqinile, aguquguqukayo, futhi alondolozekayo esikhathini eside, ukuvimbela isofthiwe ukuthi ingagugi ngaphambi kwesikhathi futhi yenze kube lula ukuzivumelanisa nezimfuneko ezimakethe nebhizinisi ezishintshayo.