fejlesztés - 2024 február - 26 megfelelő bejegyzés

Mutass mindent

Jelöld be, hogy főbb mely kategóriákat akarod olvasni, vagy ha csak egyet: kattints a nevére.


Haszprus

Redirects++

©   Haszprus   |   blog fejlesztés seo

Csak csendben elég brutál képessége lett az archívumnak. Mondjuk nem csoda, beletoltam pár nap fejlesztést. Gyakorlatilag akárhova lehet kattintgatni és mindenre jön elő értelmes kontent. Nincs üres oldal. És nem duplicate content, hanem szépen egy rakat redirekt/logika.

Miért: seo miatt. Brutális mennyiségű nemlétező (tartalomtalan) oldalt indexelnek a blogon. Ezt igyekeztem megszűntetni, megtartva az archívum elég combos funkcionalitását.

Mint a képen látjuk, a társszerzők is bekerültek a logóba

Haszprus

Vaffankulo

©   Haszprus   |   blog fejlesztés php

Baszki kikapcsolt a gepem, a legizgalmasabb resznel. Visszakapcsolom.

23:09

Végre zöld a phpstan, el se hiszem, persze új baseline fájllal nyilván csak zöld lehet, ez némileg levon belőle.

A mai nap kiemelt kommitja: render templates with reflection. Yeah.

Haszprus

PHPStan baseline -20%

©   Haszprus   |   fejlesztés php

Feb 6 óta 21%-kal kisebb lett a phpstan-baseline.neon fájl, ami a(z amúgy 7-es levelre állított) phpstan baseline fájlja.

(Mi az a baseline? Ez sorolja a projektben található hmm szabálysértéseket/hinteket.)

Good.

Haszprus

Linkbár 404 byby

©   Haszprus   |   fejlesztés life seo

Fuh kiganéztam a linkbárt a kis kezemmel. Írtam ugyan egy toolt ami rendszeresen fel fogja annotálni a halottgyanús linkeket, de nem 100% megbízható h egy oldal vajon tényleg nem létezik-e. Unfortunately.

Mindegy, dobtam a lejárt linkeket, ez is rontotta a seo-t.

Ja így is maradhattak még, főleg azokat néztem meg amik halottgyanúsnak voltak jelölve

Ain't Nobody Got Time Fo' Dat

Haszprus

A terrible decision

©   Haszprus   |   blog fejlesztés google seo

Ez a teljesen custom szűrhető archívum egy viszonylag bonyi de kurvajó feature.

Egész addig, amíg nem gondolsz bele, hogy a keresőbotok (hello SEO) mit kezdenek vele.

Szerencsétlen bot idejön, és azt találja, hogy millió féle archívum oldal elérhető, a fele duplicate kontent, a fele üres. Emberi user szerintem könnyen átlátja hogy mire érdemes szűkíteni, de a logból tűnt fel hogy értelmetlen oldalakat indexelnek ezerrel a botok. Ideiglenesen kikapcsoltam pár dolgot szegények miatt. Hamarosan érkezik egy jobb megoldás. (Amin még kénytelen vagyok gondolkodni előtte )

Haszprus

JS Days

©   Haszprus   |   fejlesztés javascript

Lesz ma egy javascript conf, illetve 3 napos. Kíváncsi vagyok.

feb. 22. 13:12 hát, a day 1-2 nem mondhatnám h lekötött, a day 2-t már teljesen háttérben néztem, még ma benézek talán a day3-re, de sok elvárásom már nincs, valszeg fejleszteni fogok közben.

feb. 22. 17:06 vállalhatatlan volt, kilőttem.

Haszprus

Automata refaktor #2

©   Haszprus   |   fejlesztés php phpstorm

Muszáj vagyok tovább menni az automata refaktorálás "csapdáin".

Valamiért a PHPStorm is nagyon kínálgatja hogy egy függvényből való visszatérés előtt az utolsó változót inline-oljam, és a Rector is simán automatán kiirtja a fölöslegesnek vélt utolsó változókat return előtt, tehát:

$x = something(..);
return $x;

Helyett használjam ezt:

return something(...);

De vaffankúló (amúgy ezt nem szoktam használni, de ide illik), komolyan, miért?! Mi ez a trend? Rájöttünk ezer éve, hogy a függvénynevek és változónevek ugye milyen fontosak hogy jól legyenek elnevezve, erre jön valaki (egy egész trend), és azt mondja, hogy szerinte spóroljunk meg egy változónevet.

Ami azt jelenti, hogy elveszítesz egy tök fontos információt, hogy mi történt az utolsó lépésben.

Csak a példa kedvéért:

function foo($pattern) {
  // ... some other logic here ...
  return preg_replace('{^(([^.+*?\[^\]$(){}=!<>|:\\\\#-]+|\\\\[.+*?\[^\]$(){}=!<>|:#-])*).*}', '$1', $pattern);
}

A fenti kódot a Composer Autoloaderéből szedtem, szóval teljesen real world, és biztosan nem a saját hülyeségem (ott fel van kommentezve* amúgy, és nem ennyiből áll a függvény, de ettől még tök jó példa). Tegye fel a kezét, aki szerint tök fasza, ha nincs elnevezve, hogy mit is kapunk ebből a preg_replace-ből. :Đ

* arról nem is beszéltem h van aki szerint a kommentek is hülyeségek :D Egy időben amúgy totál ezt vallottam én is, most szopok rendesen ahogy refaktorálom a blogot :D Kommentezek "mindent". (És nem azért mert nem használtam jó változóneveket/függvényneveket.)

Haszprus

Azért óvatosan az automata refaktor toolokkal

©   Haszprus   |   fejlesztés php

Most hogy csak egy példát mondjak a Rectorból, de eddig amúgy 6 konkrét rule-t tiltottam le belőle és 2 setet egyszerűen használhatatlannak ítéltem (a DEAD_CODE-ot és a CODE_QUALITY-t)

Legyen két példa:

settype($x["hello"], "string");

Szerinte lecserélhető erre (le is cseréli szorgalmasan):

$x["hello"] = (string)$x["hello"];

Ez tökjó de ugye undefined index error kapásból ha az adott index nem létezik, és azért idegesít ez engem, mert sztem tök nyilvánvaló, szóval nem értem hogy hogy hozhatnak létre ilyen rule-t.

Másik:

private static foo($unusedVariable) { // some code that doesn't use $unusedVariable }

Szerinte lecserélhető arra hogy

private static foo() { // some code }

Ezt bőszen meg is teszi. Oké. És mi van azokkal a függvényhívásokkal, amik átadják ezt a változót? Azokhoz nem nyúl hozzá. ¯_ (ツ) _ / ¯ Gyanítom akkor se, ha mondjuk nem az utolsó hanem egy közbülső unused variable-t töröl ki a függvény szignatúrájából. Ami ugye nyilvánvalóan konkrét bugot eredményez, hiszen elcsúszik a paraméterátadás.

Igazából végül annyi ilyen szart kellett letiltanom hogy nem maradt javaslata a kódra nézve Eh. Na majd futok vele talán még köröket.

Haszprus

React Native

©   Haszprus   |   android fejlesztés react

Egyébként React Native-vel szórakoztam ma egy kicsit.

Kellemes. Korábban Reactoztam (Reacteztem) már, úgyhogy ez a rész sok újdonságot nem hozott. A JSX-et asszem kifejezetten szeretem. Pár óra alatt sikerült összerakni egy gagyi kis mobil appot úgy, hogy korábban mobilfejlesztéssel viszont nem foglalkoztam (igazából elvből távol akartam tartani magam ettől a témától, mondván hogy úgyse lehet mindenhez érteni).

Na jó, hétvégén kipróbáltam az Android Studiót is Kotlinnal, 40 percben. Ott egy Hello Worldig jutottam, utána kilőtte a gépemet az ütemezett gépkilövő, amit múlt héten üzemeltem be újra az addikció uralása végett.

Mostanság eléggé rákattantam a fejlesztéssel kapcsolatos ismereteim aktív szélesítésére.

Haszprus

WebP

©   Haszprus   |   coreconsult fejlesztés

Esettanulmány.

www.coreconsult.hu logó (képfájl)(ld. korábbi bejegyzésemben vagy a site-on)

IRCQuote fight! In the ring:

PNG WebP
Fájlméret 200 KB 14 KB

A többi képet is megpróbáltam átkonvertálni, 1-2 kivétellel 100%-os minőséget választva is komoly látványos veszteséget szenvedtek, úgyhogy javarészt meghagytam jpg/png-ben. De a logó mondjuk pont nem, big win.

Haszprus

A bit more responsive

©   Haszprus   |   blog english fejlesztés

Gallery got better a bit on mobile. Planning to improve further. It doesn't handle touch gestures yet. I start to feel like I should continue developing this site every year at least a bit. It's still fun as a hobby project.

Haszprus

Monster deploy

©   Haszprus   |   blog fejlesztés

Feltoltam 120 módosított fájlt, kíváncsi vagyok mi tört el. Remélem semmi. (Ez vajon mennyire életszerű?)

Volt egy kis refaktor, fixing, etc.

Ha látsz vmi problémát, kifejezetten örülnék, ha szólnál, thx.

Haszprus

Lehet regisztrálni

©   Haszprus   |   blog fejlesztés

Mint kiderült, többek között el volt törve a blogon a regisztráció. Oops.

Ciki vagy sem, ha esetleg akarsz regelni, most már tudsz. Azt hittem egy ideje senki se akar. Persze ettől még lehet h senki se akar.

Meg még egy pár egyéb dolog is el volt törve, javítás folyamatban...

Ps. A Playwright tests for the blog c. bejegyzéshez egy automata fazon kommentálgatja a git commitok szövegeit. Majd lehet h változtatok rajta, mert kicsit spam jellegű.

Haszprus

Playwright tests for the blog

©   Haszprus   |   blog fejlesztés php

Na ha már törünk mindent, akkor legyenek end-to-end / UI tesztek. Az utóbbi években történt a szerveren egy PHP verziófrissítés, aminek a változásait csak ímmel-ámmal követtem le (nem volt fókuszban a blog, de ezt nyilván észlelték akik követnek valamennyire). Most ránéztem újra alaposabban a site-ra, mert növelni akartam kicsit a reszponzivitást, és rájöttem, hogy egy csomó feature el van törve, meg én is eltörtem ezt-azt miközben ezt lefejlesztettem. Meg arra is ráeszméltem így sok év szünet után, hogy atyaúristen mennyi minden funkciót csináltam itt Ami mókás és örömteli felismerés volt. Úgyhogy elkezdtem playwright teszteket írni. Még nincs sok, mivel tegnap álltam neki.

Egyelőre egy külön privát github repóba tettem, szépen CI-ban futtatva, kapok emailt ha hasal meg minden. Később valószínűleg jobb lenne beletenni a blog főrepójába.

Van pár known issue, és azokat már úgy akarom meghegeszteni, hogy teszt is legyen rá.

Hát, nemtom meddig lesz erre időm, de most épp van.