- A hozzászóláshoz be kell jelentkezni
Hozzászólások
- Ez a kérdés olyan cégekre/csapatokra vonatkozik, akik vannak már olyan nagyok, hogy egy ilyen „munkakört” megengedhessék maguknak.
- A kódminőség javításába beletartozik a fordítói figyelmeztetések javítása, statikus és futásidejű analizátorok futtatása és a jelzett hibáik javítása, új tesztesetek írása, teljesítményoptimalizálás, illetve kis mértékben a kívülről jelentett hibák javítása (nem problem management a fő feladata).
- A hozzászóláshoz be kell jelentkezni
Arra ixeltem, hogy "Nem hagynám, hogy egy dolgozó kizárólag ilyen munkát végezzen.", de rajottem, hogy egy QA csapat, vagy az E2E tesztelok pontosan ilyen munkat vegeznek, bar csak attetelesen, hiszen nem kozvetlenul javitjak a kodot, de bug-ok felderitesevel vagy kulonbozo reportokkal (test coverage). Mondjuk az a gyanum, hogy nem rajuk gondoltal...
- A hozzászóláshoz be kell jelentkezni
Inkább mindenkiben tudatosítanám az elvárt minőségi sztenderdet és ellenőrizném annak betartását.
- A hozzászóláshoz be kell jelentkezni
Vannak átvett projektek sajnos, ahol azzal kell dolgozni, ami van. :)
- A hozzászóláshoz be kell jelentkezni
Mindig azzal kell dolgozni ami van es minden a kicsinel nagyobb projekt az "atvett" mert a kollegak fele mar reg nincs ott akik a kodot irtak.
Az lehet kerdeses, hogy ebben az esetben neki kell-e allni az oncelu kodtisztitasnak (tehat nem bug javitas, funkcionalitas nem valtozik), vagy minden uj funkcio hozzaadasakor kell az erintett reszeket tisztabba tenni. Szerintem az utobbi.
- A hozzászóláshoz be kell jelentkezni
Valahol a ketto kozt lehet az igazsag. Atlathatatlan kodbazisban pl estimalni se tudsz rendesen, hiszen fogalmad sincs, hogy mit es hol is kene implementalni - max egy kodos elkepzelesed lehet rola -, hogy ne zuhanjon magaba az egesz kartyavar. Tehat aktivan is kell tisztogatni, meg feature implemetalasa kozben is.
- A hozzászóláshoz be kell jelentkezni
Az átlagember refaktorál, a zseni átlátja a káoszt :-)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Te nem véletlenül nálunk dolgozol? Pont ugyanebbe futottam bele :) Tisztelt management megkérdezi a mások által kb. 10 éve fejlesztett kódról, amit most "nyertünk" meg, hogy mégis mennyire
estimálom a feladatot.
- A hozzászóláshoz be kell jelentkezni
Tegye fel a kezét, aki még nem írt gányolt kódot! (Jó, le lehet rakni, én sem szeretek fél kézzel gépelni.) Egész egyszerűn van az a helyzet, amikor szükség van rá, ezt el kéne fogadni. És szerintem addig nincs is vele gond, amíg tudod róla, hogy gányolt kód, és ha eljön az ideje, rendbe rakod (vagy kukázod).
- A hozzászóláshoz be kell jelentkezni
És akkor ehhez kapcsolódik a mondás, hogy semmi sem állandóbb, mint az ideiglenes megoldás. :)
- A hozzászóláshoz be kell jelentkezni
Kikerem magamnak! En me'g csak olyan ganyolt kodot irtam amirol az iras pillanataban azt hittem, hogy nagyon is fasza kis cucc! :)
- A hozzászóláshoz be kell jelentkezni
ezt itt most likeolnám :)
- A hozzászóláshoz be kell jelentkezni
+1
Tapasztaltom szerint a rossz kodot min. 3-szor kell refaktoralni ahhoz, hogy az utolso maradvany elbaltazas is kiirtodjon belole. Tehat egyetlen ertelmes megoldas van: elsore a leheto legjobb minosegu kodot kell irni. A problema inkabb az, hogy meg mindig ott tartunk, hogy a szoftverfejlesztes = kodolas, ja igen kell majd a vegen valami design dokumentacio is, de azt majd masvalaki megirja a kod alapjan. Hat olyan is lesz.
Szoval a jo kod a jo designnal kezdodik. Egy jo designt mar nagyon nehez rosszul lekodolni (persze van akiknek sikerul), de egy nem letezo vagy rossz designt csak rosszul lehet lekodolni.
- A hozzászóláshoz be kell jelentkezni
A kódminőség javítása manapság sokkal fontosabb, mint az új funkciók. Optimalizálatlan, bugos kóddal lassú és sebezhető lesz a rendszer.
- A hozzászóláshoz be kell jelentkezni
Viszont ha túl sok időt fordítasz a minőségre, a termék túl drága lesz, sokára készül el, a konkurencia hamarabb hozza ki az új funkciókat hasonló termékében,...
Ugyanez igaz egy csomó más területen is :(
- A hozzászóláshoz be kell jelentkezni
Én szeretek 5%-al kevesebbet fizetni egy bugos valamiért, majd egy csomó időt/ideget pocsékolni vele. Súlyosabb esetben bétateszter is szeretek lenni. Ja nem.
____________________
echo crash > /dev/kmem
- A hozzászóláshoz be kell jelentkezni
Ha 5% lenne a különbség akkor senki nem gondolkodna ezen. Saját tapasztalatom, hogy egy "valahogy működjön mert kell a pályázatra", és egy auditorral felszerelt ügyfélnek készült alkalmazás között minimum 5x-ös időkülönbség van.
- A hozzászóláshoz be kell jelentkezni
Te dolgoztal mar olyan projekten ahol az volt a feladat, hogy "ne valtozzon semmi, csak legyen jobb?" azaz, hogy nem kellenek uj funkciok, most csak a kodminoseget javitjuk fel evig?
A kodminoseg persze fontos, de semmikepp nem allitanam ellentetbe az uj funkciokkal. Szerintem hulyeseg osszehasonlitani oket (lasd: az egyik sokkal fontosabb a masiknal).
- A hozzászóláshoz be kell jelentkezni
Fontos a kódminőség, van amikor csak azzal kell foglalkozni. Akár hosszú percekig.
17h-ig tart a munkaidő, 18.30h-ig fakultatív program a kód javítása. Minél többen bent maradnak, annál kevesebb hónapig tart a túlóra "lehetősége".
Programozótól napi 6 óra produktív munkát várunk el (12h-t számlázunk az ügyfélnek), abba belefér, hogy 6:45h alatt minőségibbé is tegye a kódot...
- A hozzászóláshoz be kell jelentkezni
Nálunk épp most lesz erre egy hónap. Elvileg :D
- A hozzászóláshoz be kell jelentkezni
Nálunk 1/3 arányban vannak un. "sustainability" backlogok (amiket a fejlesztők managelnek).
- A hozzászóláshoz be kell jelentkezni
Igen, és ez hamar átértékelődik, amikor arról van szó, hogy ha nem működik egy funkció, akkor bukjátok az egész projektet. Hiába van szép kódod (ami egyébként igencsak szubjektív), ha nincs munka, mert semmit nem tudtok időre teljesíteni.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
A maintenance és refactoring munka hosszú távon elég idegőrlő. Én mindenképpen rotálnám az embereket. A feladat fontos, de nem hagynám, hogy valaki kizárólag ezzel foglalkozzon.
--
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." John F. Woods
- A hozzászóláshoz be kell jelentkezni
+1 volt már szerencsém olyan kódhoz ahol más szarát kellett lapátolni, 3 napig tartott de már két óra után nagyon elegem volt belőle. Olyanok voltak benne, hogy öröklődés helyett lemásolta a classt és átírt egy-két dolgot.
A másik ilyen a kínai androidos tv box input stackje volt amibe belehekkelt valami kínai idióta, ennek eredménye, hogy billentyűzetek, egerek és usb érintő kijelzők nem működtek, csak az ő IR-os távirányító szerűségük...
- A hozzászóláshoz be kell jelentkezni
"Olyanok voltak benne, hogy öröklődés helyett lemásolta a classt és átírt egy-két dolgot."
Orokolni amugyse szeretunk nagyon
- A hozzászóláshoz be kell jelentkezni
Szoval egy 3 szintu oroklodes eseten van 3 kulonallo object-ed a heapen. Ezt szep lesz GC-zni, es meg szebb a cache locality-nak. Nem veletlen, hogy nem szeretik mostansag a linked list-et sem.
- A hozzászóláshoz be kell jelentkezni
Korai optimalizálás. Ha már belekezdtünk :-).
- A hozzászóláshoz be kell jelentkezni
+1 :)
Amugy brutal nehez itt programozasrol beszelgetni, mert egy webalkalmazasnak tok mas prioritasai lehetnek kodszerkezetileg, mint mondjuk egy beagyazott eszkoznek, hiaba mindkettot OOP fejlesztik. Aztan meg elbeszelunk egymas mellett...
- A hozzászóláshoz be kell jelentkezni
Ez elméletben szép és jó, csak gyakorlatban sokszor megesik, hogy a már tisztázott specifikáció alapján megtervezett, és már félig implementált alkalmazásba új feature-t, és a betervezett helyett teljesen más architektúrát kérnek. A management belemegy a megkérdezésed nélkül, mert biznyic, és abból jön a pénz, te pedig cseszheted, felül vagy bírálva, de ki nem dobhatod amit eddig csináltál, mert akkor az sokáig tart.
És akkor jön az instrukció: patkold meg!
Ha nemet mondasz, akkor hoznak helyetted mást, aki még nincs olyan tapasztalt, hogy féljen keresztbe húzni mindent.
Ha igent mondasz, akkor a te nevedet fogják egy tákolt fos alá vésni, pedig te mindent megtettél.
A management elárulja a szakmát, így is, úgy is.
:/
--
Where do you want to go today?
[nobody@salcay:~]$_
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ez a 3 objekted a heapen csak akkor érdekes ha igazából nem 3-ról beszélünk ha mondjuk 3 millióról, mert a kérdéses objektumokból sok példány van.
Ténylegesen 3 objektummal azért általában még boldogul a GC :-)
- A hozzászóláshoz be kell jelentkezni
miert is lesz harom objektum?
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Ez szép és jó, de itt konkrétan Activity-kről van szó androidon, amik nagyjából az ablakok megfelelői. Ilyet is szoktam csinálni ahova kell, de ide öröklődés kellett már csak azért is, hogy meg tudd hívni az adott Activity-t. Illetve azért azt mondani, hogy ez minden esetben jobb mint az öröklődés tévedés, viszont pl. multiple inheritance helyett egy sokkal jobb megoldás.
- A hozzászóláshoz be kell jelentkezni
" 3 napig"
Nem túl nagy projekt lehetett.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
3 nap utan mondott fel :)
- A hozzászóláshoz be kell jelentkezni
Nem volt nagy, mondjuk a teljes code elég nagy volt, androidos app update upworkön...
- A hozzászóláshoz be kell jelentkezni
Szerintem ez egy teljesen más role, így kb annyira értelmezhető a kérdés, minthogy a tanár vagy az orvos kapjon-e több fizetést.
Meg amúgy is #define többi_dolgozó :)
- A hozzászóláshoz be kell jelentkezni
Szerintem meg nem szabad, hogy külön role legyen, mert annak az lesz az eredménye, hogy a normál fejlesztők továbbra is ontják magukból a szar kódot, a takarítók pedig az alkohol felé fordulnak...
Viszont ha valakinek folyamatosan a saját szarját kell lapátolnia (mert pl 4x dobják vissza code-review közben), akkor vagy megtanul rendes kódot produkálni, vagy elmegy. Mindkettő jó irány...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
+1 szerintem is ez működik. Persze ettől még van QA department meg management, de nem ők lapátolnak, hanem ők csak előírják és betartatják.
De az is fontos, hogy ne az fogadja el a kódot, aki írta, ezért kell keresztbe review-zni, illetve objektív formai kritériumokat megállapítani.
- A hozzászóláshoz be kell jelentkezni
"Szerintem meg nem szabad, hogy külön role legyen, mert annak az lesz az eredménye, hogy a normál fejlesztők továbbra is ontják magukból a szar kódot, a takarítók pedig az alkohol felé fordulnak..."
+sok, azt a fejlesztot, aki kodminosegre specializalodik, inkabb konzultanskent kepzelnem el, aki egy ideig csatlakozik a csapathoz, megtanitja az embereket normalis kodot irni (pl. clean code, unit testing, egyeb best practice-ek).
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
--> YouTube csatornám
- A hozzászóláshoz be kell jelentkezni
Hát én sem úgy gondoltam, hogy szerencsétlen gyerek manuálisan javítson ki minden hibát. :)
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
"Szerintem meg nem szabad, hogy külön role legyen, mert annak az lesz az eredménye, hogy a normál fejlesztők továbbra is ontják magukból a szar kódot, a takarítók pedig az alkohol felé fordulnak..."
Forduljanak nyugodtan, csak ne vigyék túlzásba. :) http://xkcd.com/323/
- A hozzászóláshoz be kell jelentkezni
Elgondolkodnék azon, hogy ki az aki ezt firtatja és mi lehet ennek az oka?
Egyáltalán megéri-e őt tovább foglalkoztatni! :D
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox
- A hozzászóláshoz be kell jelentkezni
Kérdezésbűnt követett el, ezért azonnali pályaelhagyás a büntetése! :-)
- A hozzászóláshoz be kell jelentkezni
Mióta bevezettük, hogy minden kódot valakinek review-olni kell, nőtt a minőség.
Leszoktunk az egyszerű gyors és frappáns megoldásokról, helyette megírjuk érthetően és rendesen. Meg teszteljük is, mert úgyis repül a review-n ha nincsenek tesztek.
Többször szerettem volna már magamat agyonverni néhány kódom miatt (csak később jutott eszembe hogy én írtam), szóval azóta több türelem van bennem az emberekkel szemben. Nagyon sokat tud segíteni, ha olyan szabályokat alkalmaz a cég, amik a szar kód bejutásának valószínűségét drámaian lecsökkentik.
Csak azért még nem rakod be a kódot, mert sürget a határidő. Vagy rendesen megcsinálod, vagy sehogy. Szar kódot írni elméletileg kevesebb idő, viszont gyakorlatban a karbantartás többe kerül. Egyszer rendesen, érthetően meg kell írni, ez addig tart, ameddig. Nem kellenek ügyes kis megoldások, amiről 1 év múlva már senki sem tudja, hogy mi a frászkarikát csinál és miért.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ez most kőbe kéne vésni és nem csak a programozóknak odaadni, hanem mindenkinek aki olyat csinál amit "munkának" nevez.
- A hozzászóláshoz be kell jelentkezni
+1 :)
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
A többiek fizetéséből le lehet vonni pont annyit? :)
- A hozzászóláshoz be kell jelentkezni
Ez nagyon rossz ötlet. A kódminőségjavító ember elveszti a kapcsolatot a valódi világ valós igényeivel, és elkezd nagyon szép légvárakat összehozni. Továbbá ahogy már előttem is mondták: ez nem egy ember felelőssége, hanem a csapaté. Az jó, ha felismeritek a problémát, hogy valamit kéne kezdeni a kódbázissal, de hogy erre egy dedikált ember legyen, az csak egyemberes projektekben működhet.
Vagy mi az elképzelés egyáltalán? Van 4 fejlesztő, akikből 3 írja az új feature-öket, 1 meg takarít utánuk? Két nyugdíjas role lesz ebből. Aztán leválik mégegy fejlesztő, aki meg csak automatizált teszteket ír? És ha elmegy 3 hét szabadságra a kódminőségjavító kolléga, akkor összecsapnak a hullámok?
- A hozzászóláshoz be kell jelentkezni
Főleg, hogyha belegondolunk, hogy csak azért lenne annak az egynek munkája, mert a másik három szarul dolgozik :D
- A hozzászóláshoz be kell jelentkezni
Vigyázz, ez fordítva is igaz: az az ügyfél, akinek a légbőlkapott igényei maradéktalanul teljesítve vannak, további légbőlkapott igényekkel fog jönni, és egyszer a lufi kipukkad, a kártyavár összedől, és nem lesz orvos, aki az erszényes tűzköpő nyúlcápát megpatkolja. Ez pedig szolgáltatás kieséshez és pénzóceánok elúszásához vezet.
--
Where do you want to go today?
[nobody@salcay:~]$_
- A hozzászóláshoz be kell jelentkezni
Vannak problémás ügyfelek.
Cégen belül valaki kitalál valamit, az tovább adja másnak, az meg egy harmadiknak, aki már nem ért semmit az egészből, a tudása annyi, hogy megkérdezi, hogy mikorra lesz kész.
Konkrétan megtörtént:
- szállíts le egy kódot, ami összehasonlítja az XY rendszer kimenetét
- mivel hasonlítom össze?
- az XY rendszer kimenetét kell összehasonlítani. Mikorra lesz kész?
- még nem jutottam el odáig, hogy mit mivel kellene összehasonlítani
- jön a következő csávó, akinek megint financiája sincs a problémáról: mikorra lesz kész?
- még nem tudom, hogy mit mivel kellene összehasonlítani
- az XY rendszer logjait itt találod meg...
A projekt tele volt kreténekkel, senkinek a leghalványabb fogalma sem volt róla, hogy minek van ott, semmihez sem értett, csak addig jutott el, hogy határidő. Csinálja meg más helyette, ők semmihez sem értettek, a többi emberen akartak mindent bevasalni. Klasszikus példa, hogy ha fingod nincs semmiről rendezz hatalmas meeting-et és hívj meg még 50 embert, akinek szintén fingja nincs semmiről. És beszélgess a határidőről.
Te meg állsz és nézel, mint a moziban. Kód nincs, röpködnek az eszkalációk, menedszerek menedzserének a menedzserei kezdik a főnökömet piszkálni, hogy miattunk csúszik minden.
A főnök mondja:
- felesleges dumálni, tessék leszállítani, amit a megrendelő rendelt
- mivel hasonlítsam össze XY kimenetét?
- amivel jólesik. Mondjuk a felhasználó beküldhet egy CSV fájlt.
- legyen kész a meló, mert én belefáradtam, fizetnek, minket meg tovább nem érdekel a dolog
Kész is lett, leszállítottuk, menedzserek és almenedzserek, szárnysegédek örültek, minden rendben volt.
Kb. másfél év kellett, míg eljutottak odáig, hogy valami értelmes került a csapatba, aki rájött, hogy használhatatlan a kód és érdeklődni kezdett.
Viszont nem is tudták ránk verni a balhét, hogy miattunk csúszott a projekt. Ők fizettek, mi meg leszállítottuk. A menedzser menedzserének menedzsere meg a papíron behúzta az X-et. Nagyvállalati kultúra.
- A hozzászóláshoz be kell jelentkezni
Lol, kísértetiesen hasonlít a sztori a The Expert-re (youtube).
- A hozzászóláshoz be kell jelentkezni
Remélem, azóta már felmondtál ott.
- A hozzászóláshoz be kell jelentkezni
Erről beszélek.
Mondd, te nem egy olyan cégnek dolgozol, amelyiknek a nevében az S, a H, az I és a T van más sorrendben összerakva?
Én már dolgoztam nekik, tipikusan erről van szó.
--
Where do you want to go today?
[nobody@salcay:~]$_
- A hozzászóláshoz be kell jelentkezni
Ebben a sorrendben is stimmel :D
---------------------------------------------------
Hell is empty and all the devils are here.
-- Wm. Shakespeare, "The Tempest"
- A hozzászóláshoz be kell jelentkezni
Az egyik legjobban mukodo quality assurance, ha a kod megy a GitHubra public repoba :) Mar ha eppen olyan, hogy lehet. De az esetleg a projektnek irt komponensek mindenfelekeppen.
Amugy meg szigorunak kell lenni es megbeszelni, hogy melyik megoldas miert nem jo es addig nyomni amig kijavitasra nem kerul. Ehhez persze kell egyfajta erettseg is, hogy ne vegye senki szemelyeskedesnek a "kotekedest".
Erre kulon embert tartani oriasi hulyeseg. Kieg aztan elmegy.
- A hozzászóláshoz be kell jelentkezni
Mindenki egyformán jó minőségű kódot ír, ennyi. Az már régen rossz, ha erre külön ember kellene, de az is gáz, ha akár csak egy ember rossz kódot ír.
- A hozzászóláshoz be kell jelentkezni
.
- A hozzászóláshoz be kell jelentkezni
Szerintem ha valaki csak kódminőséget javít, akkor valszeg ez a mániája, különben önszámtából foglalkozna mással is néha. Az ilyen emberektől meg nem biztos, h javul a kód, inkább csak az ő szájíze szerintire változik.
Úgyhogy kirúgnám. :)
- A hozzászóláshoz be kell jelentkezni
Meg egy tokeletes kodon minek is javitani ugye.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
Hozzad se megyek dolgozni akkor :)
Viccet felreteve, ha a sajat szajiz tenyeken alapul, akkor nincs gond vele. Ha csak "mert en igy szeretem", ugy igazad van.
Pl. nekem nagyon sok gondom van a stateful kodbazis megertesevel, mert a memoriam annyira nem jo, hogy mindent fejben tartsak, en jobb szeretem, ha a kod beszedes, olvashato es bejarhato, megismerheto. Nem akarom megjegyezni, hogy 20 package-dzsel arrebb mi settel be mit, es milyen logika alapjan azon az osztalyon, amit epp hasznalnek, majd utana fel evig fejben tartani. Ezert en tolnam a stateless es funkcionalis paradigmakra epulo fejlesztest. Nyilvan ez a sajat szajizem, de szerintem a tobbieknek is jobban atlathato lenne a kod, a fentebb elmondottak miatt.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Amíg a szépítés nem akadályozza a fejlesztést, addig akár hasznos is lehet. Viszont, ha valaki például szabadidejében elkezdi refaktorálni a kódot, amin közben munkaidőben dolgoznak, akkor jelentős plusz fejfájást tud okozni a feature fejesztőknek, mert állandóan variálja alattuk a kódot és így gyakorlatilag minden nap fele arra tud elmenni, hogy az előző éjjeli módosításokhoz adaptálják a saját módosításaikat, mivel persze képtelenség a verziókövető rendszer követni, ha mindennek más a neve és máshová kerül minden éjjel :D
- A hozzászóláshoz be kell jelentkezni
Tl;dr: akkor lesz kódminőség, ha egyszer kőbe vésődik majd a szakma az alkalmazott módszereket illetően azzal lesz egy egységes kritériumrendszer, ami be van hajtatva a fejlesztőkön. És aki ezt nem képes megugrani, az nem fog a szakmában dolgozni.
Addig ameddig a kódminőség sokszor valakinek a szájízét és nem valami egzakt szabályrendszert és mérőszámot jelent vicc az egész téma.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
1. Baromira idegörlő hosszú távon másnak a szarját takarítani. Bármiben, nem csak programozásban.
2. Azt büntetném, aki a szart előállítja (a normál programozó 10Ft, a szart előállító 7Ft, a takarító meg 13Ft). Nyilván nem arról van szó, hogy egyszer-kétszer gyorsan kell, mert akkor nem is kéne tisztításra ember. Arról, amikor valaki állandóan ilyet produkál.
3. A mai rettentő komplex rendszereknél, programoknál baromi fontos a jó minőségű kód, mert másképp borzasztó debuggolni, hibát keresni és javítani.
4. Pont a komplexitás miatt nem lehet egyetlen emberre bízni a kódot. Ahhoz meg hogy más is átlássa, jónak kell lennie.
--
"Sose a gép a hülye."
- A hozzászóláshoz be kell jelentkezni
Büntetnéd aki szart állít elő...
Nem találnak a cégek képzett munkaerőt, ezért kénytelenek felvenni alulképzett, a szakma iránt nem érdeklődő embereket.
Ezek az emberek ha 2x annyi időt kapnak a munkára, akkor sem tudnak sokkal jobbat csinálni. És ez kb minden szakmára igaz.
... kirúgni nem nagyon lehet őket, mert nincs jobb helyettük.
- A hozzászóláshoz be kell jelentkezni
Ahogy a piac diktalja
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Azzal lehet még fűszerezni a témát, hogy amikor már szépen meg van tisztítva a kód, és kitalálják, hogy változtatni kell a progi valamely funkcióján ( új verzió, új ötlet, stb...). Ugy 2 lehetőség van:
1.
- a tisztított kódot adjuk a programozónak módosításra. ( ilyenkor előfordulhat, hogy a programozó azt mondja, hogy "mijez?" )
- módosítás után ismét kódtisztítás ( ha csak néhány függvényről/objektumról van szó, akkor így hamar megvan ez a munka )
2.
- a programozó folytatja azt a kódot, amit eredetileg ő írt saját maga. (mert ismeri, mert átlátja, ígyhát jobban megy a munka, hamarabb, jobb eredmény)
- vissza a kódtisztítóhoz ( "óóó, hát a fele majdnem ugyanaz, mint a multkor!")
-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba
- A hozzászóláshoz be kell jelentkezni
Én alapvetően arra hajlok, hogy legyenek dedikált feature időszakok és dedikált refactor időszakok a fejlesztés során.
Ha feature fejlesztésnél vagy prototípus gyártásnál azzal törődsz, hogy feleljen meg mindenféle clean coding szabályoknak a létrejövő kód, akkor egy csomó időt elvesztesz azzal, hogy a kidobandó kódot polírozod, amikor elég lenne a nagyját lereszelni az illesztési hézagoknak, mert a stackoverflow válaszban a kód nem illeszkedik pontosan. :)
Ugyanakkor odafigyelve is lesznek olyan változások a kódban, amelyek könyörögnek egy mélyebb refactor munka után, ezeket is meg kell csinálni időnként. Néha át kell nevezni, össze kell vonni, szét kell választani mezőket, osztályokat, metódusokat... és ezeket akkor lehet csinálni, amikor nincs feature fejlesztés tegnapi határidővel.
- A hozzászóláshoz be kell jelentkezni
Kb. ezt vallom avval a kiegészítéssel, hogy a prototípus egy külön, nem production mappába menjen, mindenféle korlátozás nélkül. Production mappába pedig csak tiszta kód mehet be, code review, tesztek, stb. Ha productionbe engedsz szar kódot, az már gáz. Így viszont ez nem fordulhat elő.
- A hozzászóláshoz be kell jelentkezni
Néha kell prod szintre is gányt engedni, mert megtérül... szoktam mondani, hogy ha egy feature hoz két üzemeltetőnyi pénzt, cserébe elvisz egy üzemeltetőt az életben tartása, akkor ki fog menni élesbe, mert megtérül. Csak legyen mellétéve refactor ciklus, amikor stabilizálni lehet a kódot. Ha ez utóbbi nincs, az a szívás.
- A hozzászóláshoz be kell jelentkezni
Viszont utólag production kódot refaktorálni is elég szívás tud lenni.
- A hozzászóláshoz be kell jelentkezni
Itt visszaköszön a unit teszt vs kódjavítás problémája.
Ha nincs idő mind a kettőre, akkor melyik is a jobb választás.
Illetve az ebből fakadó másik probléma:
1) ha van unit teszt, akkor könnyebb refaktorálni
vs
2) ha jó minőségű a kód, akkor könnyebb, kevesebb idő unit tesztet írni, illetve kevesebbszer kell.
- A hozzászóláshoz be kell jelentkezni
Ha hozza a pénzt, akkor senkit nem kellene érdekeljen, mert fognak jönni további üzleti igények, amelyek hátán kell legyen idő és pénz arra, hogy refaktoráljunk. Abból van gond, ha egy üzleti igény nem hozza a pénzt, de belső hatalmi játszmák miatt van csak határideje és amint kiment, marad úgy, ahogy kiment. Na, ilyenből sokkal többet láttam, mint abból, amelyik hozza a pénzt.
- A hozzászóláshoz be kell jelentkezni
Pénzügyben dolgozom, nehéz megmondani, hogy mi hozza a pénzt, mi viszi.
A szar kód általában viszi. A nagy pénzek eldugott részek apró bugjaiban úsznak el.
Amit 10.000-szer használnak, az stabil. Amit évente 1-szer, az kevésbé, viszont talicskázni lehet vele a pénzt a kukába.
Amit sűrűn használnak, nem feltétlen jelent nagy zsetont is, kis bugon is repülhet rózsadombi villa a levesbe.
- A hozzászóláshoz be kell jelentkezni
Mérhető, hogy mi hozza és mi viszi a pénzt. Mondjuk ritkán van korszakalkotó ötletük, ahol számít a leszállítás ideje, de néha előfordul, hogy az viszi a piac egy szegmensét, amelyik előbb tud piacra lépni. Az, hogy sok helyen egymás másoló balfaszok vannak csak a pénzügyi szektorban, az nem befolyásolja ezt.
- A hozzászóláshoz be kell jelentkezni
Igen, gyorsabbnak kell lenni a konkurenciánál, ezzel megnyered az új ügyfeleket.
Ha viszont a régiek elmennek, akkor simán negatívba csúszhatsz.
Ha veszel egy ABC bankot, annak az az érdeke, hogy a jól fizetős, sokat kereső ügyfeleket megszerezze, mert azon van a nagy haszon.
Viszont ha elveszti a nyugdíjasokat (sok kevés haszonnal), nem fog pozitívan kijönni a buliból. A torony eldől, ha nem elég stabilak az alapok. Az alapozás meg nem ingyér van.
- A hozzászóláshoz be kell jelentkezni
Általánosságban így van, de se általánosságban, se a konkrét esetben nem a Te dolgod megmondani, hogy egy feature vagy bugfix milyen minőségben készüljön el és mikor menjen élesbe. A Te feladatod az, hogy meghatározd a feature vagy bugfix kockázatát, hogy ha az üzlet dönteni akar, akkor legyen elegendő információja. És majd az üzlet dönt a kockázatok és mellékhatások ismeretében. Néha úgy dönt, hogy nem megy ki akkor se, ha teljesen készen van és biztonságos... néha úgy dönt, hogy akkor is kimegy, ha a fél IT támasztja hátulról a díszleteket, mert még úgy is megéri. Néha balfaszok, néha nem. Utólag derül ki.
- A hozzászóláshoz be kell jelentkezni
Igen, de az a helyzet, hogy ha egyszer üzleti okok miatt beraktad a szemetet, az nagy valószínűséggel 5 év múlva is ott lesz.
Legalábbis még nem volt olyan tapasztalatom, hogy most gyorsan szarul megcsináljuk valamit, utána alaposan kitesztelve javítsuk. Nem jellemző. Ha már egyszer kinn van a szar és úgy ahogy megy, onnantól már az "inkább ne piszkáld" elv válik fontossá.
Szépen lassan átalakul a fejlesztési modell is:
- gyorsan lapátoljuk kifelé a szart, minden azonnal megvalósul
- a karbantartásra meg lehetőleg semmit se áldozzunk, ha nem megy, módosítasz 2 három sort, azt szevasz
Ez a modell a kényelmes, ami végeredményként hulladékgyártást eredményez. Minden azonnal kell, a karbantartásra semmit nem akarunk áldozni.
Egyre költségesebbé válik a fejlesztés, egyre több részt kell alapjairól újraírni, egyre kevésbé tudsz a support miatt haladni, az emberek demotiválttá válnak és lelépnek, szépen lassan meg elvesztesz mindent, ami versenyelőnyöd volt. Ezután eljutsz odáig, hogy talán nem akarsz mindent azonnal kitenni, mert nem bírod elviselni a környezetszennyezést, amit a fejlesztési modell eredményez.
- A hozzászóláshoz be kell jelentkezni
<3
- A hozzászóláshoz be kell jelentkezni
"...az emberek demotiválttá válnak és lelépnek..."
Az meg a jobbik eset. Rosszabbik esetben teljes kieges, depresszioval karoltve.
- A hozzászóláshoz be kell jelentkezni
"Legalábbis még nem volt olyan tapasztalatom, hogy most gyorsan szarul megcsináljuk valamit, utána alaposan kitesztelve javítsuk. Nem jellemző."
Ez is egy kockázat, amit mindig mondani kell. És ha ez miatt volt bármilyen probléma, akkor is azonnal kommunikálni kell. A kommunikáción és az együttműködésen múlik minden...
...és azon, hogy ne akard a hátadon vinni a céget, ha nem vagy részvényes. Ha folyton azért sírsz, mert nincs elegendő erőforrás, ugyanakkor minden határidőre elkészül, mert mindenki megkettőzött erővel dolgozik és megoldja okosban, akkor hiteltelen a sírás. Nincs pénz rendes mentésre? Akkor nem csinálunk fusiban desktop gépekre mentést a szerverekről. Megdöglött és nem volt mentés? Hát... én szóltam, nem?
VSP és MVP... :)
Védd a Segged Papírral: mindenről legyen írás.
MásValaki Problémája: mindig dobd tovább a forró krumplit.
- A hozzászóláshoz be kell jelentkezni
Kerdes, hogy melyikkel csinalsz magadnak dupla munkat. Mert a vegen ugyis neked kell rendbehozni, hiaba volt papir.
- A hozzászóláshoz be kell jelentkezni
"Nincs rá pénz? Megoldjuk okosba, főnök. Nem kell aggódni." - hát, de, sőt. Alapvetően ezzel a gondolkodásmóddal teremted meg magadnak és magad körül a pluszmunkát és az extra szopásokat.
- A hozzászóláshoz be kell jelentkezni
Ha asz'ondja a főnök, hogy csinálj mentést, de szarul, akkor nem biztos, hogy örül neki, ha nemet mondasz. Szerencsére munkaerőhiány van az IT-ban, és az ilyen helyről gyorsan dobbantani kellene. De amíg nem terjed el ez a mentalitás, addig lesznek hülye vezetők, hülye utasításokkal, és dolgozók, akik meg is csinálják ezeket. Amúgy meg jobb helyeken is vannak gondok, és ha valaki tényleg MVP szinten oldja meg a problémákat, az hamar az utcán találja magát.
- A hozzászóláshoz be kell jelentkezni
"Ha asz'ondja a főnök, hogy csinálj mentést, de szarul, akkor nem biztos, hogy örül neki, ha nemet mondasz."
Háde, baszki.
Üzletnek gond nélkül azt mondod, hogy a világ minden pénzéért nem tesszük ki az új fejlesztést, hozzon akármennyi pénzt, mert most még nincs olyan állapotban, majd ha tökéletes lesz, gyertek vissza két hónap múlva, ugyan akkor se lesz kész, de már többet tudunk, hogy kész lesz-e egyáltalán.
Ugyanakkor meg féltjük a munkahelyünket a morcos főnökkel szemben, ezért aztán magunkat szopatjuk azzal, hogy minden szart körbeácsolunk és kifelé azt mutatjuk, hogy minden a legnagyobb rendben van, a disznó tizennégyet fialt.
Nincs itt egy pici kis ellentmondás? :)
"Amúgy meg jobb helyeken is vannak gondok, és ha valaki tényleg MVP szinten oldja meg a problémákat, az hamar az utcán találja magát."
Az MVP alapvetően azt jelenti, hogy ne vállalj magadra olyan munkát, ami tulajdonképpen nem a Te feladatod. Nem csinálunk mentéseket a szerverekről az asztali gépekre, mert ott van hely vagy egyáltalán nincs backup megoldás, hanem
1, VSP: főnök, nincs elég hely a mentésre
2, MVP: főnök, venni kellene egy backup megoldás, mert nagy szopás lesz.
És addig eszkalálni, amíg valaki azt nem mondja, hogy akkor nem lesz mentés. Aztán ha tényleg szopás van, akkor ez a valaki majd felvállalja. Ha ehelyett kuss van és asztali gépekre megy a mentés, akkor sose lesz több hely vagy backup megoldás. Szóval szólni kell (VSP) és eszkalálni (MVP).
- A hozzászóláshoz be kell jelentkezni
Aztán jön a gazdasági racionalizálás meg a határidő és az egyébként majdnem teljesen jogos kérdés, hogy "oké, de ez ott már működik, nem lehetne csak szimplán átemelni?"
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni