Csúnya dolog egy gondolatból az egyik felét kiragadni, ...
Itt elvesztettem a fonalat. Hol ragadtam ki, melyik felét a minek?
... elég jól meg tudom ítélni mi elégséges és optimális egy feladat megoldásához.
Ezt hogy csinálod? Ha jól értem, akkor egy csomó technológia megismerésétől elzárkóztál. Akkor hogyan tudod megítélni, hogy mi lenne optimális, ha nincs egy csomó technológiával first hands experience-d, nem ismered a buktatóit, real life limitációit, stb.?
Pl. a shell scriptet még nem tiltották be, ezért mondjuk inkább azt választom.
Itt meg nettó árnyékboxolsz! Szerintem sehol egy rossz szót nem szóltam a shell-scriptekre.
Ld. még, amit a scriptelős fórumbejegyzésben küldtem linket: Szerinted egy olyan script annak a jele, hogy nem szeretek shell-scriptelni, vagy nem tudom jól használni?
Néhány ember a legmodernebb eszközzel sem tudja maradéktalanul megoldani a feladatot, hiába ért hozzá.
Egyetértés van: Az eszköz ismerete sok esetben kevés. Ha hiányzik pl. a józan paraszti ész (amit sok esetben hiánycikknek vélek felfedezni).
Glennmalure-ben van egy kedves kis pub, ahová szerettem beülni egy-egy pint Rebel Red-re (vagy néha egy jó Steak-re).
Na ott van egy remek kis tábla, némi életbölcsességet sugallva, kitéve: Common sense is not so common!
Nagyon sokan, amikor megismernek egy eszközt, annyira magára az eszközre fókuszálnak, hogy közben szem elől tévesztik a nagy képet. Hogy mire is jó, hogyan illeszkedik az egészbe. Nem lesz egy absztraktabb képük arról, hogy az eszköz igaziból mit is csinál, vagy mi a szerepe egy nagyobb ökoszisztémában. Helyette: Nini, kőőőőbalta! Bámm-bámm!
Általában ez a baj a mindenhez értő kollégákkal,...
Amennyiben ez nem nekem szólt, akkor még egyet is tudunk érteni. Láttam már ilyen jelenséget is. Hogy széltében annyira skálázódik a tudások, hogy a sok-sok legókockából, amit megismert igazán mélységi ismerete egyik területen sincs.
Igen. Van ilyen is. Sok.
Olyan is van, aki ezt tudja jól csinálni. Jó esetben valamilyen technial lead szerepkörben jó tud lenni az ilyen skillekkel rendelkező ember. Feltéve, hogy képes felismerni a saját tudásának korlátait, és nem akar felülről megmondani mindent, hanem a szélességi ismeretét fel tudja arra használni, hogy tudja, mivel kapcsolatban kit kelljen megkérdeznie.
... zseniálisan sikerült szétvágni a feladatot. Így nem kellett egymás kódjaiba nyúlkálni ...
Bocs, a kiragadásért, de...
Ez pont azt bizonyítja, ami megérzésem volt rólad. A "nem kellett egymás kódjába nyúlkálni", nem jelent feltétlenül pozitív dolgot. Sőtt, nagyon sok esetben nem.
Előfordul, hogy megadatik ilyen luxus.
De ott rendszerint szokott is lenni mindenféle gubanc a háttérben.
Hogy egyik volt munkahelyemet említsem, pozitív példaképp: Balabit!
Ott egy kifejezett belső érték a transzparencia. Ezt (többek közt) már a bemutatkozó f2f-en elmondta a főnököm, a cég értékeit bemutatandó. Bármit megkérdezhettél, bármiről. (Na jó, nyilván voltak olyan dolgok, amik józan paraszti ésszel beláthatóan nem. Mint pl. amik pénzügyi titoknak minősülnek. De minden másban ez adott volt)
Ez a supporton nagyon jól jött, mert ha bármerre gubancot gyanítottál, supportosként is volt lehetőséged betekinteni a teljes kódbázisba, és amilyen mélyen csak tudtad behatárolni a hiba helyét, evvel könnyítve a fejlesztő/ karbantartó csapatok dolgát.
A fejlett eszköz sok esetben roppant egyszerűvé teszi a megoldást, de megfoszt a gondolkodás és a feladat átlátásának képességétől.
Na, ebben viszont strongly disagree! Ha úgy választasz ki egy fejlett eszközt, hogy közben nem látod át a feladatot, és nem látod át mélységéig a code-patht, data-patht, akkor nem tudatosan választottad ki. (Lásd még Hype Driven Development és Bullshit Driven Development linkeket a múltkori TDD-s szavazásból.) Onnantól már legfeljebb csak "megérzés", esetleg "educated guess".
Az más tészta, amiben igazat adok (bár ezt nem írtad), hogy a gyakorlatban van sok olyan kókler, aki így hozza a döntéseket.
Dublinban az egyik banknál volt alkalmam ilyen kóklerekkel együttdolgozni az egyik világszinten legnagyobb banknál. Csupa ex-oracle alkalmazott. Ki se vártam a 6 hónap próbaidő végét. Mire kitisztult előttem a kép, mekkora gányolás ami ott megy... Ez sajnos eltartott 4,5 hónapig. Olyan szinten és annyi területen voltak unprofesszionálisak, hogy az leírhatatlan.
A cég szakértője éppen Magosányi Árpi volt (ha nem hallottál róla...
Én csak egy Mag-ot ismerek. Igazi mókamester: Már régebb óta ismertem, de 2003-ban volt egy jó "vicce". Két héttel meg pár nappal a diplomamunkám leadási határideje előtt felhívott, hogy nekem kellene az FSN-t képviselnem brüsszelben, a szoftverszabadalmi cécó mentén.
Szerintem Trey vagy Bra sokkal méltóbb lett volna a feladatra, de Árpi ragaszkodott hozzám. Még abban is hitt, hogy az akkori rendszerben egy munkanap alatt tudunk nekem útlevelet intézni.
Aztán végülis sikerült :)
Ott voltam velük Brüsszelben :)
Ugyanezen az úton Ápri próbált a python jóságáról is meggyőzni, meg hogy miért lenne jó ezt megtanulni. Ennek a kisértésnek még utána tizenpárévig sikerült ellent álljak :) Aztán a könyvesboltnak dolgozva, profiktól látva, hogy is megy ez nagyban. Már sokkal vonzóbb lett. Árpi csak nem a jó érvekkel próbált anno meggyőzni. De azért a közben eltelt tizenpárévben én is sok tapasztalattal lettem gazdagabb.
A Berklydb-s témára: Nyitott ajtókat döngetsz. Én tisztában vagyok vele mire jó. Nagyon sok php-pistike olyasmire használ mysql-t, amire amúgy egy sima bdb is jó lenne. Főleg, hogy a szememben a mysql, ezen a szinten felül nem is hatékony. Ahogy kell bármi constraint, vagy foreign key, vagy bármi amit myisam-on nem tudsz és innodb kellene hozzá, már postgresql köröket ver rá. De a sok php-vérpistike meg nem is érti magát az SQL-t sem. A constrainteket leprogramozzák a kódba, mert az életükben nem hallottak a normálformákról, vagy épp arról, hogy a gyakorlatban nem mindig jó a normál forma se, van amikor egyszerűen nem árt bevetni a már emlegetett józan paraszti észt (angolul: Common sense).
Általában véve igazad is lehetne abban, hogy fél sor példából nem érdemes kitalálnod ....
Nem is a másik 4999 sor érdekes. Hanem abból extrapoláltam egyfajta kódolási stílust, hozzáállást.
Az idézőjel nem használatából, meg azokból amit leírsz, nagyjából elég jól el is találtam:
* feltételezed, hogy zárt a rendszered. Megesik. De ez a való életben nagyon ritkán igaz, és luxus a feltételezés.
Még, ha amúgy igaz is, nem élni evvel a feltételezésel nem jelent számottevően több extra munkát.
Cserében ha befekteted azt a kicsit extramunkát akkor robusztusabb, általánosabban használhatóbb kódot kapsz.
Ami, ha később jön valami komolyabb igény változtatásra, akkor sokkal könnyebb lesz a módosítás is.
* ha már a mélységeiben látni, hogy mi történik felmerült...
echo $dir esetén a shell előbb kiértékeli a $dir-t. Szétszedi szavakra, és szavanként adja át az echo-nak az argumentumokat. Még ha amúgy nincs is a $dir értékében szóköz +1 parsing cycle végigmegy rajta.
Cserébe, ha az echo "$dir" formát használod, akkor a parser számára világos tud lenni, hogy ott 1 db. argumentum van, és az mindenféle további értelmezés nélkül, ahogy van, egy az egyben át lehet adni az echo-nak.
Nagyon apró töredkémásodperc a különbség. De cserébe az idézőjeles forma: gyorsabb, biztonságosabb, és rugalmasabb kódot is eredményez, amit ha később módosítani kell újonnan megjelent követelmények miatt, ezt a részt nagy valószínűséggel nem kell tapicskold. Még a te verziódban előfordulhat, hogy igen.
hanem az összes munkaterület fegyelmezett hierarchiában dolgozik.
Ez a "munkaterület" ebben a kontextusban mit jelent?
Másik programrészeket, vagy más embereket?
A samba share-s input-ot egyrészt nem én dobtam fel. Másrészt: Prog1-en nálunk az első amit Dévényi bácsi a fejünkbe táplált: Mindig validáld az inputod!
Ha idézőjelek nélkül használod, és ezt tudatosan teszed lelked rajta. De gyanítom nincs a modul elején egy másik rövid ellenőrzés, ami meggyőződik arról, hogy a shell-es modulodnak eljutott input valóban egybevág avval a feltételezéssel, hogy amúgy a fájlrendszerre nem került szóközös fájlnév. Ezt csak úgy, ellenőrzés nélkül elfogadod.
És megismétlem: Akár teljesen jól működhet a te zárt rendszeredben, mert körben kívülről, egy csomó effortot beletolva meggyőződtél róla, hogy ne legyen szopóág.
De a gyakorlatban kaptál egy rugalmatlanabb kódot.
Közben beléd rögzül néhány antipattern, amit rohadt nehéz levetkőzni, amikor meg valami olyan modullal, emberekkel, ökoszisztémával kell együttműködj/dolgozz, ahol nincs mindenre befolyásod és csak read-only számodra a feladatspeci.
Az elmúlt 25 évben kidolgozott eszközkészlet kiforrott, elég unix-szerű - messzebb áll gnu szintaxisától. Elég sok "újat" kellene tanulnod. :-D
Ez a poén nem jött át. Valamiért az az érzésem komolyan gondoltad, hogy újat kellene tanuljak. De akkor meg kapufa.
Azt hittem letárgyaltuk már, hogy előbb láttam AT&T SVR4 unix-ot, mint Linuxot, meg hogy előbb ültem X-terminálnál cde-vel, mint láttam volna linuxos gui-t.
Nem szeretnék újat tanulni? (Csak a keretes szerkezet kedvéért.) Dehogynem, de csak olyat, ami érdekel, vagy szükséges a munkámhoz.
Na, itt a különbség: Engem sokminden érdekel.
Másrészt: ha mindent csak azért tanulsz, mert a munkádhoz szükséges, és nem azért, mert érdekel... Úgy könnyű eljutni a kiégéshez.
Én jobb szeretek úgy választani munkát, ahol közben tudok az elvégzéséhez olyat tanulni, ami érdekel.
Ha meg közben fel tudom jól használni azokat a tapasztalatokat, amiket más érdekelt területek megismerése közben rámragadtak, még jobb.
Kapcsiból át lehetne írni C++, java, sőt python nyelvre is, de ekkor elveszne a shell flexibilitása
Gyanítom az OOP és a struktúrált programozás azért nem fogott meg, mert nem sikerült levenni a lényegét.
Mint írtam: Szeretek shell-ben programozni jó magam is. De ezekkel szemben a shell-t flexibilisnek beállítani...
Különben is, mostanában inkább a hardver újdonságok érdekelnek...
Mesélj! Sikerült már az IBM-nek végre kijönnie valami modern Power procival?
Eléggé sajnáltam, amikor a macbook-ok X86-ok lettek, mert az IBM még mindig töketlenkedett. Pedig egy tök jó risc architektúra volt. De van az az érdésem, hogy lassan a Sparc sorsára jut.
Bár, most hogy az trOllacle levette a kezét a Sparc IP-kről és tisztán a Fujistué, még bármi is lehet. Akár az is, hogy gyorsabban hal ki funding hiányában, akár az is, hogy látnak benne fantáziát és reneszánszát éli majd.
X86 vonalon évek óta semmi egetrengetőt nem láttam.
Utoljára amire wow-feelingem volt, az az Amd K8 architektúrájában megjelent HT volt.
Amit jóóóóó pár évvel később tudott csak az intel utolérni, amikor a Nehalemek és a QPI megjelent.