Archive for March, 2008
C++ kodeerimise reeglid suurprojektis
Slashdot’i lugedes satub aeg-ajalt päris huvitavate teemade peale. Seekord jäi silma Dr. Dobbs’i intervjuu Bjarne Stroustrupiga raskuste teemadel C++ progejate koolitamisel.
Intervjuu kõige-kõige huvitavam osa oli viide JOINT STRIKE FIGHTER AIR VEHICLE C++ CODING STANDARDS dokumendile. Väga-väga asjalik lugemine. Annab aimu, mis reegleid rakendatakse reaalsel suurprojektide kodeerimisel. Eriti sellises projekti juures, kus turvalisus (sealhulgas inimelud) sõltuvad tarkvara toimimisest. Nagu soovituste dokumendis on öeldud – selle järgimine ei garanteeri midagi, aga annab lootust;)
Note that following the guidelines contained within this document will not guarantee the production of an error-free, safe product. However, adherence to these guidelines, as well as the processes defined in the Software Development Plan [12], will help programmers produce clean designs that minimize common sources of mistakes and errors.
Dokumendis on toodud 220 reeglit või soovitust, mida tuleks jälgida.
Olles ise viimased 8-10 aastat kasutanud Erlangi nimelist programmeerimiskeelt, mis on disainitud töökindlate süsteemide loomiseks [1], tuleb tõsiselt tunnustada C++ kasutajate oskusi. Sellise hulga reeglite ning soovituste järgmine töökindla tulemuse saavutamiseks ei ole lihtne. Au neile!
hello world..
Iga asi algab algusest. Kui asi on kuidagigi seotud programmerimisega, siis on alguseks mingisugunne “hello worldi” ekraanile trükkimine. Näiteks erlangis käib see umbes nii:
-module(hello).
-export([world/0]).
world() ->
io:format("Hello world~n").
Aga kogu selle kirjutamise käigus armastab wordpress kuidagi vastikult asju ümber formattida. Huvitav, kuidas kogenud kasutajad postitavad artikkleid, kus on preformatitud koodi sees?
Proovime, kas nüüd on parem:
print_numbers(N) ->
[io:format("~p ", [X]) || X < - lists:seq(N)].