SOLID he aha nā kumumanaʻo 5 o ka hoʻolālā hoʻonohonoho ʻana i nā mea

Nā kiʻi geometric paʻa
aʻo
1

He akimona ʻo SOLID, e kuhikuhi ana i nā kumumanaʻo ʻelima o ka hoʻolālā ʻana i nā mea (OOD a i ʻole ʻo OOP). ʻO kēia nā kulekele i hiki i nā mea hoʻomohala ke hoʻohana e hana i nā polokalamu maʻalahi e mālama, mālama a hoʻolōʻihi. ʻO ka hoʻomaopopo ʻana i kēia mau manaʻo e hoʻolilo iā ʻoe i mea hoʻomohala maikaʻi aʻe a kōkua iā ʻoe e hōʻalo i nā pilikia hoʻokele polokalamu. He aha ke ʻano o ka programmer maikaʻi?

ʻO kēlā me kēia mea me kahi ʻike i ka hoʻolālā polokalamu e hoʻokolokolo i ka code software i kākau ʻia e nā poʻe ʻē aʻe, e hoʻohana ana i nā palena hoʻokolokolo e pili ana i kā lākou ala ʻoihana.

Ma loko o kaʻu ʻoihana ʻoihana, ua ʻike wau i nā mea hoʻomohala he nui, a ua ʻike wau i mau kaukani laina o ke code a i ka wā e pono ai wau e loiloi i ka mākau o ka mea hoʻomohala nānā nui wau i nā mea ʻelua:

  • ʻO ka maʻalahi i ka heluhelu ʻana i ke code;
  • Pehea paha e holo ai kā lākou code a holo i ka manawa.

ʻO ka mea pōmaikaʻi, aia kekahi mau kumumanaʻo a i ʻole nā ​​loina e maʻalahi ai e ʻoi aku ka maikaʻi ma ke coding.

ʻo ka inoa inoa ʻo SOLID no:
S: kumu o ke kuleana hoʻokahi
O: kumu paʻa hāmama
L: Liskov kumukānāwai kumukānāwai
I: Ke kumu o ka hoʻokaʻawale ʻana o ke kikowaena
D: Ke kumu o ka hoʻohuli ʻana i ka hilinaʻi

E hoʻomaka kākou e ka luʻu ʻana i ke kumuhana SOLID mua, ʻo ia ka

Kumumanaʻo kuleana kuleana hoʻokahi

Hoʻokahi wale nō kumu e hoʻololi ai kahi papa (a i ʻole module) e hoʻololi ai.

He mea maʻalahi ka manaʻo ponoʻī, akā no ka hoʻokō ʻana i kēia maʻalahi hiki ke paʻakikī loa ke ala hoʻokō. Hoʻokahi wale nō kumu e hoʻololi ai i kahi papa.

Akā no ke aha? 

No ke aha he mea nui loa e loaʻa hoʻokahi wale nō kumu e loli ai?

ʻO kahi laʻana, inā aia ʻelua mau kumu like ʻole no ka loli, hiki i ka manaʻo ke hana ʻelua mau kime ʻē aʻe i ke code hoʻokahi no nā kumu ʻelua. E hoʻokō kēlā me kēia i kā lākou hopena ponoʻī, kahi i kahi ʻōlelo i hōʻuluʻulu ʻia (e like me C ++, C # a i ʻole Java), hiki ke alakaʻi i nā modula i kūlike ʻole me nā kime ʻē aʻe a i ʻole nā ​​ʻāpana ʻē aʻe o ka noi.

ʻO kekahi laʻana, inā ʻoe e hoʻohana nei i kahi ʻōlelo i unuhi ʻia, pono paha ʻoe e hōʻoia hou i ka papa like a i ʻole ka module no nā kumu like ʻole. ʻO ka manaʻo o kēia ka hana hou aku, ka manawa a me ka ikaika no ka kaohi pono.

ʻO ka ʻike ʻana i kahi hiʻohiʻona i kahi papa a i ʻole ke module e ʻoi aku ka paʻakikī ma mua o ka nānā wale ʻana i kahi papa inoa e holo ai nā hoʻokolohua 

Akā e hoʻāʻo e noʻonoʻo mai kahi ʻike ʻenehana liʻiliʻi, ʻo ia, e hoʻāʻo e kālailai i ka mea hoʻohana o kā mākou papa a i ʻole ka module, ʻo ia ka mea nāna e hoʻohana. ʻO kahi hiʻohiʻona nui e pono mau iā mākou e noʻonoʻo, ʻo ka ʻoiaʻiʻo ʻo nā mea hoʻohana o ka noi a i ʻole ka ʻōnaehana a mākou e hoʻomohala nei i lawelawe ʻia e kekahi module ponoʻī e noi i nā hoʻololi iā ia. E noi ka poʻe i lawelawe e hoʻololi i ka papa a i ʻole ka module. 

Kekahi mau laʻana o nā modula a me kā lākou hoʻohana:

  • Māhele mālama: hana ʻia ka mea hoʻohana e nā luna ʻikepili pūnaewele a me nā mea hoʻopaʻa lako polokalamu.
  • Hōʻike hōʻike: ʻo ka mea hoʻohana i nā limahana o ke keʻena, nā mea helu kālā a me nā hana.
  • Module helu helu uku no kahi ʻōnaehana hoʻokau uku: hiki i nā mea hoʻohana ke hoʻopili i nā loio, nā luna a me nā mea helu kālā.
  • Module ʻimi huaʻōlelo no kahi ʻōnaehana hoʻokele waihona: hiki i nā mea hoʻohana ke hōʻike ʻia e ka waihona puke a i ʻole nā ​​mea kipa a me nā mea kūʻai aku o ka waihona iā ia iho.

No laila inā ʻimi ka hana mua i nā mea hana keaka a i ʻole ka mea hana keaka ʻo interlocutor me ka module, hoʻohui i nā poʻe me nā kuleana āpau ke paʻakikī. I kahi hui liʻiliʻi, hiki i kekahi kanaka ke pāʻani i nā kuleana he nui i ka manawa i kahi ʻoihana nui hiki i nā poʻe he nui i loaʻa kahi kuleana hoʻokahi. 

Me he mea lā he ʻoi aku ke kūpono e hoʻomaopopo i nā kuleana, ma mua o ka poʻe a mea hoʻohana paha.

No laila:

  • ho'ākāka ka mea hoʻohana o ka ʻōnaehana polokalamu i nā kumu o ka loli;
  • ke kuleana he ʻohana o nā hana e māʻona ai nā pono o kahi mea hana keaka, ʻo ia hoʻi, ka hoʻohana ʻōnaehana;
  • nā mea hana keaka, lilo ka mea hoʻohana i kumu hoʻololi no ka ʻohana o nā hana i pono e māʻona i ka makemake o ka mea hoʻohana;
  • ka ulu o nā pono o ka mea hoʻohana, alakaʻi i ka evolution o ka hana;

Nā kumu paʻa SOLID

E nānā i kekahi mau laʻana

Inā paha he papa Buke kā mākou e hoʻopili ana i ka manaʻo o kahi puke a me kāna hana.

puke puke {

    hana getTitle () {

        hoʻihoʻi "He puke nui";

    }

    hana getAuthor () {

        hoʻihoʻi iā "Alessandro Baricco";

    }

    hana ʻaoʻao aʻe () {

        // ʻaoʻao aʻe

    }

    hana printCurrentPage () {

        echo "ʻikepili o ka ʻaoʻao o kēia manawa";

    }

}

He papa maʻamau loa kēia. He puke kā mākou, a hiki i ka papa ke hāʻawi iā mākou i ke poʻo inoa, hiki iā lākou ke hāʻawi iā mākou i ka mea kākau, a hiki iā lākou ke neʻe i mua. ʻO ka hope, hiki iā ia ke paʻi i ka ʻaoʻao o kēia manawa ma ka pakuhi. 

Eia nō naʻe, aia kekahi pilikia liʻiliʻi. 

Ke noʻonoʻo nei e pili ana i nā mea hana keaka i ka hoʻokele o ka mea Buke, ʻo wai lākou? 

Hiki iā mākou ke noʻonoʻo maʻalahi i nā mea hana ʻē aʻe ʻelua ma aneʻi: Hoʻoponopono puke (e like me ka hale waihona puke) ' Mīkini hoʻoili ʻikepili (e like me pehea mākou e makemake ai e hāʻawi i ka ʻike i ka mea hoʻohana: ma ka papakaumaka, ʻoihana mea hoʻohana kiʻi, ʻokoʻa hoʻohana huaʻōlelo wale nō, paʻi paha). 

No laila, he ʻelua mau mea hana keaka ʻokoʻa e launa pū ana me ka papa.

I kahi pōkole e huikau kēia papa ma waena o:

  • kūleʻa ʻoihana me 
  • ka hōʻike 

hiki i kēia mea ke lilo i pilikia ma muli o ka haki ia o ke kumu kuleana hoʻokahi (SRP). 

Pehea e hiki ai iā mākou ke loli, pehea mākou e hoʻomaikaʻi ai i kēia code e mahalo ai i ke kumumanaʻo o ke kuleana hoʻokahi?

E nānā i ke code aʻe:

puke puke {

    hana getTitle () {

        hoʻihoʻi iā "Oceano Mare";

    }

    hana getAuthor () {

        hoʻihoʻi iā "Alessandro Baricco";

    }

    ʻaoʻao huli ʻaoʻao () {

        // ʻaoʻao aʻe

    }

    hana getCurrentPage () {

        echo "ʻikepili o ka ʻaoʻao o kēia manawa";

    }

}

interface mīkini paʻi {

    ʻaoʻao hoʻopuka hana ($ ʻaoʻao);

}

hoʻokomo ʻo StampaLibro papa i ka mīkini paʻi {

    nā palapala hana ($ ʻaoʻao) {

        echo $ ʻaoʻao;

    }

}

 

hoʻokomo ka papa htmlPrinter mīkini paʻi {

    nā palapala hana ($ ʻaoʻao) {

        'ōlelo' '. ʻaoʻao $. ' ';

    }

}

Hōʻike kēia laʻana maʻalahi loa pehea e hoʻokaʻawale ai i ka hōʻike mai ka loiloi ʻoihana, a i ka hoʻokō ʻana me ka SRP hāʻawi ia i nā maikaʻi maikaʻi loa i ka maʻalahi o kā mākou papahana.

E nānā i kahi hiʻohiʻona ʻē aʻe:

ʻO kahi laʻana e like me ka mea i luna ke hiki i kahi mea ke mālama a lawe iā ia iho mai ka hōʻike.

puke puke {

    hana getTitle () {

        hoʻihoʻi iā "Oceano Mare";

    }

    hana getAuthor () {

        hoʻihoʻi iā "Alessandro Baricco";

    }

    ʻaoʻao huli ʻaoʻao () {

        // ʻaoʻao aʻe

    }

    hana getCurrentPage () {

        hoʻihoʻi "ʻike i ka ʻaoʻao o kēia manawa";

    }

    mālama hana () {

        $ filename = '/ palapala /'. $ kēia-> loaʻaTitolo (). '-'. $ kēia-> getAuthor ();

        file_put_contents ($ filename, serialize ($ kēia));

    }

}

E like me ma mua, ma aneʻi hiki iā mākou ke ʻike i nā ʻano mea hana keaka like Hoʻoponopono puke (e like me ka hale waihona puke) ' Hoʻomau. Ke makemake mākou e hoʻololi i ke ala a mākou e hele ai mai kēlā ʻaoʻao a kēia ʻaoʻao, pono mākou e hoʻololi i kēia papa. Hiki iā mākou ke loaʻa i kekahi mau kumu no ka loli.

puke puke {

    hana getTitle () {

        hoʻihoʻi iā "Oceano Mare";

    }

    hana getAuthor () {

        hoʻihoʻi iā "Alessandro Baricco";

    }

    ʻaoʻao huli ʻaoʻao () {

        // ʻaoʻao aʻe

    }

    hana getCurrentPage () {

        hoʻihoʻi "ʻike i ka ʻaoʻao o kēia manawa";

    }

}

papa SimpleFilePersistence {

    mālama hana (puke $ puke) {

        $ filename = '/ palapala /'. $ puke-> getTitle (). '-'. $ puke-> getAuthor ();

        file_put_contents ($ filename, serialize ($ puke));

    }

}

ʻO ka neʻe ʻana i ka hana hoʻomau i kahi papa ʻē aʻe e hoʻokaʻawale ʻokoʻa i nā kuleana a e noa mākou e kūleʻa i nā ʻano hoʻomau me ka ʻole o ka papa Book. ʻO kahi laʻana, he mea nui ʻole ka hoʻokomo ʻana i ka papa o ka DatabasePersistence, a ʻaʻole e loli kā mākou loina ʻoihana e pili ana i nā hana puke.

E hoʻomau i ka heluhelu ʻana i ke kumuhana ʻelua Open / Closed ->

Kōnae 1

E waiho i kahi manaʻo

ʻAʻole e paʻiʻia kāu leka uila. Hoʻopukaʻia nā māla kūpono *

kumumanaʻo liskov
aʻo
Kumuhana o Liskov Substitution, ke kolu o ke kumu SOLID

ʻAʻole hiki i nā papa keiki ke hoʻololi a hoʻololi paha i nā wehewehe ʻano o ka papa makua. ʻO Barbara Liskov ke ʻano o kēia kumumanaʻo i hoʻolauna ʻia i loko o kahi keynote o ka ʻaha kūkā 1987 a paʻi ʻia i loko o kahi ʻatikala me Jannette Wing ma 1994. ʻO kā lākou wehewehe kumu…

nā mākeke kūʻai google
aʻo
Pehea e hoʻohana ai i nā Google Trends no ke kūʻai aku manawa maoli

ʻO kekahi o nā pilikia nui loa i hālāwai ʻia e nā ʻoihana ma 2020 ka hoʻomaopopo ʻana i nā ʻāpana huahana e hoʻoliʻiliʻi ai kā lākou ʻoihana: ʻo ka ʻoiaʻiʻo ka hapa nui o nā ʻoihana ʻenehana i loaʻa i nā hopena kaumaha e aneane hiki ʻole i nā ʻoihana ke komo iā lākou, ʻoiai he mea pāʻani hou. Kākaʻikahi loa nā ʻenehana hana ...

hoʻolālā hoʻolālā ʻike
Nā Papahana
Nā papahana no ka ʻike ʻoihana ʻOihana kūleʻa

Hoʻomaka ke kūkulu ʻana i kahi hoʻolālā kūleʻa no kāu Business Business me kahi ʻike pono o nā pahuhopu. ʻIke mākou ma lalo o kekahi mau kumu nui. Ke nānā nei i ke kūlana o kēia manawa He hana hewa nui loa ke hoʻowahāwahā i kēia ʻano. ʻO ka loiloi i ke kūlana o kēia manawa ka manaʻo o ke kālailai ʻana i nā hana, nā kūkulu ...