Tema: Re: Framework
Autorius: Justas Butkus
Data: 2009-05-12 03:12:34

Laimis rašė:
> Taip!
Na, jei jau *N*e*G*rupė PHP...

> Yra dvi medalio pusės:
>  - kodą geriau priprasti rašyti (lygiuoti) taip, kaip siūlo variklis;
> tai universaliai gera praktika, nes pats variklis yra paremtas gera
> praktika ir ją tokiu būdu (jos nelaužant) diegia.
K&R style et. al. Taip, žinia.

Nesmagu, kai gaunu failą, atsidarau su _redaktoriumi_, o ten viršuje
vim'o instrukcijos komentaruose, kaip jam kod1 dėlioti.

Tačiau man perprasti nuo

if( salyga1 || salyga2 )
{
}

prie

if( salyga1 || salyga2 ) {
}

reikėjo gero pusmečio.
Dabar pirmo varianto nemėgstu ir savo seną kodą taisau užkliuvęs
(subversija džiaugiasi! :) ).

>  - „GNU Emacs is an extensible, customizable text editor—and more.“
> http://www.gnu.org/software/emacs/
> 
> ;-)

Bijau pasakyti (paprasčiau - nepamenu), koks čia maždaug-redaktorius dar
daugiau naujų eilučių man siūlydavo.
Na, manyčiau, kad skirtingose sistemose skirtinga patirtis sukaupta.
Emacs'e, kartais, labai jau pingviniška (patys žinome kas turbūt būtų
kuklus žodžių ir gausus veiksmų už tokią pratarmę) - tuktelėjusi, gal ne
itin rangi. Iš kitos pusės - siaubingai protingas daiktas.

> Neteko nusivilti.  Dažniausiai lygiavimas užsiožiuoja, jei viršutinio
> kodo sintaksė aiškiai (su)laužyta; pavyzdžiui trūksta skliaustelio,
> kabliataškio ar jų per daug...)
Paspaudžiau refresh čia, bo kaip sykis spaudau mygtukus to įrankio,
kuris evoliucionavo iki pašto programos (kieno čia pranašystės -
neprisimenu). A, nu ir tetris... :)

Kažkuriame lange .emacs pas mane pribjaurotas taip, jog PHP sintaksė su
Lisp'u maišosi. Tik čia jau autoriaus rankos ne vietoje ir ne tokios...
Skliaustelius rašydamas truputį liūdžiu, bet dar ne taip (dažnai), kad
atsiversčiau ir peržiūrėčiau, ar nusikopijuočiau iš kito ekrano.

> Kokiam varikliui, kokiuose režimuose? (kalbame apie Emacs/Vim?). Net
> įtarčiau, kad galbūt per daug reikalaujama, nes esminius dalykus abu
> redaktoriai daro skrupulingai gerai (na, remdamiesi gana aiškiomis,
> apibrėžtomis taisyklėmis, išraiškomis).
Kažkur emacs'ą su php-mode trumpino php+sql+template.

Užkliūsiu vėlei - pakabinsiu vėliavą.
Ne kasdien, bet sykiais erzina. Dabar ir taip negražų kodą dėlioju, tai
džiaugiuosi juodu tekstu baltame fone.

> Oi ne...:
> 
> 1.
> ...   
> (func (+ (* 5 (expt a 4))) (- (* 3 (expt b 3) (+ x z)))))))
Vienas malonumas sintaksinę analizę atlikti, a?..

Čia Scheme? Ar mano paviršutiniškas noras pažinti pasaulį mane apgauna?
Iš pradžių norėjau girti lisp'ą (Lots of Infuriating & S...
Parentheses), bet pagalvojau, kad ~/.emacs.d/ gulintys failiukai kitaip
prabyla į juosius atvertusį, tad strėlytę mečiau tolėliau...

> 
> 2.
> If
>  If
>   If
>    ...
>    } ... } ... } ... } ... } ... } ... } ... } }
Mama man sakė, kad jei jau daugiau nei 5 lygiai šakojimosi (for, if, do
....while, suprantame apie ką kalba...) tai ryte gali skaudėti galvą...

Šiandien tris if'ų lygius suplokštinau iki vieno vienai funkcijai ir
dviem call'ais papildžiau tokį grožį. Žinia, jei atvirai, tai ne tik
kodą grąžindamas, o dar ir todėl, kad prasmę pamačiau tunelio gale
šitaip persidėlioti.
Brangu, žinia, bet ateis žiema, bus šalta, tai paleisiu ką nors
skaičiuoti - ir procesorius panaudotas, ir pačiam šilta bus...

> 3.
>   LEFT JOIN ...
>    LEFT JOIN ...
>     LEFT JOIN ...
>      ...
>       LEFT JOIN ... )))))))))))

A1 x A2 x ... x An

Atpratau kiekvieną tolesnį JOIN'ą taip įtraukti.
Žinia, čia situacijos, o ne bendras atvejis.

Bent sykį per savaitę matyt ir užsimanau tokio gudraus seklio, tik kad
tuomet dar pagalvoju ir apie kodo tvarkytoją (tokia tvirtai sudėta
moteris (čia proza, jokios diskriminacijos), kuri sako "Kol nesutvarkysi
kodo, tol čia ir sėdėsi!" rašytojui).

>> Gal ir "nice to have", tačiau nereikėtų šituo įrankiu naudojantis
>> bjauroti kodo ("tiesiog pažiūrėsim kaip veikia"), o po to taip ir
>> palikti...
> 
> ?
> Parodomas (pažymimas), randamas (logiškai, sintaksiškai) neužbaigtas
> blokas, kuris išskiriamas skliausteliais ('[]', '{}', '()') arba
> parodoma tokio bloko pradžia.
> Sakyčiau, kad tai viena iš tų savybių, kurias redaktoriaus lekseris
> „must have“.
Na, kaip įrankio lekseris veikia aš lyg ir negalvojau. :->
Apskritai, kol nėra privelta stambesnių klaidų, toks funkcionalumas
būtinas, norint recover'intis nuo smulkesnių sintaksės pažeidimų.
Bet įrankio čia nekuriame.

Na, o jei ne į žodžius, tai irgi taip - sveikas blokų atpažinimas, bet
nesveikas kai kurių IDE paslaugumas juos sutraukiant, ar bandymas
apšviesti švaistant procesoriaus laiką.
Bet tai ne apie Emacs'ą. :)

> Tokių nėra taip jau mažai...
> Na gerai, išskirsiu apskritai blokinę/regioninę manipuliaciją (tokių
> įvairių kalbų režimuose esti ne taip jau ir mažai): region (un)indent,
> region eval, region diff, ...
Na je. Ant <start-eilutė>, <end-eilutė> vykdome kokį nors triuką.

Tik ma kaip kas.

Regiono stumdymas tabuliatoriumi - vienas veiksmas.
Tiksliau regiono (rectangle, gal ...kaip kada) pakeitimas, iškirtimas,
įdėjimas...

Kodo įvykdymas. Nežinau, man atskiras kodo blokas prasideda nuo kelių
eilučių (gal vietoje ir testuojamų), toliau gauna naują failą, jame
pradeda rinktis savo rūbus (čia tą pasiimkime, čia ano paprašykime...),
o vėliau, kartais sugrįžta atgal į failą iš kur ir kilo, o kartais
pasilieka gyventi atskiro gyvenimo, kur jį ir vykdome.

Diff'as ganėtinai daug abejonių kelia.
Vertimų failuose labai gerai.
Kode - kažkur varpelis skamba, jog taip neturėtų būti.

Bendrai apie regionus - taip, sutinku, toks funkcionalumas turi būti,
tik klausimas kiek daug ant to bus pakabinta. Kur "būtina", o kur "gal"...

> Sunku patikėti, kad taip uoliai mankštini savo atmintį atsidaręs 10-30+
> projekto bufferr'ių...
> Nes  kitas variantas, yra tai, kad gaišti laiką bandydamas prisiminti, o
> tiksliau vėl ir vėl, iš naujo ieškodamas ir kliūdamas akimis už visų tų
> buferių, kol apkeliauji tas viskas skirtingas, išsibarsčiusias kodo
> kerteles... ;-)
Gerai, prisipažinsiu, per pastarąsias kelias valandas bent tris syk
siundžiau find su grep'u ant didelės failų medžio.
Gal ir gerai būtų žymelės.
Bet galiu pabandyti ir pateisinti save - medis ne mano. :)

> Čia gi omnitel ng. Omnitel *php* ng. Klausimo autorius, turbūt, jau
> seniai pamiršo ko klausęs (gal net kad klausęs) ir ką jam atsakė. Galima
> drąsiai fleiminti, jei tik noras yra.
Kuo ne puikus būdas pastumti IO_WAIT minutę. :)

> Na, gerai pridėsiu dar keletą redaktoriaus naudingų savybių:
>  - session
Nea... Na kam gi...
Nebent trečią kartą per tą pačią valandą tinklas pabėga ir tuo pačiu
tolimi langai. :)

>  - frame'ai (nepatikėsiu, kad niekada neprisireikė vizualiai,
>    lygiagrečiai-nuosekliai nagrinėti/modifikuoti dviejų ar daugiau
>    fragmentų lakstant po buffer'ius be bookmarkų.. ;-)
Ekranas mažas...
Pirštai labai džiaugiasi Emacs paslaugumu tarp dviejų langų šokinėjant.

>  - search & replace in files;
find . -type f -name glob\*.patt -exec perl -i -pe 's/foo/bar/' {} \;

A?..

>  - keyboard macros;
O vat nuo šios vietos aš pamatau _ženklą_.
Norisi kažkokio bendro funkcionalumo visoms programoms (teksto
pažymėjimas ir kopijos įdėjimas viduriniu pelės mygtuku?). Tuo tarpu jei
pradedu dėlioti visokias gudrybes, tai kitoje stalo pusėje sėdėdamas
galvoju - gal ten labai jau daug magijos vyksta ir to nebereikia.

Ne tai, kad kažkas baisaus.

Mark -> draw selection -> _M-X replace-string -> foo -> bar -> [Enter]
prieš
Ctrl+H -> foo -> bar -> [Enter]
Važiuoju su pirmu, nes kitame lange manau greičiau bus susirasti tą
operaciją, nei sugalvoti, kaip užprogramuoti savo klavišus.

Na, patogumas, o kartais pražūtis. Aišku, girdėjau sakant, kad virš
fantazijos tai tuomet, kai atsisėdęs prie kitos klaviatūros, kito
ekrano, nejučia dirbi taip, kaip reikalinga.

>  - spellcheck
Na, kaip ir kiekvienai pašto programai, aje? :)

Kai kode rašo lietuviškai, o failų pavadinimuose palieka tarpus aš
susimąstau.

Žinia, spellcheck'as pats savaime maža su lietuvių kalba turi. O, kad,
bet, tačiau...

Serijoje "iš jūreivių pasakojimų" girdėjau apie failą "grammar.h",
kuriame buvo alias'ai funkcijoms, kurios originale netaisyklingai
pavadintos buvo.
Pradėsime po to rašyti:

public gero žmogaus pavardė := perskaityti iš komandinės eilutės();

:)

>  - tetris!
Nu!
Ir būtų gerai, jei žaidžiant ping-pong'ą pašto buferis sėdėtų ramiai.

> (ir dar tikrai būtų galima tęsti...)
Gal geriau nereikia...
Vardan ramaus miego sutiksiu, kad Emacs'as yra gerai.

Tiesiog IDE (gal jau tik pats žodis belikęs) mane slegiančiai (taip
maždaug 200Mb ...prieš išpakuojant) veikia. :)


Štai, Emacs'as išjungtas, komandinė eilutė irgi palikta ramybėje.
Dabar dar užrašinės langą užvėriau. Vadinasi ji "notepad.exe" ir vis dar
puikiai tarnauja - ant darbalaukio vėl lipnių jos lapelių prisikaupė. :)

Kaip su tanku į bulvių lauką nepatogu važiuoti, taip su IDE man nekyla
ranka užrašus kringalioti, ar pakeisti vieną-du žodžius paprasčiausiame
lape (tegu tai ir programinis kodas).
Ir atvirkščiai, dar nebuvau (tikiuosi!) sugalvojęs, su tokiu įrankiu
kaip "notepad.exe" redaguoti aibę, ar tegu ir vieną bet rimtesnio
prisėdimo reikalaujantį failą.

Tiesiog įrankis turi būti minimalus ir pakankamas norimai užduočiai.
Jei CSS, tai gali būti spalvos. Jei kodas, tai gali būti pasiūlymas, tik
ne po ilgo džeržgesio ir ne per pusę ekrano. Jei laišką Kalėdų Seneliui
rašau, tai tegu ir spellchecker'is (geriau jau Google Translate)...
Tačiau bendru atveju ir balto lango su juodomis raidėmis gana.
Popierinio. :)




--
JB