Van egy PHP feladat, amelyet egy cégtől kaptam, és hát, pofára estem. Mi lehetett a probléma?
A feladat lényege, hogy meglévő PHP kódot (CLI) kellett refaktorálni, bizonyos szabályokkal. A refaktorálást megcsináltam, repetitív kódot traitbe tettem (külön namspace-be), logikusan elkülönülő, osztályban lévő kódot külön osztályba raktam stb. A cég közölte, hogy a megoldásom nem jó, mert "nincsenek meg a minimum elvárt minták, technikák". Mik PHP-ben a
"minimum elvárt technikák" pl.? A kód egy PHP osztályt tartalmaz, több metódussal és jó pár try-catch blokkal. Minden elméletileg felmerülő módon átalakítottam, egyszerűsítettem, és a kód rövidebb, szervezettebb lett. A feladatkiírásban említették, hogy a script által kiírt üzenetek átalakíthatók, rövidíthetők. Ezekhez lényegében nem nyúltam, mert az üzenetek értelmesek voltak, semmi értelme nem lett volna kicserélni őket egy másik megfogalmazásra. A kódom helyesen lefutott a refaktorálás után, és egyszerűen nem értem mi a fenére gondolhattak. A probléma abban is áll, programozói ízlés és bevett személyes gyakorlat szerint elkülönülően, számos jó megoldás is lehetséges volt szerintem. Tehát a feladat nem volt teljesen egyértelmű és egzakt. Persze, ezt csak én gondolom, lehet, hogy ők teljesen másképp gondolják, de nagyon zavar ez az egész, és baromi jó volna tudni mi a fenét várhattak el. Véleményem szerint lényegi hibát nem vétettem (nem is nagyon lehetett egyébként, ha valaki alapszinten PHP-ben programoz) de magyarázatot a fenti, általános megfogalmazáson kívül az elutasításra nem kaptam. Valaki esteleg tudna nekem egy pár gondolattal segíteni, hogy ő általában milyen refaktorálási, kódszervezési elveket használ hasonló esetben?
Patternek alatt pl. factory-t, consumert, stb értik gondolom, kód nélkül max tippelni lehet, hogy kellett volna
Stringeket csak visszaadja a fv ott helyben? Ha igen, akkor itt lehetett volna kiszervezni, hogy más nyelvre is lehessen később fordítani az üzeneteket
Try-catch hibakezelésnél lekezeltél minden hibát? Lehet nem szeretik a try-catchet, és azt kellett volna átalakítani (de akkor erről szólni kellett volna előre)
Konkrétumok nélkül csak találgatni lehet. De általában a cégeknek szoktak lenni irányelveik, amikhez igazodni kell kódiráskor, amiben pl. leírják, hogy a tab az 2 vagy 4 space legyen, gondolom ilyet nem kaptál
"Lehet, hogy ez volt a probléma?"
Mit nem fogsz fel azon, hogy a kódod nélkül tippelni is felesleges?
jaja, értem hogy ezer dolgot el lehet mondani általánosságban, de jobb lenne, ha specifikusan a te problémáidat oldhatnánk meg. Azt gondolná az ember, hogy neked is ez lenne a fontosabb.
Adsz kódot vagy nem?
Jó lenne egy refactor előtti és egy refactor utáni állapot. Mondjuk egy git repó, vagy valami.
"Konkrét irányelvet sem adtak, ami aggályos, mert ha vannak nekik, én honnan tudhattam volna."
Mielőtt nekiállunk ész nélkül refaktorálni azért érdemes tisztázni az elvárásokat és az irányelveket. Most megkaptad a kódot hogy refaktoráld te meg annyit sem kérdeztél meg, hogy mégis mi alapján / mi célból stb...? Nekiestél refaktorálni a saját elképzelésed alapján? Hát nem csodálom, hogy nem tetszett a megoldásod... Ilyenkor először a tervezés fázis kezdődik meg, majd a konkrét tervet megmutatod, hogy nekik tetszik-e vagy valamit másképp gondoltak. Amikor rábólintanak, hogy Ok akkor kezded a munkát és közben dokumentálod magadnak, hogy mi hogyan valósult meg az eredeti tervből...
"Adok kódot, de meg kell, hogy bízzak benned. Nem szabad tovább adni a kódot, mert egy nagy cégről van szó, és ha kiderül be is perelhetnek akár. HA azt mondod nem adod tovább, akkor odaadom"
Egyébiránt anoním fórumon csak úgy bizalmi alapon kiadni a kódokat anoním embereknek szintén nem túl szerencsés dolog, amiből meg is ütheted a bokádat.
Mindenesetre a megnyilvánulásaid alapján nem vagy a legélesebb kés a fiókban fiam.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!