Differenza tra un'architettura e un quadro [chiuso]

5

Una domanda terminologica è stata visualizzata quando ho confrontato EJB 3 e Spring.

Wikipedia dice che

Enterprise JavaBeans (EJB) is a managed, server-side component architecture for modular construction of enterprise applications.

e anche

The Spring Framework is an open source application framework and inversion of control container for the Java platform.

"EJB 3 in Action" suggerisce che

Together, the components, or EJBs, and the container can be viewed as a framework that provides valuable services for enterprise application development.

Qualche framework è un'architettura? In caso contrario, qual è la differenza tra questi termini? È possibile che EJB sia considerato un framework?

    
posta Limbo Exile 18.02.2014 - 19:17
fonte

3 risposte

9

Un'architettura è il concetto astratto di design di un'applicazione. In sostanza, una struttura delle parti in movimento e il modo in cui sono connesse.

Un framework è un'architettura generale o speciale precostruita progettata per essere estesa.

Se un'architettura è il progetto di una struttura, una struttura è l'architettura di una fondazione. I framework sono progettati specificamente per essere costruiti o estesi.

Alcuni framework si occupano principalmente di scaffolding. Significa che forniscono moduli precostruiti che sono facili da usare / estendere per salvare lo sviluppatore dal doverli creare da zero. Ad esempio, la maggior parte dei framework MVC (ex django, piloni, codeigniter) rende molto più semplice l'implementazione di sessioni, connessioni al database, template, ecc ...

Gli altri framework si occupano principalmente di aumentare le capacità del linguaggio stesso, riempiendo ciò che alcuni potrebbero considerare "pezzi mancanti". Aggiungono funzionalità che provengono da altre lingue, zucchero sincrono o estendono la lingua. La libreria Underscore è un perfetto esempio di questo. Non è molto utile per la creazione di applicazioni, lo scopo principale è estendere le funzionalità di base di javascript.

Esistono alcuni framework per aggiungere nuove funzionalità a una lingua o ridefinire le funzionalità esistenti in un modo nuovo. Ad esempio, jQuery ha preso il processo - prima doloroso - di interrogare il DOM HTML e l'ha reso banale. Hanno anche fornito un mezzo per scrivere richieste AJAX compatibili con browser. Mentre jQuery sembra aggiungere un nuovo stile di sintassi, dietro le quinte gira su JavaScript vaniglia. AngularJS è un altro framework che sfrutta JS / HTML in modi nuovi e interessanti usando vanilla JS.

Nel tuo caso. Spring e EJB sono entrambi framework MVC per scaffold, ognuno con i propri compromessi.

    
risposta data 18.02.2014 - 19:23
fonte
2

In generale, architecture è un piano astratto che può includere schemi di progettazione, moduli e le loro interazioni. Framework sono architects strutture "fisiche" su cui viene creata la tua applicazione.

La tua architettura può incorporare più framework. E più livelli di framework. Ad ogni livello, "l'architettura" è il "pensiero" spesso documentato da cui è costruito il livello. I framework sono i componenti "fisici" utilizzati per costruirlo.

Quando chiami un ambiente di destinazione come "architettura", ti riferisci alle implicazioni del design sul tuo software. Quando lo chiami "framework", ti riferisci alle funzionalità che ti offre.

    
risposta data 18.02.2014 - 20:19
fonte
0

Nel software, un Framework è un modulo software o un insieme di moduli che supporta un concetto di programmazione generico, astringendo la funzionalità comune (codice in senso software) in un formato riutilizzabile.

Un'architettura è un insieme di sistemi che risolve i bisogni aziendali. In base a TOGAF

The definition of an architecture used in ANSI/IEEE Std 1471-2000 is:

"The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution."

Di per sé TOGAF è un framework perché estrae le parti riutilizzabili dell'architettura in un formato riutilizzabile. Lo fa attraverso la documentazione invece del codice.

    
risposta data 18.02.2014 - 19:22
fonte

Leggi altre domande sui tag