Koodaamista yhteen vai moneen tiedostoon?

Anonyymi-ap

Ohjelmoinnin kurssilla neuvottiin, että koodia kannattaa jakaa eri tiedostoihin. Kuulin myös ohjelmoijasta, joka tekee ainakin osan muistiinpanoista lähes mielivaltaiseen tiedostoon, josta automaattinen skripti siirtää esimerkiksi datat oikeaan paikkaan. Mitä etuja ja haittoja kummallakin lähestymistavalla on?

11

464

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Tyhmä kysymys. Mieti nyt vähän itsekin.

    • Anonyymi

      Jos on koodia jota voi käyttää useasti niin kannattaa pitää se eri tiedostossa joka sitten import tarvittaessa. Niin ei ole turhaan silmissä.

    • Anonyymi

      Erillistä dokumentaatiota voi olla paljonkin ennen koodausvaihetta. Koodin dokumentointiin on työkaluja esim. Doxygen osaa poimia koodista tietyllä tavalla kirjoitettuja kommentteja ja tehdä niistä nätin dokumentaation - tuo on vain esimerkiksi, voi löytyä parempiakin maailmalta tai johonkin kieleen voi liittyä omia tottumuksiaan dokumentaation suhteen ja yleensä niistä on tapana pitää kiinni, koska se nopeuttaa dokumentaation lukemista.

    • Anonyymi

      Eihän Legotalokaan ole yksi palikka, vaan osista, jolloin sitä on helppo muokata.

    • Anonyymi

      Yksi osakokonaisuus yhteen tiedostoon. Se helpottaa koodin omaksumista mm. sitten, kun sinä taikka joku muu joutuu ylläpitämään sitä joskus vuosien kuluttua.

      Yksi tiedosto on periaatteessa yksi moduuli, jonka linkkeri ottaa (kirjastosta) tai jättää linkittämättä ohjelmaan. Nykyään kääntäjä saattaa osata pilkkoa moduulin yksittäin linkitettäviksi funktioiksi, mutta vanha periaate on hyvä lähtökohta edelleen.

    • Anonyymi

      Ainakin jos haluaa kääntää tiedostoja rinnakkaistetusti (kun kääntää koko projektin puhtaalta pöydältä), kannattaa koodi olla mahdollisimman monessa tiedostossa, esim oma projekti kääntyy 32 tiedostoa kerralla, linuxissa noin 19s ja Windowsissa 35s, kooririvejä noin 93t.

      • Anonyymi

        Rinnakkaisuus ei välttämättä toimi toivomallasi tavalla. Sehän edellyttää jo lähtökohtaisesti sitä, että prosessori(t) ja käyttis tukevat rinnakkaisuutta h/w-tasolla. Jos koneessasi on 32 prosessoriydintä, edellytys saattaa täyttyä.

        Mutta useinhan on näin, että ohjelmamoduuliin luetaan iso nippu headereita tms., jotka saattavat olla kooltaan / rivimäärältään moninkertaisesti sen mitä itse projekti. 32 kertaa näiden headereiden läpikäynti on helposti suurempi työ kuin noin 93t koodirivin kääntäminen.

        Ajatus hyvä, mutta väitän, että kääntäjän suoritustehoa on vaikeaa nostaa koodin pilkkomisella.


    • Anonyymi

      Ohjelmakoodi kannattaa ehdottomasti jakaa useaan eri lähdekoodikooditiedostoon. Ohjelmakoodi on syytä jakaa loogisiin osiin , jotka kukin on omassa lähdekooditiedostossaan Yksittäinen lähdekooditiedosto voi sisältää johonkin tiettyyn tehtävään tehdyn luokan, komponentin tai moduulin jne. Ylipäätänsä ideana on pilkkoa lähdekoodi selkeisiin loogisiin osiin sensijasta, että kaikki tungettaisiin samaan lähdekooditiedostoon. Lähdekoodin pilkkominenuseisiin lähdekooditiedostoihin mahdollistaa mm. nämä:

      - uudelleen käytettävät lähdekoodikomponentit, joita voidaan käyttää useaan kertaan ilman, että pyörää tarvitsee jns keksiä uudelleen aina kun samaa toiminnallisuutta tarvitaan samassa tai eri projektissa.

      - Paljon selkeämmän ja helpommin ylläpidettävän lähdekoodin

      - uudelleen käytettävän komponentin muuttamisen ja jatkokehittämisen niin, että muutokset tarvitsee tehdä vain kerran ja jatkokehitettyä komponenttia voidaan sitten heti käyttää useassa paikassa saman tai eri projektin sisällä.

      jne.

    • Anonyymi

      100 tiedostoa, 10 riviä per tiedosto = lukukelvotonta.
      Vielä 10000 riviä menee yhdessä tiedostossa hyvin kun käyttää funktioiden ja luokkien supistamista editorissa.

      • Anonyymi

        Niinno, hyväkin asia voi kääntyä huonoksi liian pitkälle vietynä.


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Suomalainen perheenisä vaatii Suvivirren esittämisestä hyvityksiä

      Itse lapsena uskonnonopetuksesta vissiin traumoja saanut ihka suomalainen (!) perheenisä vaatii Espoon kaupungilta korva
      Maailman menoa
      529
      2599
    2. Vesikin maksaa, miksei hengitysilma?

      Jatkuvasti itketään ettei ole rahaa mihinkään, mutta tilastojen mukaan rahaa on enemmän kuin koskaan, joten miksei asial
      Maailman menoa
      53
      2240
    3. Satuolennoista tarinointi ei kuulu peruskoulun tehtäviin

      Opetustunteja on muutenkin käytössä vain rajallinen määrä. Eli nämä satuhommat koulun ulkopuolelle vapaaehtoisiin harras
      Maailman menoa
      206
      2196
    4. Joensuun kaupunki levittelee tonttitietoja Keskisuomalaiselle

      Sähköposteja ja tonttitietoja levitellään mm. Pasi Koivumaalle
      Joensuu
      13
      1628
    5. Mies profiloin sinut

      Etsit täysin hallittavaa mutta samalla poikkeuksellista ihmistä. Etsit jotain mitä et koskaan tule saamaan.
      Ikävä
      219
      1489
    6. Kiantama kartelli

      Onko alhaisempaa kuin toimia ensin kartellissa ja lopuksi koittaa pelastaa nahkasa vasikoimalla muut kun jää kiinni? Eip
      Suomussalmi
      50
      1406
    7. Nostetaanko nainen kissa pöydälle?

      Ja selvitetään nämä tunteet?
      Ikävä
      97
      1359
    8. Oletko nainen alkanut kammoamaan minua

      Sinua ei näy eikä kuulu, ja ilmeisesti kiertelet tilanteita. Oletko huomannut, että olet vieläkin ajatuksissani luvattom
      Ikävä
      62
      1171
    9. Saako 60 v vielä töitä? Arto Nyberg puhuu suoraan elämästä ilman töitä

      Arto Nyberg täyttää tänään 60 v. Onnea! Nyberg totuttiin näkemään suoran haastatteluohjelman kapteenina vuodesta toise
      Maailman menoa
      94
      1141
    10. Unohdettu parannuksen kaste

      Kuinka kauan kestää helluntailaisten kastekoulutus ja onko se tosiaan parannuksenkaste koulutusta ?
      Kaste
      693
      1055
    Aihe