Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Delphin Palace vs Sunis Elita

Apartament 3 camere, proprietari ...

An constructie bloc din Bucuresti

Masina de spalat rufe Slim Beko W...
 Sfat achizitie telefon dimensiuni...

Setare limba tastatura laptop.

Lenovo Ideapad 3-15ALC6 LCFC HS46...

filtru de particule benzina GPF
 Rascumparare titluri de stat TEZA...

Chirie la Administratia Fondului ...

Fisuri anvelope?

Valabilitate permis auto cat. A s...
 Caramida aparenta peste termosistem

Linistea din timpul penelor de cu...

Achiziție laptop baterie det...

Cenzura in masa comentarii youtube
 

Framework or library ?

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

#37
TruthHurts

TruthHurts

    Senior Member

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

 Jenkins, on 25 martie 2019 - 20:33, said:

For the record, desi numele ii zice "framework", e o librarie.
Nope, are suport pentru sintaxa noua in compilator. Librariile nu au asa ceva.

#38
OriginalCopy

OriginalCopy

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

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Cat de mult trolling pe topicul asta, doar din cauza unor egouri.

Ce spui e cam asa: statia spatiala internationala e o surubelnita, pentru ca poti gasi in ea o surubelnita, si daca asa o folosesti, atunci asa e ea.

Despre ce vorbim? Ce e ceva, sau cum folosesti ceva?

Pentru mine relatia is-a e foarte clara, dar poate intelegerea ei e o provocare pentru programatori mai novici :lol:

 TruthHurts, on 25 martie 2019 - 20:55, said:

Nope, are suport pentru sintaxa noua in compilator. Librariile nu au asa ceva.
Ba da, e comun si chiar fundamental. Cum crezi ca sunt implementate mecanismele user-space de locking, daca nu prin contracte intre biblioteca si kernel?

#39
stdlib-devel

stdlib-devel

    New Member

  • Grup: Junior Members
  • Posts: 18
  • Înscris: 25.03.2019

 iulian_1976, on 25 martie 2019 - 20:20, said:

Cei doi care scriti mult despre Java si semanti mult intre voi, veniti cu exemple care le cunoasteti de exemplu despre
Java Collections Framework,
Uite exemplu de utilizare a frameworkului de Collectii java:
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class AbordareLista {
public static void main(String[] args) {
	
	 List<Integer> valori = Arrays.asList(4,2,3,4,6,5,-10,2,1,0);
	 List<Integer> indecsi = Arrays.asList(1,2,3,4,5,6,7,8,9,10); 
	 Map<Integer, List<Integer>> data = new HashMap<Integer, List<Integer>>();
	
	 for(int i=0; i<valori.size();i++) {
		 data.put(valori.get(i), Arrays.asList(indecsi.get(i)));
	 }
	
	 LinkedHashMap<Integer, Integer> rezultat = new LinkedHashMap<Integer, Integer>();
	 int max = data.entrySet().size()-1;
	 int[] h = {0};
	
	 data.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEach(item->{
			 if (h[0] == 0 || h[0] == max) {
				 rezultat.put(item.getKey(),item.getValue().get(0));
			 }
			 h[0] = h[0] + 1;
		 });
			
	 rezultat.forEach((key,value)->{
		 System.out.println(String.format("valoare=%d\tindex=%d", key, value));
		
	 });
}
}

Quote

scriti macar o linie de cod in Java, topicul Java este aproape vid.
Nu inteleg  cu te-ar ajuta.

Edited by stdlib-devel, 25 March 2019 - 21:01.


#40
OriginalCopy

OriginalCopy

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

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

 stdlib-devel, on 25 martie 2019 - 20:36, said:

O biblioteca poate fi folosita fie ca biblioteca fie ca un framework, depinde de mine cum vreau s-o folosesc,.
Ia hai baga tare un exemplu de arhitectura care folosesti biblioteca cURL ca framework. :lol:

#41
stdlib-devel

stdlib-devel

    New Member

  • Grup: Junior Members
  • Posts: 18
  • Înscris: 25.03.2019

 OriginalCopy, on 25 martie 2019 - 20:59, said:

Pentru mine relatia is-a e foarte clara, dar poate intelegerea ei e o provocare pentru programatori mai novici Posted Image
Intotdeauna se vor inlocui relatie de "is-a "  cu o relatie "has -a".
Rule number #1 pt novici: favor composition over inheritance.

Composition over inheritance (or composite reuse principle) in object-oriented programming (OOP) is the principle that classes should achieve polymorphic behavior and code reuse by their composition (by containing instances of other classes that implement the desired functionality) rather than inheritance from a base or parent class.This is an often-stated principle of OOP, such as in the influential book Design Patterns.

#42
OriginalCopy

OriginalCopy

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

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

 stdlib-devel, on 25 martie 2019 - 21:04, said:

Intotdeauna se vor inlocui relatie de "is-a "  cu o relatie "has -a".
Rule number #1 pt novici: favor composition over inheritance.

Composition over inheritance (or composite reuse principle) in object-oriented programming (OOP) is the principle that classes should achieve polymorphic behavior and code reuse by their composition (by containing instances of other classes that implement the desired functionality) rather than inheritance from a base or parent class.This is an often-stated principle of OOP, such as in the influential book Design Patterns.

:lol: ia hai spune ceva si inlocuieste "a fi" cu "a avea".

Pana unde poate merge trolleala asta?

#43
TruthHurts

TruthHurts

    Senior Member

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

 OriginalCopy, on 25 martie 2019 - 20:59, said:

Ba da, e comun si chiar fundamental. Cum crezi ca sunt implementate mecanismele user-space de locking, daca nu prin contracte intre biblioteca si kernel?
CE FACE?

Bibliotecile(librariile) au asa, in general, suport de sintaxa in compilator? Esti sigur ca ai citit si ai inteles corect ceea ce am scris? :roflmaofast:

#44
OriginalCopy

OriginalCopy

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

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Ia zi de exemplu:

Mucii sunt in fasole => Fasolea are muci :lol:

 TruthHurts, on 25 martie 2019 - 21:06, said:

CE FACE?

Bibliotecile(librariile) au asa, in general, suport de sintaxa in compilator? Esti sigur ca ai citit si ai inteles corect ceea ce am scris? Posted Image
Da, ca oricine poate folosi sintaxa aia :lol:

Sau tu incerci sa dai exemplu de cat rahat tehnic poate manca o companie, mai ales Oracle? :lol:

#45
TruthHurts

TruthHurts

    Senior Member

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

In acceptiunea cea mai larga lucrurile stau cam asa:

- o librarie e o colectie de cod - era sa zic clase, dar sa zicem "cod" (respectiv partea binara) bazata pe SDK-ul oficial, + eventual alte librarii la randul lor bazate doar pe SDK oficial(ideea de baza e ca nu depinde de cod sau functionalitate externa SDK, sau de mecanisme "live")

- un framework e de obicei un sistem care include functionalitate externa sdk-ului, eventual ceva functionalitate "live" sau "automata" (aici e desigur discutabil) + eventual cod care se foloseste partial de aceste mecanisme externe, partial de sdk..

Numai ca in realitate diversele chestii numite framework sau library, nu se respecta neaparat chestiunile de mai sus. Dupa cum nu respecta nici chestiile enumerate de voi cu "modelul" si nu stiu ce. Ah si e haioasa si aia cu cross-cutting concerns... a venit un individ cu vreo doua buzz-words, gata v-a dat pe spate... Posted Image serios, GUI = cross cutting concern? Posted Image

Edited by TruthHurts, 25 March 2019 - 21:26.


#46
stdlib-devel

stdlib-devel

    New Member

  • Grup: Junior Members
  • Posts: 18
  • Înscris: 25.03.2019

 OriginalCopy, on 25 martie 2019 - 21:06, said:

Posted Image ia hai spune ceva si inlocuieste "a fi" cu "a avea".

Pana unde poate merge trolleala asta?
https://proandroidde...ay-fe341159bf1c
"is -a"  =>  mostenire , ai o relatie cuplata strans intre dependinte
"has -a" => compozitie, ai o relatie cuplata  usor intre dependine  => Doarece avem cuplare usoara intre dependinte , acest lucru permite implementarea principiului de inversare a dependintelor.
Acesta spune:
In object-oriented design, the dependency inversion principle is a specific form of decoupling software modules. When following this principle, the conventional dependency relationships established from high-level, policy-setting modules to low-level, dependency modules are reversed, thus rendering high-level modules independent of the low-level module implementation details. The principle states:
High-level modules should not depend on low-level modules. Both should depend on abstractions (interfaces).
Abstractions should not depend on details. Details (classes) should depend on abstractions.
By dictating that both high-level and low-level objects must depend on the same abstraction, this design principle inverts the way some people may think about object-oriented programming


Implementarea principiului de inversare a dependintinelor prin intermediul compozitiei  => tehnica de injectare a dependintilor => creare de containere de tip IoC => framework
(una din signaturile unui framework este prezenta acestui container IoC)
Astel luam, lua o relatie de mostenire , o tranformam  in relatie de compozitie, apoi implementam principiul de inversare a dependintelor , dupa care, tot cu ajutorul compozitie folosim tehnica de injectie
a dependintelor  si ne cream astfel un container IoC.
Apoi cel care va folosi acel container IoC , va fi obligat sa-l folosesca in modul in care l-am creat anterior si nu cum doreste el.
Si astfel am un mini framework  dpdv al comportamentului, insa codul este doar un  API (biiblioteca) .Deci vom avea un comportament de framework, insa implementarea este o biblioteca de API-uri

Daca in schimb aleg sa mentin realatia de mostenire sau imi creez o compozitie simpla atunci voi avea un comportament de de biblioteca avand implementarea unui biblioteci,

Rezumat:
1)
library API->favor composition over inheritance transformation-> dependency inversion principle execution-> dependency injection technique implementation-> IoC container-> Framework Signature  usage
2)
library API -> simple inheritance or simple composition->library API usage.

Insa in ambele cazuri avem de a face cu aceiasi biblioteca(library APi)

Edited by stdlib-devel, 25 March 2019 - 21:40.


#47
OriginalCopy

OriginalCopy

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

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

 stdlib-devel, on 25 martie 2019 - 21:32, said:


Tot nu inteleg, deci cum e cu IoC? Te rog ia-ma incet ca programez de abia 93 de zile.

#48
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,299
  • Înscris: 10.08.2005
Ala de ne da pe spate este evanghelistul lui Java de Oracle,

 TruthHurts, on 25 martie 2019 - 21:22, said:

cross-cutting concerns... a venit un individ cu vreo doua buzz-words, gata v-a dat pe spate... Posted Image serios, GUI = cross cutting concern? Posted Image
Atunci primesti sarcina temoprara sa folosesti un limbaj ca pentru novici, fara buzz-words. Daca te supara sarcina, consider-o o provocare. Arata-mi ca ma insel si nu esti atat de orgolios pe cat pari.
Poate intelege si @iulian_1976 ceva din relaxarea asta.

#49
Jenkins

Jenkins

    New Member

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

 iulian_1976, on 25 martie 2019 - 20:20, said:

Sa vad pareri contrare despre exemplele care le-am dat?
Sper ca ai inteles de la mine care sunt definitiile unui framework, unei biblioteci/librarii, si cum e cu acele headere. Daca mai ai nelamuriri, te rog sa ma intrebi.

#50
TruthHurts

TruthHurts

    Senior Member

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

 MarianG, on 25 martie 2019 - 21:36, said:

Ala de ne da pe spate este evanghelistul lui Java de Oracle,
Habar n-am, jenkins ala e un "evanghelist" java? Nu ca mi-ar pasa teribil...

 MarianG, on 25 martie 2019 - 21:36, said:

Atunci primesti sarcina temoprara sa folosesti un limbaj ca pentru novici, fara buzz-words. Daca te supara sarcina, consider-o o provocare. Arata-mi ca ma insel si nu esti atat de orgolios pe cat pari.
Ce-ar fi sa te achiti mai intai tu de aceasta sarcina(adica explici ce-i aia cross cutting concers si de ce ar fi o caracteristica definitiorie pentru un framework)? Sa vedem ca nu dai like aiurea la buzz-words... dupa aia promit ca vin si eu cu explicatiile. ps. daca tu i-ai dat like acelui individ sigur 100% nu avem aceeasi viziune/parere

Edited by TruthHurts, 25 March 2019 - 23:12.


#51
OriginalCopy

OriginalCopy

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

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

 TruthHurts, on 25 martie 2019 - 21:22, said:

Mnoh...

In acceptiunea cea mai larga lucrurile stau cam asa:

- o librarie e o colectie de cod - era sa zic clase, dar sa zicem "cod" (respectiv partea binara) bazata pe SDK-ul oficial, + eventual alte librarii la randul lor bazate doar pe SDK oficial(ideea de baza e ca nu depinde de cod sau functionalitate externa SDK, sau de mecanisme "live")
Deci ce e acest "sdk"?

#52
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,299
  • Înscris: 10.08.2005

 TruthHurts, on 25 martie 2019 - 23:10, said:


Habar n-am, jenkins ala e un "evanghelist" java? Nu ca mi-ar pasa teribil...


Ce-ar fi sa te achiti mai intai tu de aceasta sarcina(adica explici ce-i aia cross cutting concers si de ce ar fi o caracteristica definitiorie pentru un framework)? Sa vedem ca nu dai like aiurea la buzz-words... dupa aia promit ca vin si eu cu explicatiile. ps. daca tu i-ai dat like acelui individ sigur 100% nu avem aceeasi viziune/parere
Ce ar fi sa nu conteze cui dau like?
P.S buzzword detected.

#53
BraviaAmpero

BraviaAmpero

    Member

  • Grup: Members
  • Posts: 923
  • Înscris: 03.11.2018
Voi ati ramas blocati asupra acestor "cross-cutting concerns".Acest "cross-cutting concerns" aka in limba romana "probleme transversale" este doar o tehnica de modelare a unei probleme in paradigma AOP(Aspect Oriented Programming).
Dar eu pot sa am aceasta paradigma indiferent daca lucrez sau nu intr-un framework, tocmai pt ca este o paradigma.

Edited by BraviaAmpero, 26 March 2019 - 12:34.


#54
OriginalCopy

OriginalCopy

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

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

 BraviaAmpero, on 26 martie 2019 - 12:34, said:

Voi ati ramas blocati asupra acestor "cross-cutting concerns".Acest "cross-cutting concerns" aka in limba romana "probleme transversale" este doar o tehnica de modelare a unei probleme in paradigma AOP(Aspect Oriented Programming).
Dar eu pot sa am aceasta paradigma indiferent daca lucrez sau nu intr-un framework, tocmai pt ca este o paradigma.
Ce aia ma?

cross-cutting concerns este o tehnica, si exista doar in AOP? :lol:

De unde le tot scoateti? Mai cititi si voi, ca sa treceti de la mid-level la senior o data.

Cross-cutting concerns e o stare, nu o tehnica. Pffff.

Anunturi

Bun venit pe Forumul Softpedia!

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