j
11.14 "Nezhelanie programmistov dokumentirovat' proekt proishodit ne
stol'ko ot leni, skol'ko ot neuverennosti, stoit li svyazyvat' sebya
otstaivaniem reshenij, kotorye, kak znaet proektirovshchik, yavlyayutsya
predvaritel'nymi" (Kosgrouv).
11.15 Sozdavat' organizacionnuyu strukturu s uchetom vneseniya v budushchem
izmenenij znachitel'no trudnee, chem proektirovat' sistemu s uchetom budushchih
izmenenij.
11.16 Rukovoditel' proekta dolzhen stremit'sya k tomu, chtoby ego
menedzhery i tehnicheskij personal byli nastol'ko vzaimozamenyaemy, naskol'ko
pozvolyayut ih sposobnosti. V chastnosti, nuzhno imet' vozmozhnost' legko
perevodit' lyudej s tehnicheskoj na upravlencheskuyu rabotu i obratno.
11.17 Prepyatstviya k podderzhaniyu effektivnoj organizacii s dvojnoj
sluzhebnoj lestnicej yavlyayutsya sociologicheskimi. Neobhodimo postoyanno
bditel'no i energichno borot'sya s nimi.
11.18 Legko ustanovit' sootvetstvuyushchie razmery zhalovan'ya dlya
sootvetstvuyushchih stupenek dvojnoj lestnicy, no trebuetsya prinyat' mery, chtoby
dat' im sootvetstvuyushchij prestizh: odinakovye ofisy, odinakovye sluzhby
podderzhki, v znachitel'noj mere kompensiruyushchie upravlencheskuyu deyatel'nost'.
11.19 Organizaciya po tipu operacionnoj brigady pozvolyaet aktivno reshat'
vse storony etoj problemy. |to dejstvitel'no dolgosrochnoe reshenie problemy
gibkoj organizacii.
Dva shaga vpered, shag nazad: soprovozhdenie programm
11.20 Soprovozhdenie programmy v korne otlichaetsya ot soprovozhdeniya
apparatnoj chasti; ono sostoit, glavnym obrazom, iz izmenenij, ispravlyayushchih
konstruktivnye defekty, vklyuchenie dopolnitel'nyh funkcij ili adaptaciyu k
izmeneniyam sredy ispol'zovaniya ili konfiguracii.
11.21 Stoimost' pozhiznennogo soprovozhdeniya shiroko ispol'zuemoj
programmy obychno sostavlyaet 40 i bolee procentov stoimosti ee razrabotki.
11.22 Stoimost' soprovozhdeniya sil'no zavisit ot chisla pol'zovatelej:
chem bol'she pol'zovatelej, tem bol'she oshibok oni nahodyat.
11.23 Kempbel otmechaet interesnuyu krivuyu vzleta i padenij
obnaruzhivaemyh oshibok v techenie zhizni produkta.
11.24 Ispravlenie odnoj oshibki s bol'shoj veroyatnost'yu (ot 20 do 50
procentov) vnosit druguyu.
11.25 Posle kazhdogo ispravleniya nuzhno prognat' ves' nabor kontrol'nyh
primerov, po kotorym sistema proveryalas' ran'she, chtoby ubedit'sya, chto ona
kakim-nibud' neponyatnym obrazom ne povredilas'.
11.26 Metody razrabotki programm, pozvolyayushchie isklyuchit' ili po krajnej
mere vyyavit' pobochnye effekty, mogut rezko snizit' stoimost' soprovozhdeniya.
11.27 To zhe mozhno skazat' o metodah realizacii proektov men'shim chislom
interfejsov i men'shim kolichestvom oshibok.
SHag vpered, shag nazad: entropiya sistemy s techeniem vremeni rastet
11.28 Leman i Beladi schitayut, chto obshchee kolichestvo modulej rastet
linejno s nomerom versii operacionnoj sistemy (OS/360), no chisli modulej,
zatronutyh izmeneniyami, rastet eksponencial'no v zavisimosti ot nomera
versii.
11.29 Vse ispravleniya imeyut tendenciyu k razrusheniyu struktury,
uvelicheniyu entropii i dezorganizacii sistemy. Dazhe samoe iskusnoe
soprovozhdenie programmy tol'ko otdalyaet moment poverzheniya ee v sostoyanie
neispravimogo haosa, vyhodom iz kotorogo yavlyaetsya povtornoe proektirovanie s
samogo nachala. (Inogda real'naya neobhodimost' obnovleniya programmy,
naprimer, s cel'yu povysheniya proizvoditel'nosti, vyzyvaet neobhodimost'
izmeneniya vnutrennih granic struktur. CHasto ishodnye granicy sluzhat prichinoj
vyyavlyayushchihsya vposledstvii nedostatkov.)
Glava 12. Ostryj instrument
12.1 Menedzher proekta dolzhen ustanovit' principy i vydelit' resursy
dlya razrabotki obshcheupotreblyaemyh instrumentov, v to zhe vremya on dolzhen
priznat' neobhodimost' v personalizirovannyh instrumentah.
12.2 Brigadam, razrabatyvayushchim operacionnye sistemy, neobhodima dlya
otladki sobstvennaya celevaya mashina. Dlya nee trebuetsya skoree maksimum
pamyati, chem maksimum skorosti, i sistemnyj programmist dlya podderzhki
standartnogo programmnogo obespecheniya.
12.3 Mashina dlya otladki ili ee programmnoe obespechenie dolzhny imet'
instrument dlya avtomaticheskogo podscheta i izmeneniya vseh vidov parametrov
programmy.
12.4 Potrebnost' v celevoj mashine opisyvaetsya specificheskoj krivoj:
posle nizkoj aktivnosti sleduet vzryvnoj rost, kotoryj potom vyravnivaetsya.
12.5 Sistemnoj otladkoj, kak astronomiej, vsegda zanimalis'
preimushchestvenno po nocham.
12.6 Vopreki teorii, vydelenie vremeni celevoj mashiny odnoj brigade
znachitel'nymi blokami okazalos' luchshim variantom planirovaniya vremeni, chem
cheredovanie ispol'zovaniya mashiny brigadami.
12.7 |tot predpochtitel'nyj pri nehvatke komp'yuterov metod planirovaniya
vremeni perezhil 20 let (s 1975 goda) tehnologicheskih izmenenij, poskol'ku
yavlyaetsya naibolee produktivnym. (I ostaetsya im v 1995 godu.)
12.8 Esli celevoj komp'yuter yavlyaetsya novym, neobhodim ego logicheskij
emulyator. Ego mozhno poluchit' ran'she, i on obespechivaet nadezhnuyu mashinu dlya
otladki dazhe posle togo, kak postavlyaetsya nastoyashchaya mashina.
12.9 Glavnuyu biblioteku programm nuzhno razdelit' na: 1) nabor
individual'nyh "igrovyh ploshchadok", 2) podbiblioteku sistemnoj integracii,
prohodyashchuyu sistemnoe testirovanie i 3) versiyu-reliz. Formal'noe razdelenie i
peremeshchenie obespechivayut kontrol'.
12.10 Instrument, obespechivayushchij naibol'shuyu ekonomiyu truda v
programmnom proekte, - eto, navernoe, sistema redaktirovaniya tekstov.
12.11 Ob容mistost' sistemnoj dokumentacii sozdaet novyj tip
nepostizhimosti (sm., naprimer Unix), no eto znachitel'no predpochtitel'nee,
chem bolee rasprostranennyj krajnij nedostatok dokumentacii.
12.12 Sozdajte emulyator proizvoditel'nosti snaruzhi vnutr', sverhu vniz.
Nachnite rabotu s nim kak mozhno ran'she. Prislushajtes' k tomu, chto on vam
skazhet.
YAzyki vysokogo urovnya
12.13 Tol'ko len' i inertnost' prepyatstvuyut povsemestnomu primeneniyu
yazykov vysokogo urovnya i interaktivnogo programmirovaniya. (No segodnya oni
prinyaty povsemestno.)
12.14 YAzyk vysokogo urovnya sposobstvuet ne tol'ko uvelicheniyu
proizvoditel'nosti, no i otladke. Men'she oshibok i legche poisk.
12.15 Prezhnie vozrazheniya, svyazannye s funkcional'nost'yu, razmerom i
skorost'yu rezul'tiruyushchej programmy ustareli blagodarya razvitiyu yazykov i
tehnologii kompilyacii.
12.16 Segodnya edinstvennyj podhodyashchij kandidat dlya sistemnogo
programmirovaniya - PL/I. (Bol'she ne sootvetstvuet dejstvitel'nosti.)
Interaktivnoe programmirovanie
12.17 V nekotoryh prilozheniyah paketnye sistemy nikogda ne budut
vytesneny interaktivnymi sistemami. (Po-prezhnemu verno.)
12.18 Otladka - eto tyazhelaya i dolgaya chast' sistemnogo programmirovaniya,
i medlennaya oborachivaemost' yavlyaetsya proklyatiem otladki.
12.19 Est' svidetel'stva tomu, chto interaktivnoe programmirovanie po
krajnej mere udvaivaet skorost' sistemnogo programmirovaniya.
Glava 13. Celoe i chasti
13.1 Detal'naya i staratel'naya prorabotka arhitektury soglasno glavam
4, 5 i 6 ne tol'ko uproshchaet ispol'zovanie produkta, no takzhe oblegchaet ego
razrabotku i delaet menee podverzhennym oshibkam.
13.2 Vysockij govorit, chto "ochen' mnogie neudachi svyazany imenno s temi
aspektami, kotorye byli ne vpolne specificirovany".
13.3 Zadolgo do vsyakogo napisaniya programmy specifikaciya dolzhna byt'
peredana storonnej gruppe testirovaniya dlya tshchatel'nogo rassmotreniya polnoty
i yasnosti. Sami razrabotchiki sdelat' eto ne mogut.
13.4 "Nishodyashchee proektirovanie Virta (s poshagovym utochneniem) yavlyaetsya
samoj vazhnoj novoj formalizaciej programmirovaniya za desyatiletie (1965-
1975)."
13.5 Virt propoveduet ispol'zovanie na kazhdom shage notacii vozmozhno
bolee vysokogo poryadka.
13.6 Horoshee nishodyashchee proektirovanie pomogaet izbegat' oshibok
blagodarya chetyrem obstoyatel'stvam.
13.7 Inogda prihoditsya vozvrashchat'sya nazad, otbrasyvat' samyj verhnij
uroven' i nachinat' vse snachala.
13.8 Strukturnoe programmirovanie, t.e. razrabotka programm,
upravlyayushchie struktury kotoryh sostoyat tol'ko iz zadannogo nabora operatorov,
vozdejstvuyushchih na bloki koda (v protivopolozhnost' besporyadochnym perehodam),
daet vernyj sposob izbezhat' oshibok i predstavlyaet soboj pravil'nyj sposob
myshleniya.
13.9 |ksperimental'nye dannye Golda pokazyvayut, chto vo vremya pervogo
dialoga kazhdogo seansa dostigaetsya vtroe bol'shij progress v interaktivnoj
otladke, chem pri posleduyushchih dialogah. Vse zhe polezno tshchatel'no splanirovat'
otladku, prezhde chem registrirovat'sya na mashine. (YA polagayu, chto eto polezno
do sih por, v 1995 godu.)
13.10 YA schitayu, chto dlya pravil'nogo ispol'zovaniya horoshej sistemy
(interaktivnoj otladki s bystroj reakciej) na kazhdye dva chasa raboty za
stolom dolzhno prihodit'sya dva chasa raboty na mashine: odin chas - na podchistki
i dokumentirovanie posle pervogo seansa, i odin chas - na planirovanie
izmenenij i testov ocherednogo seansa.
13.11 Sistemnaya otladka (v otlichie ot otladki komponentov) zanimaet
bol'she vremeni, chem ozhidaetsya.
13.12 Trudnost' sistemnoj otladki opravdyvaet tshchatel'nuyu
sistematichnost' i planovost'.
13.13 Sistemnuyu otladku nuzhno nachinat', tol'ko ubedivshis' v
rabotosposobnosti komponentov, (v protivopolozhnost' podhodu "svinti i
poprobuj" i nachalu sistemnoj otladki pri izvestnyh, no ne ustranennyh
oshibkah v komponentah). (|to osobenno spravedlivo dlya brigad.)
13.14 Rekomenduetsya sozdat' bol'shoe okruzhenie i mnogo proverochnogo koda
i "lesov" dlya otladki, vozmozhno, na 50 procentov bol'she, chem sam
otlazhivaemyj produkt.
13.15 Neobhodimo kontrolirovat' izmeneniya i versii, pri etom chleny
komandy pust' igrayut so svoimi kopiyami na "ploshchadkah dlya igr".
13.16 Vo vremya sistemnogo testirovaniya dobavlyajte komponenty po odnomu.
13.17 Leman i Beladi svidetel'stvuyut, chto kvant izmenenij dolzhen byt'
libo bol'shim i vnosit'sya redko, libo ochen' malen'kim - i chasto. Poslednij
sluchaj bolee chrevat neustojchivost'yu. (V Microsoft rabotayut malen'kimi
chastymi kvantami. Razrabatyvaemaya sistema sobiraetsya zanovo kazhdye sutki.)
Glava 14. Nazrevanie katastrofy
14.1 "Kak okazyvaetsya, chto proekt zapazdyvaet na odin god? ...Snachala
on zapazdyvaet na odin den'."
14.2 Otstavanie, rastushchee ponemnogu izo dnya v den', trudnee raspoznat',
trudnee predotvratit', trudnee vypravit'.
14.3 CHtoby upravlyat' bol'shim proektom po zhestkomu grafiku, nado prezhde
vsego imet' grafik, sostoyashchij iz veh i sootvetstvuyushchih im dat.
14.4 Vehi dolzhny byt' konkretnymi, specificheskimi, izmerimymi
sobytiyami, opredelennymi s predel'noj tochnost'yu.
14.5 Programmist redko lzhet otnositel'no dvizheniya vehi, esli veha
ocherchena rezko, on ne mozhet obmanyvat' sebya.
14.6 Issledovaniya povedeniya pravitel'stvennyh podryadchikov po provedeniyu
ocenok v krupnyh proektah pokazali, chto ocenki srokov raboty, tshchatel'no
peresmatrivaemye kazhdye dve nedeli, neznachitel'no menyayutsya po mere
priblizheniya nachala rabot, chto vo vremya rabot pereocenki uverenno snizhayutsya i
chto nedoocenki ne menyayutsya, poka do zaplanirovannogo sroka okonchaniya rabot
ne ostaetsya okolo treh nedel'.
14.7 Hronicheskoe otstavanie ot grafika ubivaet moral'nyj duh. (Dzhim
Makkarti iz Microsoft govorit: "Esli vy propustili odin krajnij srok, bud'te
uvereny, chto propustite i vtoroj."2)
14.8 Dlya vydayushchihsya komand programmistov harakterna energiya, kak i dlya
vydayushchihsya bejsbol'nyh komand.
14.9 Nichto ne zamenit grafik s kriticheskimi putyami, chtoby opredelit',
kakoe otstavanie vo chto obojdetsya.
14.10 Podgotovka diagrammy kriticheskih putej est' samaya cennaya chast' ee
primeneniya, poskol'ku opredelenie topologii seti, ukazanie zavisimostej v
nej i ocenivanie putej vynuzhdayut osushchestvit' bol'shoj ob容m ochen' konkretnogo
planirovaniya na samyh rannih stadiyah proekta.
14.11 Pervaya diagramma vsegda uzhasna, i dlya sozdaniya vtoroj prihoditsya
proyavit' mnogo izobretatel'nosti.
14.12 Diagramma kriticheskih putej daet otpor demoralizuyushchej ogovorke
"drugaya chast' tozhe zapazdyvaet".
14.13 Kazhdomu nachal'niku nuzhny dva vida dannyh: informaciya o sryvah
plana, kotoraya trebuet vmeshatel'stva, i kartina sostoyaniya del, chtoby byt'
osvedomlennym i imet' rannee preduprezhdenie.
14.14 Poluchit' pravdivuyu kartinu sostoyaniya del nelegko, poskol'ku u
podchinennyh menedzherov est' osnovaniya ne delit'sya svoimi dannymi.
14.15 Nepravil'nymi dejstviyami nachal'nik mozhet obespechit' utaivanie
vsej kartiny sostoyaniya del; naprotiv, tshchatel'noe rassmotrenie otchetov bez
paniki i vmeshatel'stva pooshchryaet chestnyj doklad.
14.16 Neobhodimo imet' metodologiyu obzora, s pomoshch'yu kotoroj podlinnoe
polozhenie veshchej stanovitsya izvestnym vsem igrokam. Glavnym dlya etoj celi
yavlyaetsya grafik s vehami i dokument o zavershenii.
14.17 Vysockij: "YA nashel, chto udobno imet' v otchete o sostoyanii rabot
dve daty - "planovuyu" (datu nachal'nika) i "ocenivaemuyu" (datu menedzhera
nizshego zvena). Menedzher proekta dolzhen ostorozhno otnosit'sya k ocenivaemym
datam."
14.18 Nebol'shaya gruppa planirovaniya i kontrolya, dayushchaya otchety o
prohozhdenii veh, neocenima pri rabote nad bol'shim proektom.
Glava 15. Obratnaya storona
15.1 Dlya programmnogo produkta storona, obrashchennaya k pol'zovatelyu, -
dokumentaciya - stol' zhe vazhna, kak i storona, obrashchennaya k mashine.
15.2 Dazhe dlya programm, napisannyh isklyuchitel'no dlya sebya, tekstual'naya
dokumentaciya neobhodima: pamyat' mozhet izmenit' avtoru-pol'zovatelyu.
15.3 V celom, prepodavatelyam i menedzheram ne udalos' vospitat' na vsyu
zhizn' u programmistov uvazhenie k dokumentacii, preodolevayushchee len' i press
grafika rabot.
15.4 |ta neudacha vyzvana ne stol'ko nedostatkom staraniya ili
krasnorechiya, skol'ko nesposobnost'yu pokazat', kak provodit' dokumentirovanie
effektivno i ekonomichno.
15.5 Dokumentaciya chasto stradaet otsutstviem obshchego obzora. Posmotrite
snachala izdaleka, a potom medlenno priblizhajtes'.
15.6 Vazhnaya dokumentaciya pol'zovatelya dolzhna byt' vcherne napisana do
razrabotki programmy, poskol'ku v nej soderzhatsya osnovnye planovye resheniya.
V nej dolzhny byt' opisany devyat' predmetov (sm. tekst glavy).
15.7 Programmu nuzhno postavlyat' s neskol'kimi kontrol'nymi primerami: s
dopustimymi vhodnymi dannymi, dopustimymi na grani vozmozhnostej, i s yavno
nedopustimymi vhodnymi dannymi.
15.8 Vnutrennyaya dokumentaciya programmy, prednaznachennaya tomu, kto
dolzhen ee modificirovat', takzhe dolzhna soderzhat' tekstual'nyj obzor, v
kotorom dolzhny byt' opisany pyat' predmetov (sm. glavu).
15.9 Blok-shema chashche vsego naprasno vklyuchaetsya v dokumentaciyu.
Podrobnaya poshagovaya blok-shema ustarela blagodarya pis'mennym yazykam vysokogo
urovnya. (Blok-shema - graficheskij yazyk vysokogo urovnya.)
15.10 Redko trebuetsya blok-shema bolee chem na odnu stranicu - esli ona
voobshche nuzhna. (Standart MILSPEC zdes' sovershenno ne prav.)
15.11 CHto dejstvitel'no neobhodimo - eto strukturnyj graf programmy bez
soblyudeniya standartov sostavleniya blok-shem ANSI.
15.12 CHtoby obespechit' obnovlenie dokumentacii, vazhno vklyuchit' ee v
ishodnyj tekst programmy, a ne derzhat' otdel'nym dokumentom.
15.13 Dlya oblegcheniya truda vedeniya dokumentacii est' tri vazhnyh
pravila: - Kak mozhno bol'she ispol'zujte dlya dokumentirovaniya obyazatel'nye
chasti programmy, takie kak imena i ob座avleniya. - Ispol'zujte svobodnoe
prostranstvo i format, chtoby pokazat' otnosheniya podchinennosti, vlozhennosti i
uluchshit' chitaemost'. - Vstavlyajte v programmu neobhodimuyu tekstovuyu
dokumentaciyu v vide paragrafov kommentariev, osobenno v zagolovkah modulej.
15.14 V dokumentacii, kotoroj budut pol'zovat'sya pri modifikacii
programmy, ob座asnyajte ne tol'ko "kak", no i "pochemu". Naznachenie yavlyaetsya
reshayushchim dlya ponimaniya. Dazhe yazyki vysokogo urovnya sovsem ne peredayut
znacheniya.
15.15 Metody samodokumentiruyushchegosya programmirovaniya naibolee polezny i
moshchny pri ispol'zovanii yazykov vysokogo urovnya.
|pilog k pervomu izdaniyu
E.1 Programmnye sistemy yavlyayutsya, vozmozhno, samymi slozhnymi i
zaputannymi (v smysle chisla razlichnyh tipov sostavlyayushchih) sozdaniyami
cheloveka.
E.2 Smolyanaya yama programmnoj inzhenerii eshche dolgoe vremya budet
ostavat'sya vyazkoj.
Glava 19 "Mificheskij cheloveko-mesyac" dvadcat' let spustyaYA ne znayu
drugogo sposoba sudit' o budushchem, kak s pomoshch'yu proshlogo.
PATRIK GENRI
Opirayas' na proshloe, nevozmozhno planirovat' budushchee.
|DMUND BERK
Dlya chego ponadobilos' yubilejnoe dvadcatoe izdanie?
Samolet gudel v nochi, napravlyayas' k Lagardii. Oblaka i sumrak skryli
vse interesnoe dlya glaza. Dokument, kotoryj ya chital, byl neinteresnym.
Odnako mne ne bylo skuchno. Sidyashchij ryadom poputchik chital "Mificheskij
cheloveko-mesyac", i ya ozhidal, kogda slovom ili zhestom on vydast svoe
vpechatlenie. V konce koncov, kogda my uzhe vyrulivali k vyhodu, ya ne
vyderzhal:
- Kak vam eta kniga? Sovetuete prochest'?
- Hm, v nej net nichego, chego ya ne znal by ran'she.
YA reshil ne predstavlyat'sya.
Pochemu "Mificheskij cheloveko-mesyac" vyzhil? Pochemu s nim do sih por
schitayutsya v sovremennoj praktike programmirovaniya? Pochemu ego chitatel'skaya
auditoriya vyhodit za predely soobshchestva programmistov-razrabotchikov, a kniga
porozhdaet stat'i, citaty i pis'ma ne tol'ko razrabotchikov programm, no i
yuristov, vrachej, psihologov, sociologov? Kakim obrazom kniga, napisannaya 20
let nazad ob opyte razrabotki programm, imevshem mesto 30 let nazad, mozhet do
sih por byt' aktual'noj i dazhe poleznoj?
Soglasno odnomu iz ob座asnenij, kotorye mozhno uslyshat', razrabotka
programmnogo obespecheniya kak disciplina ne poluchila normal'nogo i
pravil'nogo razvitiya. V podderzhku etoj tochki zreniya chasto ukazyvayut na
nesootvetstvie rosta proizvoditel'nosti truda programmistov i effektivnosti
proizvodstva komp'yuterov, vyrosshej v tysyachi raz za poslednie dva
desyatiletiya. Kak ob座asnyaetsya v glave 16, anomaliya sostoit ne v zamedlennom
razvitii programmirovaniya, a v besprecedentnom v istorii chelovechestva vzryve
komp'yuternyh tehnologij. V celom, prichina etogo v postepennom perehode
proizvodstva komp'yuterov iz sborochnogo proizvodstva v obrabatyvayushchee, iz
trudoemkogo proizvodstva v kapitaloemkoe. Razrabotka zhe apparatnogo i
programmnogo obespecheniya, v otlichie ot proizvodstva, ostaetsya po svoej suti
trudoemkoj.
Vtoroe chasto vydvigaemoe ob座asnenie glasit, chto "Mificheskij
cheloveko-mesyac" lish' sluchajno kasaetsya razrabotki programmnogo obespecheniya,
a v osnovnom on napisan o gruppovoj razrabotke chego by to ni bylo. Dolya
pravdy v etom est'. V predislovii k izdaniyu 1975 goda skazano, chto
upravlenie programmnym proektom imeet bol'she shodstva s lyubym drugim
upravleniem, chem iznachal'no schitaetsya bol'shinstvom programmistov. YA do sih
por tak schitayu. Istoriya chelovechestva - eto p'esa, v kotoroj syuzhety
postoyanny, scenarii medlenno menyayutsya s razvitiem kul'tury, a dekoracii
menyayutsya nepreryvno. Poetomu v HH veke my uznaem sebya v SHekspire, Gomere i
Biblii. Poetomu v toj mere, v kakoj "MCH-M" napisan o lyudyah, on ustarevaet
medlenno.
Kakovy by ni byli prichiny, knigu prodolzhayut pokupat' i prisylayut mne
zamechaniya, kotorye ya cenyu. Menya chasto sprashivayut: "Kak vy schitaete, v chem vy
togda oshiblis'? CHto ustarelo v nashi dni? CHto dejstvitel'no novoe poyavilos' v
mire razrabotki programm?" |ti chetkie voprosy vpolne zakonny, i ya postarayus'
otvetit' na nih. Ne v takom, pravda, poryadke, no po gruppam tem. Prezhde
vsego, posmotrim, chto bylo vernym v moment napisaniya i ostalos' takovym do
sih por.
Central'nyj argument: konceptual'naya celostnost' i arhitektor
Konceptual'naya celostnost'. CHistyj i elegantnyj programmnyj produkt
dolzhen predstavit' svoim pol'zovatelyam soglasovannuyu ideal'nuyu model'
prilozheniya, strategij osushchestvleniya prilozheniya i taktiki pol'zovatel'skih
interfejsov, ispol'zuemoj pri zadanii dejstvij i parametrov. Konceptual'naya
celostnost' produkta v vospriyatii pol'zovatelya yavlyaetsya vazhnejshim faktorom,
vliyayushchim na prostotu ispol'zovaniya. (Est', konechno, i drugie faktory. Vazhnym
primerom yavlyaetsya edinoobrazie pol'zovatel'skogo interfejsa v prilozheniyah
dlya Macintosh. Bolee togo, mozhno sozdat' soglasovannye interfejsy,
yavlyayushchiesya tem ne menee, sovershenno neuklyuzhimi. Naprimer MS-DOS.)
Est' mnogochislennye primery elegantnyh programmnyh produktov, sozdannyh
odnim ili dvumya lyud'mi. Tak delaetsya bol'shaya chast' chisto intellektual'nyh
produktov, takih kak knigi ili muzykal'nye proizvedeniya. Odnako vo mnogih
promyshlennyh oblastyah processy razrabotki produkta ne mogut osushchestvlyat'sya
na osnove stol' prostogo podhoda k konceptual'noj celostnosti. Konkurenciya
vynuzhdaet k speshke. Vo mnogih sovremennyh tehnologiyah konechnyj produkt
obladaet bol'shoj slozhnost'yu, i proektirovanie neizbezhno trebuet mnogih
cheloveko-mesyacev truda. Dlya programmnyh produktov harakterny kak slozhnost',
tak i napryazhennost' grafika, obuslovlennaya konkurenciej.
Takim obrazom, vsyakij dostatochno bol'shoj ili srochnyj produkt, trebuyushchij
usilij mnogih lyudej, stalkivaetsya so specificheskoj trudnost'yu: rezul'tat
dolzhen konceptual'no soglasovyvat'sya s razumom odinochnogo pol'zovatelya i v
to zhe vremya proektirovat'sya usiliyami neskol'kih razumov. Kak organizovat'
proektirovanie, chtoby dostich' takoj konceptual'noj celostnosti? |to
central'nyj vopros "MCH-M". Odin iz ego tezisov glasit, chto sushchestvuyut
kachestvennye razlichiya mezhdu upravleniem bol'shimi i malen'kimi programmnymi
proektami - lish' v silu chisla rabotayushchih nad nimi golov. Dlya dostizheniya
soglasovannosti neobhodimy obdumannye i dazhe geroicheskie dejstviya.
Arhitektor. S chetvertoj po shestuyu glavu ya dokazyvayu, chto samoe vazhnoe -
naznachit' odnogo cheloveka arhitektorom produkta, otvetstvennym za vse ego
storony, vosprinimaemye pol'zovatelem. Arhitektor formiruet i imeet v svoem
vladenii obshchedostupnuyu ideal'nuyu model' produkta, s pomoshch'yu kotoroj
pol'zovatelyu budet ob座asneno ego primenenie. V ee sostav vhodit podrobnoe
ukazanie vseh ego funkcij i sredstv vyzova i upravleniya. Arhitektor takzhe
dejstvuet v interesah pol'zovatelya pri poiske kompromissa mezhdu funkciyami,
tehnicheskim harakteristikami, razmerom, stoimost'yu i vypolneniem grafika
rabot. Vypolnenie etoj zadachi trebuet polnoj zanyatosti, i tol'ko v ochen'
malen'kih gruppah mozhet byt' sovmeshcheno s dolzhnost'yu rukovoditelya.
Arhitektora mozhno sravnivat' s rezhisserom, a menedzhera - s prodyuserom
kinokartiny.
Otdelenie arhitektury ot razrabotki i realizacii. CHtoby sdelat'
vozmozhnym osushchestvlenie arhitektorom svoej glavnoj zadachi, neobhodimo
otdelit' arhitekturu, t.e. opredelenie produkta v vospriyatii pol'zovatelya,
ot ego razrabotki. Arhitektura i razrabotka opredelyayut chetkuyu gran' mezhdu
raznymi chastyami zadachi proektirovaniya, i po kazhduyu storonu etoj grani lezhit
bol'shaya rabota.
Rekursivnost' arhitektury. V ochen' bol'shih proektah odnomu cheloveku ne
spravit'sya so vsej arhitekturoj, dazhe esli on izbavlen ot vseh zabot,
svyazannyh s razrabotkoj. Poetomu glavnyj arhitektor sistemy dolzhen razbit'
celoe na podsistemy. Granicy podsistem dolzhny byt' provedeny tak, chtoby
interfejsy mezhdu nimi byli minimal'ny i legche vsego strogo opredelyaemy.
Togda u kazhdoj chasti mozhet byt' svoj arhitektor, podchinyayushchijsya glavnomu
arhitektoru sistemy v otnoshenii arhitektury. Ochevidno, pri neobhodimosti
etot process mozhet byt' prodolzhen rekursivno.
Segodnya ya ubezhden bolee chem kogda-libo. Konceptual'naya celostnost'
yavlyaetsya vazhnejshim usloviem kachestva produkta. Nalichie sistemnogo
arhitektora est' vazhnejshij shag v napravlenii konceptual'noj celostnosti. |ti
principy ni v koej mere ne ogranichivayutsya razrabotkoj programmnogo
obespecheniya, a spravedlivy pri proektirovanii lyuboj slozhnoj konstrukcii,
bud' to komp'yuter, samolet, strategicheskaya oboronnaya iniciativa ili sistema
global'noj navigacii. Posle prepodavaniya v bolee chem 20 laboratoriyah
razrabotki programmnogo obespecheniya ya stal nastaivat', chtoby gruppy
uchashchihsya, dazhe iz chetyreh chelovek, vybirali menedzhera i otdel'no -
arhitektora. Razdelenie funkcij v takih malen'kih gruppah mozhet pokazat'sya
neskol'ko chrezmernym trebovaniem, no, po moim nablyudeniyam, eto opravdano i
sposobstvuet dostizheniyu uspeha.
|ffekt vtoroj sistemy: funkcional'nost' i ugadyvanie chastoty
Proektirovanie dlya bol'shih grupp pol'zovatelej. Odnim iz posledstvij
revolyucii, proizvedennoj personal'nymi komp'yuterami, yavlyaetsya vse
vozrastayushchee, po krajnej mere v oblasti obrabotki delovyh dannyh, vytesnenie
zakaznyh programm korobochnymi programmnymi paketami. Bolee togo, standartnye
programmnye pakety prodayutsya sotnyami tysyach i dazhe millionami ekzemplyarov.
Sistemnye arhitektory programm, postavlyaemyh vmeste s mashinoj, vsegda dolzhny
byli sozdavat' proekt, orientirovannyj na bol'shuyu amorfnuyu massu
pol'zovatelej, a ne na otdel'noe opredelennoe prilozhenie v odnoj kompanii.
Teper' takaya zadacha vstaet pered ochen' mnogimi arhitektorami.
Paradoks sostoit v tom, chto sproektirovat' instrument obshchego
naznacheniya, nezheli specializirovannyj, gorazdo trudnee imenno potomu, chto
nuzhno pridat' ves razlichayushchimsya potrebnostyam raznyh pol'zovatelej.
V pogone za funkcional'nost'yu. Arhitektor instrumenta obshchego
naznacheniya, takogo, naprimer, kak elektronnaya tablica ili tekstovyj
redaktor, podverzhen sil'nomu soblaznu peregruzit' produkt funkciyami
predel'noj poleznosti cenoj snizheniya proizvoditel'nosti i dazhe prostoty
ispol'zovaniya. Vnachale privlekatel'nost' predlagaemyh vozmozhnostej kazhetsya
ochevidnoj. Rasplata proizvoditel'nost'yu stanovitsya ochevidnoj lish' pri
sistemnom testirovanii. Utrata prostoty ispol'zovaniya kovarno podkradyvaetsya
po mere togo, kak nebol'shimi porciyami dobavlyayutsya novye funkcii, a
rukovodstva pol'zovatelya vse bolee razbuhayut.1
Soblazn osobenno velik v otnoshenii dolgozhivushchih massovyh produktov,
razvivavshihsya na protyazhenii ryada pokolenij. Milliony pokupatelej trebuyut
soten novyh vozmozhnostej. Vsyakaya pros'ba svidetel'stvuet o nalichii sprosa na
rynke. CHasto arhitektor pervonachal'noj sistemy uzhe ushel v pohod za novoj
slavoj, i arhitektura okazalas' v rukah lyudej s men'shim opytom vzveshennogo
predstavleniya obshchih interesov pol'zovatelej. V nedavnej recenzii na
Microsoft Word 6.0 skazano: "Perepolnen vozmozhnostyami; obnovlenie zamedleno
peregruzhennost'yu... Krome togo, Word 6.0 zanimaet mnogo mesta i medlenno
rabotaet." S neudovol'stviem otmechaetsya, chto Word 6.0 zanimaet 4 Mbajt
pamyati i soobshchaetsya, chto iz-za bogatyh dopolnitel'nyh funkcional'nyh
vozmozhnostej "dazhe Macintosh IIfx edva prigoden dlya vypolneniya Word 6".2
Opredelenie gruppy pol'zovatelej. CHem krupnee i amorfnee gruppa
predpolagaemyh pol'zovatelej, tem bolee neobhodimo yavno ee opredelit', esli
vy namereny dostich' konceptual'noj celostnosti. U kazhdogo chlena gruppy
proektirovshchikov navernyaka est' neyavnyj myslennyj obraz pol'zovatelya, i vse
obrazy budut otlichat'sya drug ot druga. Poskol'ku predstavlenie arhitektora o
pol'zovatele yavno ili podsoznatel'no okazyvaet vliyanie na vse arhitekturnye
resheniya, vazhno, chtoby komanda proektirovshchikov prishla k edinomu obshchemu
obrazu. Dlya etogo neobhodimo sostavit' spisok priznakov predpolagaemyh
pol'zovatelej, ukazav v nem:
- kto oni takie,
- chto im nuzhno,
- chto, po ih mneniyu, im nuzhno,
- chego oni hotyat.
CHastoty. Dlya lyubogo programmnogo produkta kazhdaya harakteristika
pol'zovatelya predstavlyaet soboj raspredelenie so mnozhestvom vozmozhnyh
znachenij i sootvetstvuyushchimi chastotami. Kak arhitektoru poluchit' eti chastoty?
Izuchenie etoj slabo ocherchennoj populyacii predstavlyaetsya somnitel'nym i
dorogostoyashchim zanyatiem.3 S godami ya prishel k ubezhdeniyu, chto arhitektor
dolzhen ugadat' ili, esli vam bol'she nravitsya, postulirovat' polnyj nabor
priznakov i znachenij vmeste s chastotami dlya sozdaniya polnogo, yavnogo i
obshchego dlya vseh opisaniya gruppy pol'zovatelej.
Takaya neprivlekatel'naya procedura imeet ryad poleznyh posledstvij.
Vo-pervyh, pri stremlenii tochno ugadat' chastoty arhitektor vynuzhden ochen'
tshchatel'no obdumat', kakova vozmozhnaya gruppa pol'zovatelej. Vo-vtoryh, pri
fiksacii chastot voznikaet obsuzhdenie, poleznoe dlya vseh uchastnikov i
vyyavlyayushchee razlichiya v obrazah pol'zovatelya, imeyushchihsya u raznyh
proektirovshchikov. V-tret'ih, yavnoe prisvoenie chastot sodejstvuyut ponimaniyu
togo, kakie resheniya kakimi svojstvami gruppy pol'zovatelej obuslovleny. Dazhe
takoj neformal'nyj analiz chuvstvitel'nosti prinosit pol'zu. Kogda
obnaruzhivaetsya, chto ochen' vazhnye resheniya zavisyat ot nekotoryh specificheskih
predpolozhenij, okazyvaetsya umestnym poluchit' bolee tochnye chislennye ocenki.
(Razrabotannaya Dzheffom Konklinom (Jeff Conklin) sistema pozvolyaet formal'no
i tochno proslezhivat' prinyatie proektnyh reshenij i dokumentirovat' ih
osnovaniya.4 Mne ne prihodilos' eyu pol'zovat'sya, no dumayu, chto ona dolzhna
byt' ochen' polezna.)
Podvodya itogi: ustanovite predpolozhitel'nye priznaki gruppy
pol'zovatelej. Gorazdo luchshe oshibat'sya, no vyrazhat'sya yasno, chem vyrazhat'sya
tumanno.
Kak naschet effekta vtoroj sistemy? Odin nablyudatel'nyj uchenyj zametil,
chto "Mificheskij cheloveko-mesyac" rekomendoval na sluchaj neudachi dlya vsyakoj
novoj sistemy planirovat' postavku vtoroj versii (sm. glava 11), kotoraya v
glave 5 harakterizuetsya kak tayashchaya naibol'shie opasnosti. YA vynuzhden byl
priznat', chto on menya "pojmal".
Protivorechie skoree lingvisticheskoe, chem real'noe. "Vtoraya" sistema,
opisyvaemaya v glave 5, - eto vtoraya sistema, vypuskaemaya v razvitie
predydushchej s privlecheniem dopolnitel'nyh funkcij i ukrashenij. "Vtoraya"
sistema v glave 11 - eto vtoraya popytka razrabotki pervoj vypuskaemoj
sistemy. Ona razrabatyvaetsya v usloviyah vseh ogranichenij, nakladyvaemyh
grafikom, sposobnostyami i nevedeniem, harakternymi dlya novyh proektov -
ogranichenij, navyazyvayushchih disciplinu umerennosti.
Triumf interfejsa WIMP
Odnim iz naibolee vpechatlyayushchih yavlenij v programmirovanii za poslednie
dvadcat' let byl triumf interfejsa, sostoyashchego iz okon, znachkov, menyu i
ukazatelej (Windows, Icons, Menus, Pointers - WIMP). Segodnya on nastol'ko
shiroko izvesten, chto ne trebuet opisaniya. Vpervye etu ideyu predstavili
publike Dug |nglebart (Doug Englebart) s gruppoj kolleg iz Stendfordskogo
nauchno- issledovatel'skogo instituta na Ob容dinennoj komp'yuternoj
konferencii Zapada v 1968 godu.5 Ottuda idei perekochevali v
issledovatel'skij centr Xerox v Palo- Al'to, gde oni realizovalis' na
personal'noj rabochej stancii Alto, razrabotannoj Bobom Tejlorom (Bob Taylor)
s sotrudnikami. Ih podhvatil Stiv Dzhobs dlya komp'yutera Apple Lisa - slishkom
medlennogo dlya osushchestvleniya svoih voshititel'nyh koncepcij prostoty
ispol'zovaniya. |ti koncepcii Dzhobs zatem voplotil v kommercheski uspeshnom
Apple Macintosh v 1985 godu. Pozdnee oni byli prinyaty v Microsoft Windows
dlya IBM PC i ego klonov. Moj primer budet bazirovat'sya na versii dlya Maka.6
Konceptual'naya celostnost' cherez metaforu. WIMP yavlyaetsya otlichnym
primerom pol'zovatel'skogo interfejsa, obladayushchego konceptual'noj
celostnost'yu, dostigaemoj prinyatiem znakomoj ideal'noj modeli - metafory
rabochego stola, i ee tshchatel'nogo posledovatel'nogo razvitiya dlya
ispol'zovaniya voploshcheniya v komp'yuternoj grafike. Naprimer, iz prinyatoj
metafory neposredstvenno sleduet slozhno osushchestvimoe, no pravil'noe reshenie
o perekrytii okon vmesto raspolozheniya ih odno ryadom s drugim. Vozmozhnost'
menyat' razmer i formu okon yavlyaetsya posledovatel'nym rasshireniem, dayushchim
pol'zovatelyu novye vozmozhnosti, obespechivaemye nositelem - komp'yuternoj
grafikoj. U real'nyh bumag na stole nel'zya tak zhe legko menyat' razmer i
formu. Buksirovka neposredstvenno vytekaet iz metafory; vybor znachkov s
pomoshch'yu kursora yavlyaetsya pryamoj analogiej zahvata predmetov rukoj. Znachki i
vlozhennye papki yavlyayutsya tochnymi analogami dokumentov na stole, kak i
musornaya korzina. Idei vyrezaniya, kopirovaniya i vstavki tochno imitiruyut
operacii, kotorye my obychno osushchestvlyaem s dokumentami na stole. Sledovanie
metafore stol' bukval'no, a razvitie nastol'ko posledovatel'no, chto
pol'zovatelej-novichkov reshitel'no korobit, kogda peretaskivanie znachka
diskety v musornuyu korzinu privodit k izvlecheniyu diskety iz diskovoda. Esli
by interfejs ne byl stol' edinoobrazno posledovatel'nym, eta (dovol'no
nepriyatnaya) neposledovatel'nost' tak by ne razdrazhala.
V kakih mestah interfejs WIMP vynuzhden daleko otojti ot metafory
rabochego stola? Naibolee zametny dva otlichiya: menyu i rabota odnoj rukoj. Na
real'nom rabochem stole s dokumentami osushchestvlyayut dejstviya, a ne prikazyvayut
komu-to ili chemu-to osushchestvit' ih. A kogda komu-to daetsya ukazanie
sovershit' dejstvie, komanda obychno ne vybiraetsya iz spiska, a pis'menno ili
ustno podaetsya v vide glagola v povelitel'nom naklonenii: "pozhalujsta,
podshejte eto v papku", "pozhalujsta, najdite predydushchie pis'ma" ili
"pozhalujsta, peredajte eto Meri dlya prinyatiya mer".
K sozhaleniyu, nadezhnaya interpretaciya komand v svobodnom formate na
anglijskom yazyke, bud' oni v ustnom ili pis'mennom vide, nahoditsya za
predelami nashih segodnyashnih vozmozhnostej. Poetomu proektirovshchiki interfejsa
na dva shaga otoshli ot neposredstvennyh dejstvij pol'zovatelya s dokumentami.
Oni mudro vzyali imevshijsya na obychnom rabochem stole obrazec vybora komand -
otpechatannuyu "soprovodilovku", v kotoroj pol'zovatel' proizvodit vybor iz
ogranichennogo menyu komand so standartnoj semantikoj. |tu ideyu oni prevratili
v gorizontal'noe menyu s vertikal'no opuskayushchimisya podmenyu.
Podacha komand i problema dvuh kursorov. Komandy yavlyayutsya povelitel'nymi
predlozheniyami, v nih vsegda est' i obychno imeetsya pryamoe dopolnenie. Dlya
lyubogo dejstviya nuzhno zadat' glagol i sushchestvitel'noe. Metafora ukazaniya
govorit, chto dlya odnovremennogo zadaniya dvuh predmetov nuzhno imet' na ekrane
dva raznyh kursora, upravlyaemyh svoimi myshami, odnoj - v pravoj ruke, drugoj
- v levoj. V konce koncov, na fizicheskom stole my obychno rabotaem dvumya
rukami. (Odnako odna ruka chasto priderzhivaet veshchi na meste, chto na
komp'yuternom rabochem stole proishodit po umolchaniyu.) Mozg, konechno,
prisposoblen k dejstviyam dvumya rukami: my sistematicheski ispol'zuem dve ruki
pri vvode s klaviatury, ezde na avtomobile, prigotovlenii pishchi. Uvy, i odna
mysh' byla bol'shim dostizheniem dlya izgotovitelej komp'yuterov. Kommercheskih
sistem, podderzhivayushchih odnovremennye dejstviya s dvumya kursorami myshej, po
odnomu dlya kazhdoj ruki, net.7
Razrabotchiki interfejsa smirilis' s realiyami i sdelali proekt dlya odnoj
myshi, prinyav sintaksicheskoe soglashenie, chto pervym otmechaetsya (vybiraetsya)
sushchestvitel'noe. Zatem ukazyvayut na glagol, punkt menyu. Pri etom v
znachitel'noj mere utrachivaetsya prostota ispol'zovaniya. Kogda ya nablyudayu za
pol'zovatelyami, prosmatrivayu videozapis' ih dejstvij ili zaregistrirovannye
komp'yuterom peremeshcheniya kursora, to vsegda obrashchayu vnimanie na to, chto
odnomu kursoru prihoditsya vypolnyat' rabotu dvuh: vybrat' ob容kt v okne na
rabochem stole; vybrat' glagol v menyu; najti drugoj ob容kt ili vnov' otyskat'
prezhnij; snova opustit' menyu (chasto, to zhe samoe) i vybrat' glagol. Kursor
mechetsya vzad-vpered, ot prostranstva dannyh k prostranstvu menyu, vsyakij raz
teryaya poleznuyu informaciyu o tom, gde on nahodilsya v etom prostranstve v
proshlyj raz - v celom, neeffektivnyj process.
Velikolepnoe reshenie. Dazhe esli by elektronika i programmy mogli bez
truda rabotat' odnovremenno s dvumya aktivnymi kursorami, ostayutsya slozhnosti
s topologiej prostranstva. Na rabochem stole v metafore WIMP v
dejstvitel'nosti est' pishushchaya mashinka, i v fizicheskom prostranstve real'nogo
stola neobhodimo pomestit' real'nuyu klaviaturu. Klaviatura plyus dva kovrika
dlya myshej zajmut nemaluyu chast' prostranstva v predelah dosyagaemosti ruk. Tak
pochemu by problemu klaviatury ne obratit' sebe na pol'zu, pochemu ne
ispol'zovat' obe ruki - odnoj rukoj zadavaya na klaviature glagoly, a drugoj
rukoj vybiraya sushchestvitel'nye s pomoshch'yu myshi? Teper' kursor budet ostavat'sya
v prostranstve dannyh i pol'zovat'sya tem, chto posledovatel'nye
sushchestvitel'nye vybirayutsya blizko odno ot drugogo. Real'naya effektivnost',
real'no bol'shie vozmozhnosti pol'zovatelya.
Moshchnost' funkcij ili prostota ispol'zovaniya. Odnako pri takom reshenii
teryaetsya to, chto delaet ispol'zovanie menyu takim prostym dlya novichkov: menyu
predstavlyaet spisok al'ternativnyh glagolov, dopustimyh v kazhdom konkretnom
sostoyanii. Mozhno kupit' korobku, prinesti ee domoj i nachat' rabotat', ne
chitayu instrukciyu, znaya lish', dlya chego ona kuplena i eksperimentiruya s
razlichnymi glagolami v menyu. Odna iz slozhnejshih zadach, stoyashchih pered
arhitektorami - eto najti sootnoshenie mezhdu moshchnost'yu funkcij i prostotoj
ispol'zovaniya. Nuzhno li proektirovat' programmu v raschete na novichka i
sluchajnogo pol'zovatelya ili stroit' ee s moshchnymi funkciyami dlya
professionala? Ideal'noe reshenie - obespechit' i to, i drugoe konceptual'no
soglasovannym obrazom, chto dostigaetsya pri pomoshchi interfejsa WIMP. U chasto
ispol'zuemyh glagolov menyu est' klavishnye ekvivalenty iz odnoj klavishi +
komandnoj klavishi, kotorye obychno legko vvesti levoj rukoj odnim akkordom.
Naprimer, v Make komandnaya klavisha (^) nahoditsya kak raz pod klavishami Z i
X, poetomu samye chastye dejstviya kodiruyutsya kak ^z, ^x, ^c, ^v, ^s.
Postepennyj perehod ot novichka k opytnomu pol'zovatelyu. Takaya dvojnaya
sistema zadaniya komandnyh glagolov ne tol'ko otvechaet potrebnosti novichka v
legkom obuchenii i potrebnosti opytnogo pol'zovatelya v effektivnom
ispol'zovanii, no i pozvolyaet kazhdomu pol'zovatelyu plavno perejti iz odnogo
rezhima v drugoj. Bukvennye oboznacheniya, nazyvaemye klavishami sokrashchennogo
nabora, pokazyvayutsya v menyu ryadom s glagolami, poetomu v sluchae
neuverennosti pol'zovatel' mozhet raskryt' menyu, chtoby proverit' bukvennyj
ekvivalent, vmesto vybora punkta menyu. Kazhdyj novichok zapominaet snachala
sokrashchennyj nabor dlya svoih chastyh operacij. On mozhet poprobovat' lyuboe
sokrashchenie, v kotorom ne uveren, poskol'ku ^z otmenyaet lyuboe oshibochnoe
odinochnoe dejstvie. S drugoj storony, on mozhet spravit'sya v menyu
otnositel'no dopustimyh komand. Novichki ochen' chasto opuskayut menyu, opytnye
pol'zovateli - redko, a tem, kotorye nahodyatsya poseredine, lish' ot sluchaya k
sluchayu ponadobitsya vybirat' iz menyu, poskol'ku oni uzhe znayut klavishi,
kotorye vyzyvayut bol'shinstvo osushchestvlyaemyh imi operacij. My, proektirovshchiki
programmnogo obespecheniya, slishkom privykli k etomu interfejsu, chtoby ocenit'
ego elegantnost' i moshch'.
Uspeh pryamogo vklyucheniya kak sredstva navyazyvaniya arhitektury. Interfejs
Maka primechatelen eshche v odnom otnoshenii. Bez vsyakogo prinuzhdeniya
razrabotchiki sdelali ego standartom dlya raznyh prilozhenij, vklyuchaya
bol'shinstvo iz teh, kotorye opisany storonnimi organizaciyami. Poetomu
pol'zovatel' priobretaet konceptual'nuyu soglasovannost' na urovne interfejsa
ne tol'ko dlya programm, postavlyaemyh vmeste s mashinoj, no i dlya vseh drugih
prilozhenij.
|tot podvig sozdateli Maka osushchestvili, vstroiv interfejs v PZU, v
rezul'tate chego razrabotchikam proshche i bystree pol'zovat'sya sushchestvuyushchim, chem
sozdavat' svoi idiosinkrazicheskie interfejsy. |to estestvennoe stremlenie k
edinoobraziyu vozobladalo nastol'ko shiroko, chto stalo standartom de-fakto.
Estestvennye stremleniya byli podderzhany polnoj priverzhennost'yu so storony
menedzherov i sushchestvennym prinuzhdeniem so storony Apple. Nezavisimye
recenzenty v zhurnalah, ponyav ogromnoe znachenie mezhprogrammnoj konceptual'noj
celostnosti, takzhe podkrepili estestvennye stremleniya, bezzhalostno