ugrás a tartalomhoz

Archívum

október 6, 2017

LSP és öröklődés

inf · 2017. Okt. 6. (P), 09.48
Olvasgatok a contract-ekről, és felvetődött bennem, hogy valami nem teljesen világos az LSP-vel kapcsolatban.

In, Out and Inheritance

If a function in a derived class overrides a function in its super class, then only one of the in contracts of the function and its base functions must be satisfied. Overriding functions then becomes a process of loosening the in contracts.

A function without an in contract means that any values of the function parameters are allowed. This implies that if any function in an inheritance hierarchy has no in contract, then in contracts on functions overriding it have no useful effect.

Conversely, all of the out contracts need to be satisfied, so overriding functions becomes a processes of tightening the out contracts.



https://dlang.org/spec/contracts.html

Liskov substitution principle[6]
“objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.”


https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)

Na most elvileg mindkettő azt mondja, hogy alosztály példánnyal helyettesíthető kell, hogy legyen az aktuális példány. Ahhoz viszont, hogy az alosztály példány is átmenjen minden teszten, amit az eredeti osztállyal szemben támasztottunk (feltéve, ha elég alaposan teszteljük), az kell, hogy meglévő metódust ne írjunk felül, hanem csak új metódusokat adjunk hozzá.

október 3

friendly url probléma

Termes · 2017. Okt. 3. (K), 13.06
Sziasztok.

Az alábbi funkcióval vannak gondjaim. Az ékezetes betűket ékezettelenítve adja vissza ( ez jó), kivéve a "ő" és "ű" betűket. Ezeket cseréli "-"-re.
Illetve az "&" karaktert kellene "es"-re cserélnie (ez nincs még benne).

public function seo_friendly_url($string){

	    $string = str_replace(array('[\', \']'), '', $string);
	    $string = preg_replace('/\[.*\]/U', '', $string);
	    $string = preg_replace('/&(amp;)?#?[a-z0-9]+;/i', '-', $string);
	    $string = htmlentities($string, ENT_COMPAT, 'utf-8');
	    $string = preg_replace('/&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);/i', '\\1', $string );
	    $string = preg_replace(array('/[^a-z0-9]/i', '/[-]+/') , '-', $string);
	    return strtolower(trim($string, '-'));
	}
Árvíztűrő & tükörfúrógép -> "arvizt-r-amp-tukorfurogep" az "arvizturo-es-tukorfurogep"
helyett.
Segítene valaki, hogy hogyan tudnám megoldani a problémát?

Köszi.
 

október 2

Programnyelv váltás

SnowFairy · 2017. Okt. 2. (H), 11.05
Sziasztok,
mi a véleményetek az alábbi témában:

Adott egy medior szintű fejlesztő, jelenleg egy cégnél dolgozik egy adott programnyelven ír alkalmazásokat. Eljutott egy pontig, ahol úgy érzi, hogy a jelenlegi helyen már nem tud tovább fejlődni. Elkezd gondolkodni a váltáson... szeretne egy új programnyelvet is elsajátítani, és olyan munkát találni.

Szerintetek mennyi esélye van egy új programnyelvet használó állást találnia, amiben nincs releváns tapasztalata?
(otthon azért tanulgatja, van néhány homemade projektje, de céges tapasztalata még nincs)

Szerintetek, ha egy adott programnyelven már elért egy szintet, akkor az új programnyelvű állásból csak a junior kategóriában van helye?

Mit gondoltok erről a témakörről, vagy ha van személyes tapasztalatotok, azt is osszátok meg. Köszi!
 

szeptember 28

Mennyitől ér pénzt a látogatószám?

Radon · 2017. Szep. 28. (Cs), 10.41
Egy érdeklődő bannert szeretne elhelyezni 1ik oldalamon, és kérdi a látogatószámot.
Mennyi látogató mennyit ér? Mondjuk a legdrágább fenti helyet nézve?
Mennyitől ér pénzt? napi 500?
Másik, ha eddig nem volt google analyticsem az oldalon, más eszközzel meg tudom-e nézni a napi látogatószámot?
Köszi.
 

szeptember 27

N számú ember N számú dolgának cserélgetése úgy, hogy a legtöbb csere jöhessen létre.

Zsozsoweb · 2017. Szep. 27. (Sze), 11.04
Sziasztok!
Van egy projektem. Gyakorlatilag a lényegi megvalósítás legelején elakadtam. :(
A feladat: vannak a usereink (N számú) nekik vannak cuccaik (N számú) és minden cucchoz tartozik minimum 1 cserecucc (N számú lehet) amire hajlandók cserélni.

Pl: Van Pisti neki van 1 almája amit körtére cserélne P C=alma CSC=Körte, Gézának van körtéje de, cseresznyére cserélné, G C=Körte CSC= cseresznye és van Lali akinek van cseresznyéje de, almát szeretne érte vagy körtét. L C=cseresznye CSC= alma || körte.

Itt ugye Lali cserélhetne Gézával, Lalinak lesz körtéje Gézának cserkója frankó de, mi van Pistivel?

Pisti cseréljen Gézával körtét almára majd az almát cserkóra Lacival. mindenki örül.

Ez így egyszerű de nagy számokkal, hogyan? Bocsánat ha nem elég érthető.

phpval szeretnék dolgozni ha van megoldás.
Köszönöm a figyelmeteket!
WZS
 

szeptember 22

Mit értett ez alatt Alan Kay?

inf · 2017. Szep. 22. (P), 14.15
Smalltalk is not only its syntax or the class library, it is not even about classes. I’m sorry that I long ago coined the term “objects” for this topic because it gets many people to focus on the lesser idea. The big idea is “messaging” … The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be. Think of the internet – to live, it (a) has to allow many different kinds of ideas and realizations that are beyond any single standard and (b) to allow varying degrees of safe interoperability between these ideas. If you focus on just messaging – and realize that a good metasystem can late bind the various 2nd level architectures used in objects – then much of the language-, UI-, and OS based discussions on this thread are really quite moot.


Egész pontosan a The big idea is “messaging” rész, az ami nagyon homályos. Próbáltam utánajárni, sokan kérdezték Alan Kay-t erről, de mindig ködösített, és sosem mutatott egyetlen példát sem, hogy szerinte hogyan kellene egy oo nyelvet helyesen használni. Van valakinek bármi ötlete?
 

szeptember 21

systemd

inf · 2017. Szep. 20. (Sze), 23.55
Olvasgattam az utóbbi napokban a disztrók legtöbbje által manapság használt init rendszer, a systemd körüli vitákról. Kíváncsi vagyok a véleményetekre, hogy szerintetek egy szerveren vagy desktop környezetben mennyire ajánlott a használata, esetleg rejt e valamilyen biztonsági kockázatot.
 

szeptember 17

Netacademia videok?

mahoo · 2017. Szep. 17. (V), 09.44
Van valakinek velemenye a Netacademia-s videok szakmai szinvonalarol?
Basic csomaggal szemezem, aminek ara, ha szinvonalas videokat kap az ember akkor csekely, ellenkezo esetben meg borsos.

Minden velemenyt szivesen fogadok!
 

szeptember 15

Tiszta kód

Hidvégi Gábor · 2017. Szep. 15. (P), 12.25
janoszen egy másik fórumszálban linkelte egy OOP példakódját egy kezdő kérdésére válaszolva, ehhez lennének kérdéseim és hozzáfűznivalóm, ezért kiemeltem egy külön témába.

A programból le lehet vonni azt a következtetést, hogy OOP-t ott lehet érdemes használni, ahol egy bizonyos funkciót legalább kétszer megvalósítunk, mert ad egy szabványos interface-t, amivel tudunk kommunikálni.

Viszont itt jön a kérdés, hogy hol találkozunk ilyen bonyolultságú projekttel? Hol van szükség arra, hogy ugyanolyan típusú adatokat (mondjuk blogbejegyzés) két vagy több különböző adatforrásból halásszunk össze?

Hol van szükség arra, hogy akár többféle router is lehet a rendszerben? Ha viszont csak egyet használ a projekt (márpedig a fenti blogmotorban csak egy van), akkor miért van általánosan megvalósítva? Hisz így egyrészt van egy minimális overhead, másrészt plusz munkával jár. De ki tudja, hogy mit hoz a jövő? Mi lesz, ha a mostani router interface nem megfelelő? Akkor lehet refaktorálni, azaz fölösleges melót tett bele az, aki a jelenlegit írta.

Felmerülhet az is, hogy miért keverednek a php és a sablon fájlok? Mi közük van egymáshoz? De ez apróság.

Kérdés, hogy tényleg olyan kivételes helyzet, ha olyan konfigurációs beállítást kérdezünk le, ami nem létezik? Ettől a program futásának meg kell állnia?

Kérdés, hogy miért van több kivétel definiálva, amikor nincsenek kifejtve, azaz a kódjuk megegyezik?

Kérdés, hogy a BlogPostInteractor miért példányosítja a kétféle lekérdezési módot? Mi van, ha egy adott oldalon csak az utolsó n darab bejegyzésre van szükségünk, de az egyes posztokra nem? Ez is egy apró overhead.

Kérdés, hogy ha a kivételek típusa (Exception) megjelenik a fájlnévben, akkor az interface-eké miért nem?

Kérdés, hogy kezdőknek ez alapján kéne elkezdenie programozni?

---

Értem én, hogy példakód, de azért ez egy kezdő számára ijesztő lehet.

szeptember 13

INNER JOIN probléma

Termes · 2017. Szep. 13. (Sze), 11.13
Sziasztok!

Új problémába ütköztem és ennek megoldásában kérnék segítséget.

Adott a lekérdezés, melyet össze kellene vetnem az egy évvel ezelőtti adatokkal és csak a közös elemeket listázni.

SELECT * FROM reszletek 
INNER JOIN tabla 
ON reszletek.id=tabla.id 
WHERE tabla.szolgalat = '2' 
AND reszletek.kesz = '1' 
AND reszletek.adatbazis = '6' 
AND reszletek.frissites_datum 
BETWEEN '2016-01-01' AND '2016-08-31' 
GROUP BY tabla.id

SELECT * FROM reszletek 
INNER JOIN tabla 
ON reszletek.id=tabla.id 
WHERE tabla.szolgalat = '2' 
AND reszletek.kesz = '1' 
AND reszletek.adatbazis = '6' 
AND reszletek.frissites_datum 
BETWEEN '2017-01-01' AND '2017-08-31' 
GROUP BY tabla.id
Ezt hogy lehet egy körben lekérdezni? Köszönöm.