Tema: Re: Žmonės, susitvarkykite encodingus!!!!
Autorius: RaR
Data: 2011-09-20 20:57:09
>> Tai mano siūlomame variante viskas irgi veiktų _be_jokių_pasikeitimų_.
>
> Tai būtent, kad NE. Tikrai netapačiai. Nejaugi sunku tai įžvelgti? Aš
> šiuo atveju nenoriu pritempti prie konkrečios situacijos, o kalbu labiau
> apibendrintai (jei jau tu, tokioje nevienareikšmiškoje, nors
> akivaizdžioje situacijoje, neįžvelgdamas grėsmių, nematai, kaip tavo
> pakeitimai įtakoja programos veiksenos pasikeitimus, tai neabejotinai
> paslystum kur kas delikatesnėse situacijose).
>
> A (globali nuostata) B (tavo būdas)
> 50-100 aplankų 50-100 aplankų
> kuriami nauji aplankai kuriami nauji aplankai
>
> Tai nejaugi tau neakivaizdu, kad įjungus/išjungus globalią nuostatą,
> visi šie punktai (kurių dar galbūt yra ir daugiau) veikimo prasme A ir B
> variantuose išsiskiria. Išjungus, A variante, nereikia to daryti 50-100
> kartų atskirai visiems aplankams, kaip tai reikėtų daryti B variante. O
> jei jau reikėtų pagalvoti apie poreikį vėl įsijungti globalią nuostatą?
> Aha, ir vėl 50-100 aplankų spragsėti pelyte ir dėlioti varneles?
> Kuriami nauji aplankai A atveju paklūsta globaliai nuostatai, ko jau
> nebėra B atveju.


O dabar pasamprotaujame konkrečiai.

Variantas B (mano). Įsidiegiant nauja programos versija patikrina 
parametrų failą ir, radusi nuostatą, kad globaliniu lygiu reikia 
priverstinai naudoti tam tikrą koduotę, priskiria tokias nuostatas 
visiems rastiems aplankams (tipo, kad programa veiktų kaip ir anksčiau), 
o tą nuostatą iš parametrų failo pašalina. Kadangi nauja programos 
versija tos nuostatos nebeturi, jos keisti nebegalima, tai logiška, kad 
ir parametrų faile ji nereikalinga (šviežiai įdiegtų TB 3+ parametrų 
faile tokios nuostatos ir nėra). Toliau programa veikia kaip ir turi 
veikti, kiekvienam aplankui vartotojas gali keisti nuostatą ar 
numatytoji koduotė bus taikoma priverstinai.

Variantas A (de facto). Įsidiegiant nauja programos versija patikrina 
parametrų failą ir, radusi nuostatą, kad globaliniu lygiu reikia 
priverstinai naudoti tam tikrą koduotę, naudoja tokią nuostatą visiems 
rastiems aplankams (tipo, kad programa veiktų kaip ir anksčiau). Ir ji 
ne tik palieka tą nuostatą parametrų faile, bet teikia jai pirmenybę 
prieš atskirų aplankų nuostatas (t.y. teikia pirmenybę nebepalaikomai 
nuostatai prieš palaikomą nuostatą). Vartotojas gali kiek nori seniems 
ir naujai sukurtiems aplankams uždėjinėti ir nuiminėti paukščiukus, jis 
negali pakeisti programos veikimo - visiems aplankams numatytoji koduotė 
taikoma priverstinai. Net jei vartotojas galvoja, kad turėtų būti 
kažkokia globali nuostata, jis jos neranda, nes nauja versija jos 
nepalaiko (nors de facto ja vadovaujasi).

Visiškai neaišku, kokias problemas sukelia ar gali sukelti B variantas. 
Tuo pat metu visiškai aišku, kokias problemas sukelia A variantas. 
Pristigę logikos programuotojai sukuria jovalą, dėl kurio programa 
pradeda veikti klaidingai (nebeveikia turinčios veikti ir vartotojui 
reikalingos funkcijos), jei programa parametrų faile aptinka tam tikrą 
pasenusios nuostatos pasirinkimą.



>> įvykus vienos nuostatos perkėlimui visiškai bereikalingai inaktyvuojama
>> galimybė keisti kitus parametrus, t.y. programa nebeveikia taip, kaip
>> turėtų veikti. O tai yra apsižioplinimas, nedadirbimas.
>
> Ne INaktyvuojama, o tiesiog NEAKTYVUOJAMA (neįjungiama). Tai esminis
> skirtumas. Esminis, nes inaktyvuoti reiškia modifikuoti esamą veikseną,
> o neaktyvuoti naujų savybių — NE.


Kad ir kiek tu matytum skirtumo tarp inaktyvavimo ir neaktyvavimo, 
rezultatas tas pats - vartotojas dėl nesuprantamų priežasčių praranda 
dalį programos funkcionalumo, ir, kas dar labiau glumina, jam lyg ir 
sudaroma to funkcionalumo iliuzija, bet realiai tai neveikia.



> Tokios problemos apskritai neturi naujas naudotojas, kuris dėl paslėptos
> globalios nuostatos ja nebesinaudoja ir pradeda naudotis programa (ir
> jos naujomis savybėmis) nuo pradžių.


Na, jei tokias problemas turėtų ir naujas vartotojas, tai būtų totalus 
"pravalas". Bet visiškai nebūtina jų sukurti ir senam vartotojui. Yra 
aibė būdų jų ne tai kad išvengti - tiesiog nesukurti, vienas iš būdų yra 
kad ir mano variantas B.