Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Odpověď na názor

Odpovídáte na názor k článku Omezuje prastaré ASCII dnešní programátory?.

BLEK.
BLEK. (neregistrovaný) ---.tmcz.cz
18. 11. 2010 18:19

Re: LISP

celé vlákno

Když použiješ knihovní funkci na pole, jiný programátor s velkou pravděpodobností ví, jak to funguje. Když použiješ vlastní makro biktopovo-n-rozmerne-pole, tak nikdo neví, jak to funguje.

Jak by se to metaprogramování mělo řešit na velkém projektu?

* nechat si každého programátora napsat vlastní makro na pole --- pak jeden nepřečte kód druhého, ani si to pole nebudou schopni efektivně předat.

* seskupit programátory a nechat je navrhovat makro způsobem "a já bych tam ještě přidal proměnný počet rozměrů" ... "a já bych tam ještě přidal kompresi nepoužitých prvků" ... "a já bych tam ještě přidal efektivní přidávání prvků doprostřed" ... "a já bych tam ještě přidal bla bla bla" --- pak ti z toho vznikne neuzvěřitelný bastl.

* nebo vedoucí projektu to makro na pole navrhne a pak direktivně řekne "použije se toto makro na pole, jiná makra na pole jsou zakázána, chce-li někdo funkcionalitu, která tam není, má smůlu, musí ten svůj problém jinak řešit". Asi nejlepší řešení. Jenže místo toho rovnou můžeš říct "použije se C++ STL, vlastní implementace datových struktur jsou zakázané", vyjde to nastejno, navíc ušetříš čas návrhu a implementace a učení-se těch vlastních maker.

"Přece při programování obvykle nestuduješ, jak fungují jednotlivé funkce v knihovnách" --- knihovny nestuduji, ale studuji, jak fungují jednotlivé funkce, které napsali jiní programátoři na témže programu. To jinak ani nejde. Program (ani aplikační) nenapíšeš způsobem "uděláme specifikaci rozhraní mezi moduly, pak jednu skupinu necháme psát implementaci toho rozhraní, druhou skupinu necháme to rozhraní použít, a jedna skupina se nebude muset dívat na kód druhé". Když to rozhraní navrhneš, tak to navrhneš s velkou pravděpodobnostní blbě, že to půjde těžko implementovat nebo to bude nepoužitelné. Když se zjistí, že je to těžko implementovatelné, musí se to rozhraní změnit. Když se zjistí, že je to nepoužitelné, musí se to rozhraní taky změnit.

Ten návrh rozhraní mezi částmi programu je spíše iterativní cyklus "pokusíme se to specifikovat, pokusíme se to implementovat, opravíme specifikaci, aby se to lépe implementovalo, pokusíme se to použít, opravíme specifikaci, aby to bylo použitelné, změníme implementaci podle specifikace, pokusíme se to použít víc, zjistíme, že je tam ještě potřeba tohle, zjistíme, že tohle ve specifikaci jsme nikde nepoužili, tak to odstraníme, atd." Když tenhle cyklus dobře opakuješ, vznikne ti z toho solidní použitelné rozhraní. Když ten cyklus neděláš, tak z toho vznikne "návrh od komise".

   
Chcete přispět jako registrovaný uživatel? Přihlaste se ke svému účtu.
Ochrana proti spamovacím robotům. Odpovězte prosím na následující otázku: Jaký je letos rok?
 

Pravidla pro diskutující

Přidáním čtenářského příspěvku do diskusí či fóra souhlasíte s tím, že budete dodržovat následující pravidla. Při jejich hrubém porušení se vystavujete riziku smazání příspěvku, jeho modifikaci, v krajním případě i zablokování přístupu do diskusí.

Redakce ze zásady nezasahuje do čtenářských diskusí a zavazuje se, že nebude mazat ani modifikovat příspěvky, kromě případů, kdy tyto porušují některé z následujících pravidel. V takové situaci je na zvážení redakce, zda příspěvek modifikuje s viditelným upozorněním, či přímo smaže. Redakce nikdy nemaže „nesouhlasné komentáře“ jen proto, že jsou nesouhlasné. Vítáme střet názorů, ale vždy v rámci slušné a kultivované debaty.

Příspěvky nesmí obsahovat:

  1. Vulgární či hrubé výrazy.
  2. Urážlivé výroky na adresu druhé osoby či skupiny osob.
  3. Texty, které mají za cíl jen vyprovokovat emotivní reakci (trolling).
  4. Rasové útoky či útoky na jakoukoliv jinou menšinu či skupinu obyvatel.
  5. Komerční nabídky a affiliate odkazy.
  6. Odkazy na warez, sériová čísla, licenční kódy, pornografii a další nevhodný materiál stejně jako žádosti o poskytnutí tohoto obsahu.
  7. Prokazatelně protiprávní obsah.

Informace o soukromí: U všech přidaných komentářů provozovatel ukládá IP adresu a hostname odesílatele. U neregistrovaných uživatelů se na webu zobrazuje část hostname, případně IP adresy, neumožňující identifikovat konkrétní počítač.

Povolené značky XHTML: a, br, code, em, li, ol, p, pre, strong, sub, sup, ul