Kung Bakit Mahalaga ang Di - maipaliwanag na mga Simulain sa Makabagong Edukasyon sa Inhinyeriya

Ang mga prinsipyo ng SOCtware engineering ay matagal nang nakikipagpunyagi sa pag-aaalsa ng puwang sa pagitan ng teoriya at industriya-handang gawain. Ang mga prinsipyo ng SOLID ay nagbibigay ng isang kongkretong balangkas para sa pagdidisenyo ng mga bagay na maaaring panatilihin, ma-calable, at matsektiplyableng mga sistema. Ang pagtuturo ng mga prinsipyong ito ay hindi lamang tungkol sa pagtatala ng mga phymplide ng mga mag-aaral tungkol sa pag-iinambigo ng mga modelo ng isipan na magrereresulta sa bawat designed na mga istrate istrate questytures. Kapag ang mga mag-pwers.Ang mga mag-edulasyon ng mga estudyante ay nag-aral ng mga prinsipyo ng STresultailfunctor sa STRILID.

Mga Pundasyon: Kung Ano ang Dapat Malaman ng Bawat Edukador Tungkol sa SOLID

Bago mag-frash sa mga estratehiya sa pagtuturo, kritikal na magkaroon ng kabahaging pagkaunawa sa bawat prinsipyo. Ang limang panuntunan, na ipinakilala ni Robert C. Martin noong unang bahagi ng 2000s, ay:

  • [[Pangle Responsibility Principle (SRP): Ang isang klase ay dapat na may isa, at isa lamang, na dahilan upang magbago.
  • ]Open/Closed Principle (OCP): Ang mga software entity ay dapat bukas para sa eksistensiya ngunit isinara para sa modipikasyon.
  • Ang mga Substitute (LSP): Subtype ay dapat palitan para sa kanilang mga baseng uri nang hindi binabago ang pagiging tama.
  • Interface Segregation Principle (ISP): Hindi dapat pilitin ang mga Client na umasa sa mga interface na hindi nila ginagamit.
  • Dependensiya Inversion Principle (DIP): Depende sa mga abstraktong abstrakto, hindi sa mga konkretong konkretong konkretong konkretong konkretong pang-eksperensiya.

Para sa mas malalim na pagsisid sa orihinal na kahulugan, ang pundasyong papel ni Martin "Design Principles and Design Cydies" ay nananatiling mahalaga sa pagbasa. Maraming tagapagturo ang tumutukoy rin ang Wikipedia SOLID na artikulo para sa maikli ngunit malinaw na pagsasalaysay.

Estratehiya 1: Turuan ang mga SOLID sa Pamamagitan ng mga Amoy at Pagre - refactor

Ang mga estudyante ay madalas na nakikipagpunyagi sa SOLID dahil ang mga benepisyo ay hindi agad nakikita sa isang maliit na codebase.Ang isang napatunayang paraan ay ipakilala ang mga code amoins firstisterye puntos na ang bawat developer ay nakaranas. Halimbawa, ang isang klase na humahawak ng file I/O, data factation, at pagtotroso ay lumalabag sa SRP. Ipakita ang mga mag-aaral ng isang "bago" bersyon na may mga amoy na ito, pagkatapos ay i-recounctor sa pamamagitan ng recombinging sa isang SOLD-compositions[composable designant. Ang pamamaraang pang-inations: Ang mga intelements-inters na ito ay bihirang ang mga nag-antang mga nag-antasy na mga spekt na mga spekt; ang mga spes ay nag-CORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORCORC

Aktibong Pagkatutong Parol: Pagre - refactor ng Kart

Ilaan ang isang klase ng Java o Python na tinatawag na na nagkukuwenta ng mga kabuuan, naglalapat ng mga diskuwento, gumagawa ng isang buod ng order, at nag - iipon sa isang database. Hilingin sa mga estudyante na itala ang lahat ng pananagutan. Pagkatapos, magkasama, muling gumawa sa hiwalay na mga klase: , , [[FLT], at [[FLTL] Ang SR. Ang SR ay gumagawa ng bagong uri ng OPL], at ang nagbibigay ng mga simulain ay nagpapangyaring gumawa ng isang bagong impormasyon kung paano ito ay maaaring gumawa ng isang kodigo [[T] na ang D&T] ay maaaring gumawa ng isang kodigo na ang L&T].

Estratehiya 2: Gumamit ng Nakikitang mga Analogyo at mga Metamor

Ang mga prinsipyong pang-edukasyon ay nagiging madaling makuha kapag nagguhit ng mga pamilyar na sistema. Para sa SRP, ihambing ang isang Swiss Army kutsilyo (violates SRP) sa isang set ng mga dedikadong kutsilyong pangkusina (kasunod ng SRP). Para sa OCP, gumamit ng isang media player na sumusuporta sa mga plinsiyo na nagdadagdag ng mga bagong codecs nang hindi binabago ang kodigong pang-ilalim. Ang LSP ay maaaring ituro gamit ang klasikong "Square-Rectangle": kung ang pagbabago ng lapad ng isang perificancereaturedropse na inrianture codes, ang kits. Ang mga kit ay hindi na may top na top na top na top na top na top na top na top na top na top na top na toptoptoptoptop na top na top na top na top na top na topsower (pwer) na top top top top toptoptoptop top top top top

Estratehiya 3: Pasulungin ang Pagiging May Simulain

Turnuhan ang pag-aaral sa isang larong pangkomiks. Mag-release ng isang deck ng card (o digital requires) kung saan ang bawat card ay naglalarawan ng isang code senaryo. Ang mga Estudyante ay naglalayon upang matukoy kung aling prinsipyo ng SOLID ang nilalabag (o sinusunod). Award points para sa tamang sagot at bonus puntos para sa pagmumungkahi ng isang fix. Ito ay gumaganang isang mainit-up sa pagsisimula ng klase o bilang isang review adytards bago ang pagsusulit.[T] Ang mga kasangkapang katulad ng [[FL] ay maaaring maging aktiploid para sa bawat entryploid na ential na entryptoptoptoptoptoleclecleclecleclecle[T.[T] ay maaaring ma-C.[T].[T] Ang mga platform ay maaaring ma-C.[T.[T.[T.[T] Ang mga platic.[T.[T] Ang mga platform ay maaaring ma-C.[T] Ang mga platform

Estratehiya 4: Ipinokluwensiya ang SOLID sa Full-Stack o Project-Based Course

Ang mga indibidwal na ehersisyo ay kapaki-pakinabang, ngunit ang mga prinsipyo ng SOLID ay nagkakaroon ng tunay na kahulugan kapag ikinapit sa isang mas malaking sistema.signed ang isang semest-long grupo proyekto kung saan ang mga mag-aaral ay gumagawa ng isang multi-tier application (e.g., isang sistema ng pamamahala ng aklatan, isang restawran na nag-aayos ng plataporma). Explicitly na ang arkitektura ay sumusunod sa mga prinsipyo ng SOLID. Sa bawat mga desisyon ng disenyo sa mga stage, ang mga recogulator ay nagbibigay ng isang panimulang codebase na sa isa o higit pang-kadesis ng mga prinsipyo at mga adytiba sa mga adroleksiyon ng mga entrent.

Mahalagang Halimbawa: Muling Pag - aasawa Upang Makamit ang DiP

Pagkatapos ng unang pagtakbo, ang proyekto ay maaaring magkaroon ng isang na tuwirang magpapahintulot sa isang .

Karaniwang mga Hamon at Kung Paano Mapagtatagumpayan ang mga Ito

Kahit na may matitibay na estratehiya, ang mga estudyante ay napapaharap sa mga hadlang, narito ang pinakamadalas na mga patibong at kung paano haharapin ang mga ito.

Hamon: Sobrang-Ingineering

Kung minsan, ang mga tagadisenyo ng novice ay naglalagay ng mga prinsipyo nang dogmatiko, lumilikha ng hindi kinakailangang mga interface at abstraktong patong. Ituro na ang SOLID ay isang kasangkapan, hindi isang aklat ng alituntunin. Idiin na ang tunguhin ay ang pagiging matatag at ang pagpapakilala ng abstraksyon ay may halaga. Gamitin ang "Rule ng Tatlo": tanging mahirap unawain kapag mayroon kang tatlo o higit pang mga katulad na gawi. Maglaan ng mga halimbawa kung saan ang isang payak na kung-else ay mas mabuti kaysa sa isang interface hierarkiya.

Hamon: Kalituhan ng LSP

Kadalasang itinutumbas ng mga estudyante ang LSP sa pag-uuri ng mga uring kaligtasan o polymorphism sa pangkalahatan.[alaman na ang LSP ay tungkol sa substityping: ang isang subclass ay hindi dapat magpahina sa mga pre-condition o magpatibay sa mga post-condition ng magulang nito. Gamitin ang isang pamunuan ng klase tulad ng at (ang penguin ay isang ibon ngunit hindi makalipad) upang ipakita ang defection fectif na ang base class [[T:T], sub-cts] na nag-ct [[T] na nag-i-ct] na ang mga interfacereachlect [[T] ay ang mga spiral ng sariling mga espasyo[T] ay nag-ct][T][T][T][T][T] Ang mga espasyo [[T] ay hiwalay sa mga espasyo [[T][T][T][T][T].

Hamon: Isang Di - makatuwirang Kaisipan

Ang ilang estudyante ay nabubuhay sa kongkretong mga larawan ngunit ang mga ehersisyong may kaugnayan sa disenyo ay tumutulong sa kanila na makita ang pagbabago ng kontrol.

Mga Estratehiyang Hindi Pa Naiwawasto

Ang mga tradisyunal na multiple-choice analysis ay maaaring subukin ang pag-aalala ng mga depinisyon ngunit hindi nasusukat ang aplikasyon. sa halip, ang mga pagtatasa ng disenyo na nangangailangan ng pagsusuri at synthesis ng mga prinsipyo ng SOLID.

Lumitaw ang mga Palabas sa Design Review

Bigyan ang mga mag-aaral ng isang medyo masalimuot na diagram o code list na naglalaman ng mga maramihang paglabag na SOLID. hilingin sa kanila na matukoy ang mga espesipikong paglabag, ipaliwanag kung bakit sila problematiko, at imungkahi ang mga disenyong refactored. Ang open-ended format na ito ay sumusubok ng malalim na pag-unawa.Gede batay sa pagiging tama ng pagkakakilanlan at pagiging feasible ng iminungkahing solusyon.

Pag - aayos sa mga Portfolio

Ang bawat estudyante ay dapat magbigay ng portfolio ng mga ehersisyong refactoring na kanilang natapos sa semester. hhimukin ang mga mag-aaral na magbigay bago/pagkatapos ng code at isang maikling katwiran para sa bawat prinsipyo na inilalapat. Ang portfolio na ito ay nagiging isang nakikitang adaptasyon na maaari nilang talakayin sa mga panayam sa trabaho. Himukin ang peer review kung saan ang mga estudyante ay nag-ebolb sa mga disenyo ng mga periorbiyotib na mga insiplusibong pang-inhin.

Mahalaga ang Proyektong Impluwensya

Sa halip na isang pangwakas na pagsumite, nangangailangan ng mga koponan na magsumite ng mga dokumentong pangdisenyo sa mga pangunahing punto: panimulang arkitektura (kailangang sundin ang estado SOLID), pagkatapos ng unang muling paggawa, at pangwakas na kodigo. Maglaan ng mga puntong rubriko partikular na para sa tamang aplikasyon ng bawat prinsipyo. halimbawa, ipinapakita ang SRP kung walang klase ang may higit sa isang malinaw na pananagutan; ang OCP ay ipinapakita kung ang mga bagong katangian ay maidaragdag nang hindi binabago ang mga umiiral na klase. Ang ganitong pagtasa ay nakababawas sa pagsisikip at pagbibigay diin sa pag-ayos ng mga inereprodukwensiya.

Pag - abot sa Pangmalas ng Industriya sa Silid - aralan

Ang mga pinaka-madamdaming lektyur mula sa mga makaranasang software engineer na maaaring magbahagi ng mga tunay na kuwento ng mga kabiguan at tagumpay ng SOLID ay napakahalaga. Kung hindi maaaring gawin ang mga live na panauhin, gumamit ng mga isinaplakang pahayag o pag-aaral ng kaso. [Robert C. Martin's talk "SOLID Principles" sa YouTube ay nagbibigay ng tunay na konteksto.[0] Itinatampok din kung gaano kalaking open-sour projectscle tulad ng Ang mga DIP visexation (para sa pamamagitan ng injection) o pag-ination (para sa komposisyon) para sa mga prinsipyong entrepwer) na ito ay aktuwal na na na na na na na na na ine-composure kapag ang mga prinsipyong ineplaytified.

Pagsasaayos: Pagtatayo ng Matibay na Pundasyon Para sa mga Nakapanimulang Inhenyero

Ang pagtuturo ng mga prinsipyong SOLID ay hindi isang one-lecture na gawain.[kailangan ng stageing approduce code amoins, pinagtibay sa pamamagitan ng mga refactoring na mga ehersisyo, pinalalalim sa pamamagitan ng mga visual appearances, at nai-record sa project-based na pagkatuto. Sa pamamagitan ng paglipat mula sa mga hiwalay na prinsipyo memorization tungo sa homoristic designing pag-iisip, inihahanda ng mga edukador ang mga mag-aaral upang isulat ang software na na na na na naka-editiporya sa mga sistemang nag-edyu-edyung-panahon.Ang mga ito ay tunay na handa para sa mga software.