<div dir="ltr">ZdravÃm vespolek,<br>byli jsme nÄkolikrát vyzýváni k tomu, abychom dali zpÄtnou vazbu, pokud nás nÄjaká napadne, pÃÅ¡i ji tedy nÞe. Protože Äekám, že by k tomu mohli mÃt ostatnà komentáÅe, posÃlám ji do konference. Psát budu o zápoÄtu, protože k pÅednášce mne už nic nenapadá, o tom jsme se již bavili.<br><br>Moje pocity a návrhy k zápoÄtu jsou následujÃcÃ:<br><br>1) ZruÅ¡it dokumentaci<br>OSy jsou pÅedmÄt velmi nároÄný na Äas a energii, vyžadujà množstvà práce srovnatelné s bakaláÅkou a pÅitom jsou to jen průbÄžný povinný pÅedmÄt. Studenti na nich strávà už jen psanÃm samotného programu velké množstvà Äasu a právÄ programovánà je (alespoÅ podle mého názoru) je to, v Äem se ÄlovÄk nejvÃce nauÄÃ. Vzhledem k tomu, kolik je toho potÅeba implementovat a za jak dlouho, si myslÃm, že valná vÄtÅ¡ina týmů spoléhá na Å¡tÄstà a nÄjaké množstvà magie, že to vÅ¡echno dohromady chodÃ.<br><br>Rád bych slyÅ¡el názory ostatnÃch na toto téma, já mám pocit, že vÄtÅ¡ina týmů (obzvláštÄ tÄch, co systém pÃÅ¡Ã poprvé) systém odevzdává se slovy "už to nikdy nechci vidÄt" a také tak koná. Než systém nÄkde dále rozÅ¡iÅovat (proÄ to dÄlat, když tu jsou jiné lepÅ¡Ã) by se hodilo ho celý pÅepsat s ohledem na Å¡patná rozhodnutÃ, která v nÄm jsou nÄkde hluboko zakonzervovaná. V takovém pÅÃpadÄ je psanà dokumentace rovno házenà perel svinÃm, protože na poslednà chvÃli (protože to dÅÃv nenà potÅeba) ÄlovÄk pÃÅ¡e nÄco, co si po nÄm nÄkdo jiný pÅeÄte nejvýše jednou a pak to už nikdy nikdo nepoužije. <br><br>Dokumentace patÅà do jiných pÅedmÄtů, kde je na ni vÃce Äasu (roÄnÃkáÄ, softwarový projekt, bakaláÅka, diplomka, zápoÄťáky) a dává smysl, protože studenti tyto práce obvykle pÃÅ¡Ã proto, aby byly posléze nÄkde použity a nebo to pomohlo ostatnÃm. Tam si psanà dokumentace vyzkouÅ¡Ã dostateÄnÄ. Jedny z nejhorÅ¡Ãch pocitů pÅi psanà byly, když jsem o vÃkendu pÅed deadline psal dokumentaci právÄ z toho důvodu, že jsou za ni body. BÄhem roku na ni nenà Äas, tam, kde je to potÅeba, již komentáÅe jsou a jejà uÄesávánà je nudná mechanická práce která jen bere Äas a nic nedává. ObdobnÄ to platà pro debugovacà výpisy, nejlepÅ¡Ã pomůckou se nám ukázaly prinkt a //, celá skvÄlá marka na debugovánà per module jsme psali tÄsnÄ pÅed odevzdánÃm, protože ÄlovÄk by potÅeboval ladÃcà výpisy povolovat do hloubky, což ale nevÃm, zda jde udÄlat (=chci sledovat, kudy debugovaná funkce procházÃ, ale napÅ. nechci sledovat vÅ¡echny mutexy, i když jeden z nich funkce použÃvá). <br><br>2) PrůbÄžné kontroly a konzultace<br>KromÄ průchodu testy by mi pÅiÅ¡lo zajÃmavé a pÅÃnosné (alespoÅ pro ty, kteÅà se se systémovým programovánÃm setkávajà poprvé), kdyby si opravujÃcà po každém deadline vyhradili nÄjaký Äas na ruÄnà kontrolu. PodÃvali by se na kód a pak se seÅ¡li s jednotlivými týmy a konzultovali s nimi právÄ probÄhlou Äást, záludnosti, které nebyly pokryty testy (a nebo testy omylem proÅ¡ly) a vhodnosti konkrétnÃch způsobů implementace. Z jedné strany je dobÅe, že si vÄtÅ¡inu vÄcà musÃme vymyslet sami, z druhé strany problém nÄkde hluboko vzniklý chybou návrhu a nalezený pÅi dokonÄovánà tÅetà stage ÄlovÄka spÃÅ¡ naÅ¡tve než posune dál. <br> <br>3) Upravit deadline<br>Zde bych mÄl jen malou poznámku a to, že by se hodilo pÅidat 4 hodiny za ztrátu 1 bodu (mezistupeÅ mezi odevzdám vÄas a odevzdám o týden pozdÄji). Jsem rád, že se deadline prodloužujà z vážných důvodů.<br><br>4) Upravit bodovánÃ<br>Tento bod souvisà s bodem 1). MyslÃm si, že kdyby se zruÅ¡il bod kvalita dokumentace a z nà se zachoval jen obecný text (klidnÄ v ÄeÅ¡tinÄ) se zajÃmavostmi implementace konkrétnÃch Äástà pÅesunutý do bodu 2), tak se omezà množstvà opruzu ve prospÄch programovánà a vylepÅ¡ovánà systému. To, že jsou funkce Äitelné, krátké a dobÅe strukturované mi pÅijde jako dostateÄný požadavek na kvalitu kódu a množstvà komentáÅů by mÄlo být bráno jako minoritnà kritérium. AlternativnÄ by se mi lÃbila možnost doplÅkové funkcionality za bonusové body. Rád bych napsal funkÄnà filesystém mÃsto kopÃrovánà definic debugovacÃch maker z mÃsta na mÃsto.<br><br>5) Možnost testovánà na reálném HW<br>Kdyby byla možnost dostat kromÄ simulátoru i nÄjaký reálný HW (tÅeba routerboard), na kterém by Kalisto bylo podporováno, motivovalo by mne to mnohem vÃce k programovánÃ. NevÃm, jestli je to snadné, ale myslÃm, že by snad možnost nahrát image pÅes U-boot a mÃt putc a getc ze sériové konzole by bohatÄ staÄilo a motivovalo by mne to k psanà mnohem vÃce než pouhý bÄh v simulátoru. Podpora reálného HW by mÄla samozÅejmÄ být volitelná a pÅÃpadnÄ za bonusové body. <br><br>5) Drobnosti pro debugovánÃ<br>Velmi by mne potÄÅ¡ilo nÄkolik drobnostÃ, které by pomohl v debugovánà a ÄlovÄk si je nemusel psát sám (protože nevÃ, kolik by mu to zabralo a jestli by se to vyplatilo):<br>a) trasovacà výstup z msimu na stderr - abych to mohl nÄkam pÅesmÄrovat a vidÄl, jak program bÄžÃ. MÃsta, kde se zapisuje na konzoli by byla v trace vyznaÄena obdobnÄ jako pÅeruÅ¡enÃ<br>b) funkÄnà diskové zaÅÃzenà v msimu - když se pÃÅ¡e, že můžu použÃt load a fmap, tak by mÄly fungovat obojÃ, ne že fmap pobÄžà a load nic neudÄlá a nestÄžuje si.<br>c) vÃce debugovacÃch výpisů msimu - když se mi zaÅÃzenà v pamÄti pÅekrývajÃ, tak chci, aby mne praÅ¡til pÅes prsty, ne aby to tiÅ¡e ignoroval. ObecnÄ mi chybÄla možnost -v, kdy by byl ukecanÄjÅ¡Ã a tÅeba mi Åekl, že soubor neotevÅe jako disk a proÄ. NemyslÃm si, že zkoumánà zdrojáků msimu a patchovánà by mÄlo být souÄástà OSů.<br>d) lepÅ¡Ã dokumentace k msimu - nÄkde u disku mi obÄas chybÄly jednotky (teÄ to nemohu najÃt), když se tam pÃÅ¡e, že sector set, ÄlovÄk by Äekal, že tÅeba set bude mÃt velikost vÄtÅ¡Ã než 1. Taky by se hodilo vÄdÄt, které parametry jsou povinné a které ne (když mapuji soubor, musÃm udávat velikost disku?)<br>ad b,c,d) disk dávám za pÅÃklad, protože jsem s nÃm hodnÄ pracoval, s jinými Äástmi jen okrajovÄ.<br>e) pÅevod trace na Äitelný text - bohatÄ by staÄil jednoduchý skript, kterému pÅedhodÃm trace a kernel.disasm (Äi jiný vhodnÄjÅ¡Ã) a dostanu u každé instrukce jméno funkce (a pÅÃpadnÄ i souboru), ze které instrukce pocházÃ. <br><br>Tolik to, co mne napadlo v průbÄhu psanà a doufám, že to pomůže pÅi budoucÃch zmÄnách pÅedmÄtu. Diskusi vÃtám.<br>S pozdravem<br><br>Tomáš "Jethro" Pokorný<br></div>