Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Transmite cineva in Romania?

TĂTUȚU...se intoarce!

Recomandare incarcator auto Iphone

Pentru cei care locuiesc in bloc ...
 Taiere ramuri "neroditoare...

Business/afacere cu utilaje

Genetica vs educatia vs cultura

Laptop Asus ROG Strix G15 cu pro...
 Recomandare Apartament

reparatie zgarietura bara spate

Lipire XPS de hidroizolație ...

Detectare dispozitiv de ascultare...
 suport/cutie fixare SSD in locul ...

Popcorn stradal

De ce ard asa de violent masinile...

Sfat achizitie bicicleta MTB
 

Framework or library ?

- - - - -
  • Please log in to reply
87 replies to this topic

#55
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,546
  • Înscris: 10.08.2005
perfect mai evanghelie, acum dezbatem framework-uri, nu paradigme

p.s. concern nu este problem  si nici issue - este o ingrijorare, sau un aspect ce nu trebuie trecut cu vederea.

ia un like ca-l dau gratis

Edited by MarianG, 26 March 2019 - 15:07.


#56
TruthHurts

TruthHurts

    Senior Member

  • Grup: Senior Members
  • Posts: 2,155
  • Înscris: 06.10.2018

View PostOriginalCopy, on 26 martie 2019 - 14:31, said:

Cross-cutting concerns e o stare, nu o tehnica. Pffff.
LOL, "expertule" Nu e nici tehnica, nu e nici "stare". E o "problema" sub forma de cod duplicat prin diverse parti ale unei aplicatii care nu priveste logica principala a aplicatiei, ci e mai degraba ceva mecanism utilitar(logging, tanzactii, poate securitate, din astea), si care nu e rezolvata in mod direct de paradigma oop... drept urmare au venit unii cu niste idei prin care se ataseaza ceva functionalitate unor bucati de cod(mai bine zis ceva manipulare dinamica de cod executabil) ... e bine de limitat la utilizarile bine documentate... sigur, au dezvoltat unii un carnatalau de teorii legate de aop, numai ca daca te afunzi prea mult in chestiune, in loc sa strangi rahatul, il dai prin ventilator... codul care se foloseste de astfel de mecanisme e mai greu de inteles si de debugguit...

#57
Jenkins

Jenkins

    New Member

  • Grup: Junior Members
  • Posts: 13
  • Înscris: 20.03.2019

View Postiulian_1976, on 19 martie 2019 - 20:44, said:

Unde ati invatat framework-uri la scoala sau...dupa? Eu incerc ...dupa nu am facut asa ceva in scoala.
Mai intelegi ceva? Nu iti face griji de AOP si alte asemenea. S-au spus multe lucruri gresite pe acest topic. Ceea ce trebuie sa stii e ca un framework bun ofera solutii la probleme care n-au legatura una cu alta (cross-cutting), iar un framework cu o arhitectura curata va implementa ortogonal acele solutii. De exemplu, nu va oferi o solutie pentru concern-ul GUI, putin amestecat cu putin din concern-ul networking, ci implementeaza "ortogonal" (conceptual vorbind) aceste solutii. Asta inseamna cross-cutting, si e esenta oricarui framework. MFC sau Java Collections Framework nu sunt frameworks tocmai pentru ca nu implementeaza astfel de mai multe concerns in maniera cross-cutting.

Cand te uiti la un framework (structura claselor/componentelor/concern-urilor) si analizezi cat de calitativ este, un aspect important e tocmai cat de ortogonale sunt conceptele/solutiile implementate. De ce? Deoarece mai multa ortogonalitate iti da tie, utilizatorul de framework, o libertate/flexibilitate mai mare.

AOP este opus unei astfel de arhitecturi curate, ortogonale. AOP este o carja, o metoda (puternica ce-i drept) de a forta componente sa se comporte ortogonal, desi respectivele componente nu sunt implementate ortogonal sau nu ofera suficienta flexibilitate. AOP nu este o metoda buna de a crea o arhitectura curata, din contra, e viermele din fruct. AOP este utila in situatii extreme, dar izolate, nicidecum ca fundatie pentru arhitectura intregii aplicatii.

Edited by Jenkins, 26 March 2019 - 15:30.


#58
TruthHurts

TruthHurts

    Senior Member

  • Grup: Senior Members
  • Posts: 2,155
  • Înscris: 06.10.2018

View PostJenkins, on 26 martie 2019 - 15:19, said:

Mai intelegi ceva? Nu iti face griji de AOP si alte asemenea. S-au spus multe lucruri gresite pe acest topic. Ceea ce trebuie sa stii e ca un framework bun ofera solutii la probleme care n-au legatura una cu alta (cross-cutting), iar un framework cu o arhitectura curata va implementa ortogonal acele solutii. De exemplu, nu va oferi o solutie pentru concern-ul GUI, putin amestecat cu putin din concern-ul networking, ci implementeaza "ortogonal" (conceptual vorbind) aceste solutii. Asta inseamna cross-cutting, si e esenta oricarui framework. MFC sau Java Collections Framework nu sunt frameworks tocmai pentru ca nu implementeaza astfel de mai multe concerns in maniera cross-cutting.
Iarasi trollezi cu pseudo-expertiza ta? (uneori ma intreb daca asta nu-i inca o clona a lui bravia care tolleaza la greu).

Ai putea sa incepi cu invatarea limbii engleze. "cross cutting" nu inseamna ca "n-au legatura una cu alta" , ci inseamna ca "ceva" trece prin mai multe alte "chestii" (in cazul de fata niste cod care ofera o anumita functionalitate si care se cam repeta prin diverse module). Cat despre pretentia ca un framework s-ar ocupa de izolat si unitar de catre o singura chestiune asa zis "ortogonala" e prostie inventat ad-hoc de tine. Pe logica asta spring nu ar mai fi framework pentru ca se ocupa de cam multe chestii. :lol:

#59
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostTruthHurts, on 26 martie 2019 - 15:36, said:

Iarasi trollezi cu pseudo-expertiza ta? (uneori ma intreb daca asta nu-i inca o clona a lui bravia care tolleaza la greu).

Ai putea sa incepi cu invatarea limbii engleze. "cross cutting" nu inseamna ca "n-au legatura una cu alta" , ci inseamna ca "ceva" trece prin mai multe alte "chestii" (in cazul de fata niste cod care ofera o anumita functionalitate si care se cam repeta prin diverse module). Cat despre pretentia ca un framework s-ar ocupa de izolat si unitar de catre o singura chestiune asa zis "ortogonala" e prostie inventat ad-hoc de tine. Pe logica asta spring nu ar mai fi framework pentru ca se ocupa de cam multe chestii. Posted Image
Spring este framework, pentru ca:

View PostJenkins, on 20 martie 2019 - 16:32, said:

E o explicație simplă, dar greșită. Un framework este o colecție de utilități (funcții, metode, clase) la fel ca o bibliotecă. La fel ca o bibliotecă, și un framework nu are un "entry point", o "funcție main". Dar un framework oferă soluții pentru cross-cutting concerns, în timp ce o bibliotecă nu oferă asta. Mai mult, un framework integrează într-un mod unitar aceste cross-cutting concerns, o bibliotecă nu.

De aceea jQuery nu e un framework, și MFC e aproape framework.

Iar WordPress nu e de niciunele, pentru că are un index.php.


#60
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
Notiunea de framework nu are nici o treaba cu problemele specifice pe care le rezolva, ci cu faptul ca iti ofera solutii pentru anumite probleme, intr-o anumita structura, prin mecanisme de dependency injection si overriding. N-are nici o treaba cu cross-cutting concerna sau cu AOP sau cu orice alt rahat specific.

Referitor la MFC, este un application framework. Iti ofera un mod mai rapid si mai usor de a crea o aplicatie Windows, fara sa te caci pe tine cu WinAPI. La vremea lui a fost ceva de vis, acuma mai putin.

#61
TruthHurts

TruthHurts

    Senior Member

  • Grup: Senior Members
  • Posts: 2,155
  • Înscris: 06.10.2018
Mda, clar, jenkins e troll(clona bravia?), iar claritatea a ceea ce e un framework, la fel de in ceata(ba poate chiar mai evidenta ceata)... :roflmao:

View PostMosotti, on 26 martie 2019 - 15:41, said:

dependency injection si overriding
Adica nema DI = nema framework? :lol:

View PostOriginalCopy, on 26 martie 2019 - 15:38, said:

Spring este framework, pentru ca:
Dar tu de ce esti asa sarac in explicatii? Vrei sa explice bravia pentru tine? :lol:

#62
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostTruthHurts, on 26 martie 2019 - 15:54, said:

Dar tu de ce esti asa sarac in explicatii? Vrei sa explice bravia pentru tine? Posted Image
E doar amuzant ce fel de explicatii vad, care mai de care mai cu floricele pe ele Posted Image

Unul ca e musai DI, altul ca e musai AOP, altul merge cross-cutting... Posted Image

Cred ca ar trebui sa ne asezam frumos la o bere sa rezolvam dilema.

Dintre toate aberatiile, cred ca aberatia cu cross-cutting e cea mai putin aberanta, pentru ca vrea sa zica altceva, nu "cross-cutting".

Ce lipseste? O trolleala actor-based :lol: Daca nu ai actori nu esti framework :lol: Pariu ca apare si asta?

Edited by OriginalCopy, 26 March 2019 - 16:03.


#63
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,546
  • Înscris: 10.08.2005
@TruthHurts stdlib-devel e clona lui Bravia, dar de astea ma ocupe eu, nu tu.
Asa ca mai usor cu acuzatiile.

Edited by MarianG, 26 March 2019 - 16:23.


#64
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018

View PostOriginalCopy, on 26 martie 2019 - 14:31, said:

Ce aia ma?
cross-cutting concerns este o tehnica, si exista doar in AOP? Posted Image.
Da, si exista doar in paradigma AOP

Quote

Cross-cutting concerns e o stare, nu o tehnica. Pffff.
Ce face ?
Pfff, https://en.wikipedia...cutting_concern
Chestiile astea cu "concerns"  si "aspect" sunt doar valide in contextul paradigmei AOP , iar o paradigma este independenta de existenta sau nu a  unui framework.

Cross-cutting concerns exista doar in contextul AOP, daca renunt la contextul AOP atunci  "starea aia a ta" nu mai exista, doarece ea exista doar in contextul AOP.
A ,da si nu este o "stare" este o metoda de implementare a paradigmei AOP.

Quote

Spring este framework, pentru ca:
Pentru ca are container IoC, insa spring la nivel de implementare este o bibioteca adica un library care are implementat un IoC container, iar fabricare de noi instante o face IoC prin factory design pattern. Posted Image

Edited by BraviaAmpero, 26 March 2019 - 16:31.


#65
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostBraviaAmpero, on 26 martie 2019 - 16:23, said:

Da, si exista doar in paradigma AOP

Ce face ?
Pfff, https://en.wikipedia...cutting_concern
Nu e adevarat. Calitatea de cross-cutting a unui concern e ceva abstract. Poti la fel de bine injecta un cross-cutting concern intr-o aplicatie via DI, de exemplu.

Pot fi de acord cu un lucru: AOP a acaparat terminologia, si programatorii mid-level o folosesc doar asa cum o invata din carti, fara a intelege nivelul mai abstract.

#66
TruthHurts

TruthHurts

    Senior Member

  • Grup: Senior Members
  • Posts: 2,155
  • Înscris: 06.10.2018

View PostMarianG, on 26 martie 2019 - 16:23, said:

@TruthHurts stdlib-devel e clona lui Bravia, dar de astea ma ocupe eu, nu tu.
Asa ca mai usor cu acuzatiile.
N-ai tu de unde sa tii care-s clonele exact. Tehnic vorbind.

#67
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018
Ba este, in Spring framework, tu poti modela cu "cross-cutting-concerns" doar daca folosesti modulul Spring-AOP.
Ca eu sa modelez dupa tehnica cross-cutting-concerns, imi trebuie cel putin un aspect, un advice, un join-point, si un point-cut
Fara aceste notiuni eu nu pot modela un cross-cutting-concerns , iar aceste notiuni le gasesc doar in pachetul AOP al Spring-ului si nu independente.

In frameworkuri poti avea modelare dupa tehnica cross-cutting-concerns doar in context AOP.
Uite: https://www.javaworl...ng-2-0-aop.html

Edited by BraviaAmpero, 26 March 2019 - 16:43.


#68
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004

View PostTruthHurts, on 26 martie 2019 - 15:54, said:

Adica nema DI = nema framework? :lol:
Cam da, in ziua de azi. Framework-ul iti controleaza aplicatia, tu ii spui ce sa foloseasca, intr-un mod stabilit de catre framework. In cazul unei librarii, doar folosesti niste clase/functii cum ai chef si partea de application flow e problema ta.

Nu e vorba de dependency injection specific, cit de inversion of control in general. Poate fi vorba de event-driven programming, unde codul tau se ocupa de partea specifica aplicatiei, in timp ce frameworkul are in spate un event loop si iti trimite mesajele necesare sau iti apeleaza functiile corespunzatoare, ca tot era vorba de MFC...

#69
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostBraviaAmpero, on 26 martie 2019 - 16:42, said:

Ba este, in Spring framework, tu poti modela cu "cross-cutting-concerns" doar daca folosesti modulul Spring-AOP.
Inteleg ca modelul tau mental al programarii a fost format (si implicit, limitat) de Spring. Nasol.

"Doar daca" e valabil pentru Spring, nu in general.

Edited by OriginalCopy, 26 March 2019 - 16:47.


#70
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018
Dar n-ai cum sa le separi, ca astia de la Spring nu sunt ei nebuni sa bage cross-cutting-concerns strict legat de AOP.
AOP aka managementul lui cross-cutting-concerns, uite aici curs de "cross-cutting concerns" in enterprise software:  
https://subscription...utting-concerns

Universul de software enterprise are reguli complet separate fata de alte "lumi".

Edited by BraviaAmpero, 26 March 2019 - 16:59.


#71
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostBraviaAmpero, on 26 martie 2019 - 16:54, said:

Dar n-ai cum sa le separi, ca astia de la Spring nu sunt ei nebuni sa bage cross-cutting-concerns strict legat de AOP.
AOP aka managementul lui cross-cutting-concerns https://subscription...ted-programming
Hai sa revenim la topic putin. Eu nu inteleg care e definitia ta a unui framework. O tot dai zor cu AOP. Deci?

#72
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018
Framework = un API care este gestionat prin intermediul unui mecanism denumit IoC container bazat pe DI pattern.

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate