10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

Sau da yawa nakan haɗu da masu haɓakawa waɗanda ba su ji labarin ƙa'idodin SOLID ba (mu yayi magana game da su dalla-dalla anan. - Fassara) ko shirye-shiryen da suka dace (OOP), ko kun ji su, amma kar a yi amfani da su a aikace. Wannan labarin yana bayyana fa'idodin ka'idodin OOP waɗanda ke taimakawa mai haɓakawa a cikin aikinsa na yau da kullun. Wasu daga cikinsu an san su sosai, wasu ba su da yawa, don haka labarin zai zama da amfani ga masu farawa da ƙwararrun masu shirye-shirye.

Muna tunatarwa: ga duk masu karatun Habr - rangwamen ruble 10 lokacin yin rajista a kowane kwas ɗin Skillbox ta amfani da lambar talla ta Habr.

Skillbox yana ba da shawarar: Ilimin kan layi kwas "Java developer".

BUSHE (Kada Ka Maimaita Kanka)

Ka'ida mai sauƙi mai sauƙi, ainihin abin da ya fito fili daga sunan: "Kada ku maimaita kanku." Ga mai shirye-shirye, wannan yana nufin buƙatar guje wa kwafin code, da kuma damar yin amfani da abstraction a cikin aikinsu.

Idan akwai sassa biyu masu maimaitawa a cikin lambar, yakamata a haɗa su zuwa hanya ɗaya. Idan an yi amfani da ƙima mai ƙarfi fiye da sau ɗaya, yana da kyau a canza shi zuwa ga dindindin na jama'a.

Wannan ya zama dole don sauƙaƙe lambar kuma ya sauƙaƙe don kiyayewa, wanda shine babban burin OOP. Bai kamata ku yi amfani da ƙungiyar da yawa ba, tunda lambar guda ɗaya ba za ta ƙaddamar da tabbaci tare da OrderId da SSN ba.

Ƙaddamar da Canje-canje

Yawancin samfuran software na kamfanoni suna haɓaka koyaushe. Wannan yana nufin cewa ana buƙatar yin canje-canje ga lambar, yana buƙatar tallafi. Kuna iya sauƙaƙe rayuwar ku ta amfani da encapsulation. Wannan zai ba ku damar gwada da inganci sosai kuma ku kula da tushen lambar da kuke da ita. Ga misali daya.

Idan ka rubuta a Java, to sanya hanyoyin sirri da masu canji ta tsohuwa.

Buɗe/rufe ƙa'ida

Ana iya tunawa da wannan ƙa'ida cikin sauƙi ta hanyar karanta wannan sanarwa mai zuwa: "Kamfanin software (azuzuwan, kayayyaki, ayyuka, da sauransu) yakamata su kasance a buɗe don tsawaita, amma an rufe su don gyarawa." A aikace, wannan yana nufin cewa za su iya ƙyale a canza halayensu ba tare da canza lambar tushe ba.

Ƙa'idar tana da mahimmanci lokacin da canje-canje ga lambar tushe na buƙatar sake fasalin lamba, gwajin naúrar, da sauran hanyoyin. Lambar da ke bin ka'idar bude/rufe ba ta canzawa idan aka tsawaita, don haka akwai karancin matsaloli tare da shi.

Anan akwai misalin lambar da ta saba wa wannan ka'ida.

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

Idan kana buƙatar canza wani abu a cikinsa, zai ɗauki lokaci mai yawa, tunda duk sassan code ɗin da ke da alaƙa da guntun da ake so dole ne a canza su.

Af, buɗe-kulle ɗaya ne daga cikin ka'idodin SOLID.

Ƙa'idar Nauyi ɗaya (SRP)

Wata ka'ida daga saitin SOLID. Ya ce "akwai dalili guda daya da ke haifar da canji a cikin aji." Ajin yana magance matsala ɗaya kawai. Yana iya samun hanyoyi da yawa, amma kowane ɗayansu ana amfani dashi kawai don magance matsala gama gari. Duk hanyoyin da kaddarorin yakamata suyi aiki da wannan kawai.

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

Ƙimar wannan ƙa'idar ita ce ta sassauta haɗin kai tsakanin ɓangaren software guda ɗaya da lambar. Idan ka ƙara ayyuka fiye da ɗaya zuwa aji, yana gabatar da dangantaka tsakanin ayyukan biyu. Don haka, idan kun canza ɗaya daga cikinsu, akwai babban damar lalata na biyun, wanda aka haɗa da na farko. Kuma wannan yana nufin ƙara zagayowar gwaji don gano duk matsaloli a gaba.

Ƙa'idar Juyar da Dogaro (DIP)

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

A sama akwai misali na lamba inda AppManager ya dogara da EventLogWriter, wanda bi da bi yana haɗe tare da AppManager. Idan kuna buƙatar wata hanya ta daban don nuna sanarwa, zama turawa, SMS ko imel, kuna buƙatar canza ajin AppManager.

Ana iya magance matsalar ta amfani da DIP. Don haka, maimakon AppManager, muna buƙatar EventLogWriter, wanda za a shigar da shi ta amfani da tsarin.

DIP yana ba da damar a sauƙaƙe musanya na'urorin mutum ɗaya tare da wasu ta hanyar canza tsarin dogaro. Wannan yana ba da damar canza tsarin ɗaya ba tare da shafar sauran ba.

Haɗin kai maimakon gado

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya SaniAkwai manyan hanyoyi guda biyu don sake amfani da lambar: gado da abun ciki, duka biyun suna da nasu fa'ida da rashin amfani. Yawancin lokaci an fi son na biyu saboda ya fi sauƙi.

Haɗin kai yana ba ku ikon canza halayen aji a lokacin aiki ta hanyar saita abubuwan sa. Lokacin aiwatar da musaya, ana amfani da polymorphism, wanda ke ba da ƙarin aiwatarwa.

Hatta Java mai inganci ta Joshua Bloch ya ba da shawarar zabar abun da ke ciki fiye da gado.

Barbara Liskov Principle (LSP)

Wata ka'ida daga kayan aikin SOLID. Ya bayyana cewa subtypes dole ne a maye gurbinsu da supertype. Wato, hanyoyin da ayyukan da ke aiki tare da babban darasi ya kamata su iya yin aiki ba tare da matsala tare da rukunin rukunin sa ba.

LSP yana da alaƙa da duka ƙa'idar alhakin guda ɗaya da ka'idar alhakin da aka raba. Idan aji yana ba da ƙarin ayyuka fiye da ƙaramin aji, to ƙarshen ba zai goyi bayan wasu ayyukan ba, keta wannan ka'ida.

Ga wani yanki na lamba wanda ya saba wa LSP.

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

Hanyar yanki (Rectangle r) tana ƙididdige yanki na Rectangle. Shirin zai fadi bayan aiwatar da Square saboda Square ba Rectangle ba ne a nan. Bisa ga ka'idar LSP, ayyukan da ke amfani da nassoshi zuwa azuzuwan tushe yakamata su iya amfani da abubuwa na azuzuwan da aka samu ba tare da ƙarin umarni ba.

Wannan ka'ida, wacce ke da takamaiman ma'anar subtype, Barbara Liskov ce ta gabatar da ita a cikin jigon taron 1987 mai taken "Bayanan Bayanan Bayanai da Matsayi," don haka sunanta.

Ƙa'idar Rarraba Interface (ISP)

Wata ka'idar SOLID. A cewarsa, bai kamata a aiwatar da hanyar sadarwa da ba a yi amfani da ita ba. Bin wannan ka'ida yana taimakawa tsarin ya kasance mai sassauƙa kuma ya dace da sake fasalin lokacin da aka yi canje-canje ga dabaru na aiki.

Mafi sau da yawa, wannan yanayin yana faruwa lokacin da ke dubawa ya ƙunshi ayyuka da yawa a lokaci ɗaya, kuma abokin ciniki yana buƙatar ɗaya daga cikinsu.

Tun da rubuta ƙa'idar aiki abu ne mai wahala, canza shi bayan an gama aikin ba tare da karya komai ba zai zama kalubale.

Amfanin ka'idar ISP a Java shine cewa dole ne a fara aiwatar da duk hanyoyin, sannan kawai za'a iya amfani da su ta hanyar azuzuwan. Saboda haka, ka'idar ta sa ya yiwu a rage yawan hanyoyin.

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

Shirye-shiryen don dubawa, ba aiwatarwa ba

Komai anan ya fito fili daga sunan. Yin amfani da wannan ka'ida yana haifar da ƙirƙirar lambar ƙima wanda zai iya aiki tare da kowane sabon aiwatar da ƙirar.

Ya kamata ku yi amfani da nau'in dubawa don masu canji, nau'ikan dawowa, ko nau'in hujjar hanya. Misali yana amfani da SuperClass maimakon SubClass.

Wato:

Lambobin jeri = samunLambobi();

Amma ba:

Lambobin ArrayList = samunNumbers();

Anan akwai aiwatar da abin da aka tattauna a sama.

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

Ka'idar wakilci

Misali gama gari shine hanyoyin daidaita () da hashCode() a Java. Lokacin da ya zama dole don kwatanta abubuwa biyu, ana ba da wannan aikin zuwa aji mai dacewa maimakon abokin ciniki ɗaya.

Fa'idar ƙa'idar ita ce babu kwafin lambar kuma yana da sauƙin canza hali. Hakanan ya shafi wakilan taron.

10 Ka'idojin Shirye-Shirye-Shirye-Shirye Kowane Mai Haɓakawa Ya Kamata Ya Sani

Duk waɗannan ka'idodin suna ba ku damar rubuta mafi sassauƙa, kyakkyawa kuma amintaccen lambar tare da babban haɗin gwiwa da ƙananan haɗin gwiwa. Tabbas, ka'idar tana da kyau, amma ga mai haɓakawa don a zahiri amfani da ilimin da aka samu, ana buƙatar aiki. Da zarar kun ƙware ƙa'idodin OOP, mataki na gaba zai iya zama koyan ƙirar ƙira don magance matsalolin haɓaka software na gama gari.

Skillbox yana ba da shawarar:

source: www.habr.com

Add a comment