Onko turhan koodin kirjoittaminen huonoa käytäntöä?


Paras vastaus

Kyllä, kirjoitat samoja lajikkeita, hakuja ja merkkijononkäsittelytoimintoja tuhansia kertoja, kukin vain alaikäinen muunnelma edellisestä kerrasta.

Tämä on niin totta, että akateemisessa maailmassa on syntynyt sanaa säästävä filosofia, joka kieltää sen nimeltä ”Älä toista itseäsi”, joka teeskentelee, että on olemassa tapa olla kirjoittamatta samaa koodia ja yli.

Tämä tyhmä mantra täytyy todella lyödä ihmisiltä.

Älykäs muotoilu tarkoittaa, ettei sinun tarvitse aloittaa alusta alkaen joka kerta, ja älykäs koodaus tarkoittaa tietämistä milloin kirjoittaa jotain. uusi ja milloin uusi koodi on käytettävä.

Koodin uudelleenkäytöllä aikaa säästävänä, virheenkorjausta säästävänä toimenpiteenä on etunsa, kun se on käytettävissä. Tästä on kehittynyt hyödyllisiä työkaluja, kuten yleisiä ja mallipohjia sekä perintö- ja universaalien sovellusliittymien käsite, jotta lajittelusta ja hausta tulee yleisiä sen sijaan, että tarvitsisit uuden hakutoiminnon kirjoitettavaksi kaikentyyppisille taulukoille tai luetteloille.

Kooditekstin kopiointia pidetään pahimpana virheenä, koska se kopioi vikoja ja paisuttaa koodia, ja sitä pidetään ensisijaisesti turhana.

Tässä perintö loistaa koodinvähennysstrategiana. Alaluokkien ei tarvitse olla kalliita perusluokkiensa uudelleenkirjoittaminen, jos suurin osa kaikille alaluokille yhteisistä toiminnoista siirretään perusluokkaan. Monta kertaa alaluokka voi kutsua perusluokkafunktion ja suorittaa sitten muutaman muutoksen itse sen sijaan, että koko toiminto täytettäisiin. Tästä he puhuvat.

Mutta ”Älä toista itseäsi” on saanut kulttiaseman tällaisilla foorumeilla jonkinlaisena ihanteellisena tapana koodata ja suunnitella, eikä se vain ole totta tai käytännöllinen tai osa mitä tahansa suurta reaalimaailman koodikokonaisuutta.

Ylisuunnittelu on tarkoitettu kielenkehittäjille, teoreetikoille ja kehyssovelluksille. Käytännölliset koodaajat vain kirjoittavat toimivan koodin, ja jos ohjelmassasi on kaksi luokkaa, jotka molemmat toteuttavat binaarihaun, niin mitä. Tarvitsetko todella kolmannen luokan, jossa on alaluokkia, binäärihakujen käsittelemiseksi kahdelle muulle tietoluokalle? Ehkä, mutta kyse on datasarjojen suurentamisesta binäärihaun tarpeella, silloin on reaaliaikainen ja virhesäästö, jos sinulla on luokka, joka tekee sen oikein, joka voidaan luokitella alaluokkaan käsittelemään tietoluokkien tarpeita. Näetkö?

Suuri ohjelmointi vie paljon enemmän työnjaon suunnittelua ja analysointia kuin pienten töiden ja työkalujen ohjelmointi. Joten kyllä, jos sinulla on projekti, jossa on yli 1000 koodiriviä, katso suunnittelu ja etsi tarpeettomat algoritmit ja toiminnot ja päättää, voitko kerätä ne yhteen tai kahteen toiminnalliseen apuohjelmaan ja jakaa koodin kaikille dataobjekteille. Mutta älä tee siitä uskonnollista pyrkimystä lopulliseen irtisanomiseen. Ja älä usko niitä, jotka uskovat.

Vastaa

Jos se on tehokkain vaihtoehto, se ei ole huono käytäntö. Tee mitä tahansa , jolla on kuitenkin yksinkertaisempi ja tyylikkäämpi ratkaisu, mutta on huono käytäntö .

Tällöin jättimäinen kytkin voidaan usein korvata käyttöliittymällä tai antaa luokalle oma vastuunsa tms.

Esimerkiksi, jos sinulla on jotain tällaista :

Tämä toimii . Koodi on tavallaan vankka, kunhan arvoja vain lisätään eikä muokata, ja se on todella varsin tehokas, koska bittivertailu vie käytännössä nolla aikaa. Mutta tämä menee käsistä, on vaikea navigoida, ja sinun jo on määriteltävä nämä autoluokat joka tapauksessa.

Aloitetaan sen sijaan jotain tällaista:

Jälleen meillä oli todennäköisesti tämä joka tapauksessa, vain ilman numeroOfCylinders-menetelmää, joten nyt ensimmäinen menetelmä näyttää vain tältä:

Kuvittele nyt hetkeksi, että olemme kansallinen autovaraosakauppa, ja meillä on kirjaimellisesti tuhansia erimerkkisiä autoja, malleja, koristeita jne. Että jos / muuttuisi valtava hirviö, mahdotonta lukea, erittäin vaikea lisätä turvallisesti tai poistaa jne.

Joten taas , se ei ole aina huono käytäntö, ja joskus tarvitsemme suuren kytkimen tai jotain sellaista, mutta yleensä siellä on helpompi tapa piiloutua.

MUOKKAA: n erittäin suuri määrä autoyhdistelmiä (mahdollisesti miljoonia koko historian ajan) ja luokkia, joissa auto epäonnistuu täällä. Tietysti tietyssä vaiheessa luokat eivät toimi, ja tallentaisit tasaisia ​​tiedostoja tietokantaan ja käyttäisit lisävarustetta.

Vastaukseni oli tarkoitus osoittaa erittäin pitkäaikaisen käytön kuoppa. ehdollisia lauseita, ei todellisena yrityksenä rakentaa autonosien myymäläarkkitehtuuri.Jos työskentelet suuressa autoliikkeessä, älä ota yksinkertaista vastaustani ohjelmistoarkkitehtuurin perustaksi 🙂

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *