Chero ani ane ruzivo mune software programming anotonga software kodhi yakanyorwa nevamwe, vachishandisa marongero eparamende zvinoenderana nebasa ravo.
Pamusoro pebasa rangu rehunyanzvi, ini ndinoziva vazhinji vanogadzira, uye ndaona zviuru zvemitsetse yekodhi uye pandinoda kuongorora hunyanzvi hwekuvandudza ini ndinotarisa pazvinhu zviviri:
Neraki, pane zvimwe zvakakosha kana misimboti inoita kuti zvive nyore kuve nani pakukodha.
chidimbu SOLID chinomirira:
S: musimboti webasa rimwe chete
O: yakavhurika-yakavharwa musimboti
L: Liskov kutsiva musimboti
I: Musimboti wekuparadzanisa interface
D: Zvingakubatsira kuti Inversion pamusoro Dependencies
Ngatitange nekutsvagisa yekutanga SOLID musimboti, kureva iyo
Kirasi (kana module) inofanirwa kuve nechikonzero chimwe chete chekuchinja, kushanduka.
Pfungwa yacho pachayo yakapusa, asi kuti uwane izvi zvakapfava nzira yekumisikidza inogona kunge yakaoma zvikuru. Kirasi inofanirwa kuve nechikonzero chimwe chete chekuchinja.
Asi nei?
Sei zvichikosha kuva nechikonzero chimwe chete chekuchinja?
Semuenzaniso, kana paine zvikonzero zviviri zvakasiyana zvekuchinja, zvinofungidzirwa kuti zvikwata zviviri zvakasiyana zvinogona kushanda kodhi imwechete nekuda kwezvikonzero zviviri zvakasiyana. Mumwe nemumwe achafanirwa kuita yavo yega mhinduro, iyo mune yekunyorwa mutauro (senge C ++, C # kana Java), zvinogona kutungamira kumamojuru asingawirirane nemamwe zvikwata kana zvimwe zvikamu zvekushandisa.
Mumwe muenzaniso, kana urikushandisa mutauro wakadudzirwa, ungatofanira kuyedzazve kirasi imwechete kana module yezvikonzero zvakasiyana. Izvi zvinoreva basa rakawanda, nguva uye nesimba rekudzora mhando.
Kuziva iyo yega ficha yekirasi kana module inofanirwa kuve nayo yakanyanya kuomarara pane kungotarisa pane yekutarisa kuti umhanye bvunzo.
Asi ngatiedzei kufunga kubva pane shoma tekinoroji yekutarisa, ndokuti, ngatiedzei kuongorora mushandisi wekirasi yedu kana module, ndiye anozoishandisa. Chinhu chakakosha chatinofanira kugara tichifunga, inyaya yekuti vashandisi vechishandiso kana sisitimu yatinokudziridza vanoshumirwa neimwe module ichave avo vanokumbira kuchinjirwa kwairi. Ivo vakashumirwa vanokumbira kuti vachinje kirasi kana module.
Mimwe mienzaniso yemamojuru uye mashandisiro avo:
Saka kana danho rekutanga riri kutsvaga vatambi kana mutambi ane chinzvimbo chemutauriri nemo module, kubatanidza vanhu neese mabasa kungave kwakaoma. Mukambani diki, munhu mumwe anogona kutamba akawanda mabasa mukambani hombe panogona kuve nevanhu vakawanda vane rimwe basa.
Zvinotaridza sezvine musoro kuona mabasa, kwete vanhu kana vashandisi.
Naizvozvo:
Ngatione mimwe mienzaniso
Ngatitii tine bhuku reBhuku rinovhara pfungwa yebhuku uye mashandiro aro.
Kirasi Bhuku {
basa tora () {
dzoka “Bhuku Huru”;
}
basa GetAuthor () {
dzoka "Alessandro Baricco";
}
shanda rinotevera peji () {
// rinotevera peji
}
shanda printCurrent Peji () {
echo "zvirimo peji razvino";
}
}
Iri kirasi rakajairika. Tine bhuku, uye kirasi inogona kutipa zita racho, vanogona kutipa munyori, uye vanogona kuenderera mberi. Chekupedzisira, zvakare inokwanisa kudhinda peji razvino pachiratidziri.
Nekudaro, pane dambudziko diki.
Kufunga nezvevatambi vanobatanidzwa mukutungamira kweBhuku chinhu, vangave vanaani?
Tinogona kufunga zviri nyore nezvevatambi vaviri vakasiyana pano: Book manejimendi (seiyo anozvibatae Dhata yekutumira mashini .
Saka isu tine vatambi vaviri vakasiyana kwazvo vari kudyidzana nekirasi.
Muchidimbu kirasi iyi inoita musanganiswa pakati:
ichi chingave chinetso nekuti chinotyora chirevo chimwechete chemutoro (SRP).
Tinogona sei kuchinja, isu tingaite sei kuvandudza kodhi iyi kuti tiremekedze chirevo cheumwe mutoro?
Tarisa uone kodhi inotevera:
Kirasi Bhuku {
basa tora () {
dzoka "Oceano Mare";
}
basa GetAuthor () {
dzoka "Alessandro Baricco";
}
basa shandura peji () {
// rinotevera peji
}
shanda getCurrentPage () {
echo "zvirimo peji razvino";
}
}
inowanikwa Printer {
basa printPage ($ peji);
}
kirasi StampaLibro inoshandisa Printer {
basa printPages ($ peji) {
echo $ peji;
}
}
kirasi HtmlPrinter inoshandisa Printer {
basa printPages ($ peji) {
echo ' '. $ peji. ' ';
}
}
Uyu muenzaniso wakapusa unoratidza maitiro ekuparadzanisa mharidzo kubva kune bhizinesi logic, uye mukuteerera SRP inopa zvakanaka kwazvo mukuchinjika kweprojekiti yedu.
Ngatitarisei mumwe muenzaniso:
Muenzaniso wakafanana neiri pamusoro apa kana chinhu chichigona kuzvichengeta nekuzvitora kubva pachiratidziro.
Kirasi Bhuku {
basa tora () {
dzoka "Oceano Mare";
}
basa GetAuthor () {
dzoka "Alessandro Baricco";
}
basa shandura peji () {
// rinotevera peji
}
shanda getCurrentPage () {
dzosera "zvirimo peji razvino";
}
basa chengetedza () {
$ filename = '/ zvinyorwa /'. $ iyi-> GetTitolo (). '-'. $ this-> getAuthor ();
file_put_contents ($ filename, serialize ($ this));
}
}
Sapakutanga, pano zvakare tinogona kuziva vatambi vakasiyana vakaita Book manejimendi (seiyo anozvibatae kutsungirira. Pese patinoda kushandura nzira yatinoenda kubva peji kuenda kupeji, tinofanirwa kushandura kirasi iyi. Tinogona kuve nezvikonzero zvinoverengeka zvekuchinja.
Kirasi Bhuku {
basa tora () {
dzoka "Oceano Mare";
}
basa GetAuthor () {
dzoka "Alessandro Baricco";
}
basa shandura peji () {
// rinotevera peji
}
shanda getCurrentPage () {
dzosera "zvirimo peji razvino";
}
}
kirasi SimpleFilePersistence {
basa chengetedza (Bhuka $ bhuku) {
$ filename = '/ zvinyorwa /'. $ bhuku-> getTitle (). '-'. $ bhuku-> getAuthor ();
file_put_contents ($ filename, serialize ($ book));
}
}
Kufambisa basa rekushingirira kune rimwe kirasi kuchanyatso kupatsanura mabasa uye tichava takasununguka kuchinjana nzira dzekushingirira tisingakanganise kirasi yedu yeBhuku. Semuenzaniso, kushandisa DhatabhesiPersistence kirasi kungave kushoma, uye pfungwa yedu yebhizinesi yakavakirwa pamabasa ebhuku haizo shanduke.
Enderera kuverenga mutemo wechipiri Vhura / Yakavharwa ->
Ercole Palmeri
Kukudziridza hunyanzvi hwemotokari kuburikidza nekupenda zvinogadzirira vana hunyanzvi hwakaoma sekunyora. Kupenda...
Chikamu chengarava isimba rechokwadi rehupfumi hwenyika, iro rakafamba richienda kumusika wemabhiriyoni zana nemakumi mashanu...
Muvhuro wapfuura, iyo Financial Times yakazivisa chibvumirano neOpenAI. FT inopa marezinesi ayo epasi rose kutapa nhau…
Mamirioni avanhu anobhadhara masevhisi ekutepfenyura, achibhadhara mari yekunyoresa pamwedzi. Ipfungwa yakajairika kuti iwe…