Femeia. O perspectivă tehnică.

„Problema ta e că vrei să fii mai mult decât o femeie.”

Păi dată fiind problema, să vedem cum e cu demonstrația.

Iubitul meu Bărbat,

În spiritul pasiunii pe care o avem în comun, să începem cu o diagramă de clase.

Există o dezbatere în prezent despre cum e mai bine să-ți gândești o diagramă de clase: moștenire sau compoziție? Eu zic că în cazul celor două entități pe care le dezbatem astăzi, moștenirea este alegerea corectă.

Femeia si Bărbatul sunt două subclase concrete ale clasei abstracte Om. Omul definește toate caracteristicile esențiale și capacitățile unei persoane, doar că valorile sau implementările diferă între Bărbat și Femeie. A-ti dori timp, a avea hobby-uri, a simți nevoi – toate astea sunt niște metode definite abstract undeva în clasa părinte. 

Nu cred că există multe exemple de capacități pe care una dintre clase să le suprascrie aruncând cu aroganță vreun „UnsupportedOperationException”. Pentru cazurile acestea rare sunt de acord să folosim compoziția, dar între noi fie vorba, gândindu-ne la featurile unice ale unei femei care devine mamă, cred că tot Femeia deține avantajul numărului de metode implementate.

Ziceam că metodele sunt comune și moștenite, dar behind-the-scene cred că detaliile interne de implementare sunt cât se poate de diferite și de interesante! Nu am acces la codul sursă, dar din diverse teste de performanță și studii de caz aș paria ca toate colecțiile folosite de Femeie sunt concurente, în timp ce ale Bărbatului sunt sincronizate. Femeile reușesc să se descurce mai bine cu threaduri multiple si se aruncă cu entuziasm înainte când vine vorba de vreun fork-join, în timp ce Bărbatul preferă siguranța și ritmul unui lock bine plasat. Am intuit și implementări de Bărbat cu toate metodele statice si sincronizate, dar na, programatorii pot lua decizii ciudate câteodată. Gusturile nu se discută și se găsesc cu siguranță scenarii de aplicabilitate pentru fiecare implementare. Totuși, în privința performanței, există niște benchmarkuri clare legate de acest subiect. N-o să le aduc în discuție, cine știe cunoaște.

De ce-a ales Arhitectul să modeleze așa Bărbatul si Femeia, făcandu-i pe amândoi Om – e greu de spus și chiar irelevant de dezbătut. Cert e că, pe baza diagramei de clase, tot ceea ce o femeie poate fi mai mult decât femeie… e să fie Om. Iar a vrea să fii Om nu poate fi decât motiv de bucurie.

Q.e.d.

Cu drag, umor (sper) și ironie. Fină. Ca sarea din bucate. Bine, nu din ale mele. Eu prefer piperul.

Bibliografie:

– Traducerea poveștii de mai sus, pentru cei ce n-au desenat niciodată o diagramă de clase, în video-ul următor:

Un articol amuzant și non-tehnic despre cum e cu implementarea concurentă vs sincronizată la femei vs bărbați, aicihttp://www.forbes.com/sites/worldviews/2013/12/02/women-and-multitasking-asset-or-enemy/#4fbf3e7c5cc4 

Un gând despre “Femeia. O perspectivă tehnică.

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s