Blbě strukturovaný.., asi ano ;) Možná by na začátku každého článku měl být obsah. Z něj by bylo snad patrné, že odbočka k modulům svou logiku má. Mluvím o hře na privátní členy, proto zmiňuji, že své využití mají pouze mimo dědičnost a třídy. Tedy pouze u modulů nebo globálních funkcí.
K tvé připomínce. Ač je logická a správná, myslím, že vyvozuješ nedobrý závěr. Zkusme si porovnat klady a zápory obou způsobů:
// tvůj způsob
var foo = function foo() { };
// versus můj
var foo = function() { };
Zápis, který považuji za jediný správný, tedy anonymní funkce přiřazená do proměnné foo, skutečně způsobí, že žádný ladící nástroj (Visual Studio, Firebug, Chrome debugger atd.) nemůže zobrazit název funkce. Kde by jej také vzal, že :)
Avšak každý ladící nástroj, nás po kliku na řádek anonymous_function přenese na deklaraci funkce. Osobně se domnívám, že se s tím dá obstojně žít (a to jsou některé mé projekty velmi složité :)
Nyní k záporům. První co mi vadí, je duplikace názvů. Dříve nebo později, bude třeba kód refaktorovat, a myslet na to, že je třeba vždy měnit název na dvou místech, mi přijde otravné (můj názor). Co mi přijde horší, je rozdílný způsob vyhodnocování viditelnosti takto deklarované funkce (mimochodem, není pravda co se píše v jiném komentáři zde, že funkce se stane globální).
Kód se vyhodnocuje „odshora dolu“. Až dojde Javascript k var, proměnná foo se stane viditelná v celém svém scope. Ovšem než se Javascript pustí do samotného vyhodnocování, mrkne se, jestli v celém scope není nějaká funkce přímo pojmenována, a pokud ji nalezne, „zviditelní“ ji ihned.
Nejlépe to osvětlí příklad: http://jsfiddle.net/Y7eRB/
Nebudu argumentovat oblíbeným hypotetickým případem „něco si někde přepíšeme“, který je málo pravděpodobný, pokud zrovna nepíšeme program stylem plachta ;) Budu argumentovat tím, že až bude náš kód někdo číst, bude se lámat hlavu, proč je tam název určen 2×, a bude jej to rozptylovat od práce. No a nakonec, neznám knihovnu, ani komponentu, která by tento styl používala.
Jak vidíš, je to trade-off. Pokud trváš na svém způsobu, dobře. Buď pak ale důsledný, a používej jej všude. A donuť i všechny ostatní programátory ve svém týmu, ať jej také používají ,–)