"Disegni di progettazione", "Programmazione reattiva", ecc. Come si integrano questi termini? [chiuso]

1

Il contesto: a tutti gli effetti, mi sento come se fossi al livello di uno studente del secondo anno piuttosto competente in informatica. Ho preso tutti gli algoritmi di base e le classi di sistemi; la mia C è abbastanza buona, e posso persino leggere il disassemblaggio con un po 'di sforzo. OOP. Algo. P vs NP. Chiamiamo questo "materiale della vecchia scuola".

La mia domanda specifica è questa: non riesco a capire quale "argomento" questi termini rientrano, e nella mia mente, lo chiamo "roba nuova scuola". Sono alle prese con la terminologia qui, ma per la mancanza di una parola migliore, a quale argomento appartengono queste cose?

  • design patterns
  • programmazione reattiva
  • MVC
  • programmazione guidata dagli eventi
  • lo "stack", ovvero uno sviluppatore "full stack"
  • sviluppo agile
  • software come servizio
  • "architettura"
posta SharkCop 14.12.2014 - 22:04
fonte

1 risposta

5

Risposta breve

Non esiste un singolo argomento in cui rientrano tutti questi termini.

E no. Probabilmente non hai sentito questi termini anche se non hai saltato nessuna lezione. È abbastanza normale per uno studente non sentirne parlare mai dalla bocca del mondo accademico.

Quello che ti manca è uno stage. (conosciuto anche come apprendista, formazione pratica, cooperazione, ecc.)

Ci sono agenzie che pretendono di insegnare le abilità e le maniere al di fuori di un rapporto di lavoro. (Invece, tu paghi per iscriverti.) Questo è chiamato "campo di addestramento". Dal momento che ci sono cose buone, cattive e brutte, non parlerò molto di questo.

Risposta lunga

Modelli di design

Progettazione ricorrente della classe e modelli di interazione osservati in molti progetti di programmazione orientata agli oggetti (OOP) reali campionati da molte aree versatili. Un aumento della pratica di OOP.

MVC

Un'architettura proposta per l'implementazione di interfacce grafiche di programmazione (GUI)

Programmazione basata su eventi

Una struttura di controllo-flusso fondamentale che è alla base di tutta la programmazione della GUI. Fa riferimento anche a linguaggi, framework e librerie riutilizzabili progettate specificamente per migliorare la programmazione basata sugli eventi.

Esempi di cose che sono not programmazione guidata dagli eventi:

  • Interfaccia della riga di comando
  • Programmazione basata su menu (un'interfaccia utente basata su testo non più in uso)
  • Elaborazione batch (o elaborazione non presidiata e quindi non ha alcuna interfaccia utente)

Lo "stack"

Una scorciatoia di "stack tecnologico". Quest'ultimo si riferisce ai componenti di un'architettura a strati di un sistema informatico. Il termine è usato nel tentativo di descrivere rapidamente una particolare combinazione di scelte tecnologiche fatte ad ogni livello di calcolo in un dato sistema.

In pratica, è una concatenazione di parole d'ordine:

public override string ToString()
{
    return string.Join(",", new string[] { 
        hardware.Name, os.Name, database.Name, webBackendFramework.Name, webFrontendFramework.Name });
}

Sviluppatore "full-stack"

Un modello di occupazione e carriera emergente tra professionisti dello sviluppo di software per il web. Si riferisce a professionisti ben equipaggiati sia per i back-end Web che per i front-end Web.

Questo termine dà l'impressione che uno "sviluppatore full-stack" abbia una vasta conoscenza ed è in grado di creare un intero sito Web (lato client e lato server) solo da soli.

Sviluppo agile

Una metodologia di sviluppo del software. Fare riferimento all'articolo di Wikipedia. Vedi anche: "Lean development", "Scrum" e "Kanban".

Concetti storicamente rilevanti (ma non necessari per comprendere questo termine nel suo senso attuale) sono: "Toyota Production System", "Agile Manifesto", "Extreme Programming".

Software-as-a-Service (SaaS)

Una tendenza del settore nel software. Questa tendenza influisce su ogni aspetto dello sviluppo del software:

  • Monetizzazione (come si fanno i soldi)
  • Prezzi e fatturazione (come e quando i clienti effettuano i pagamenti)
  • Velocità di sviluppo (quanto tempo dalla codifica alla messa a disposizione di questa nuova funzionalità per gli utenti)
  • Ciclo di rilascio (con quale frequenza viene rilasciata una revisione principale)
  • Infrastruttura (dove viene eseguito il "software", chi paga l'hardware, chi gestisce le macchine)

In parole semplici, è una tendenza rivoluzionaria e un'innovazione dirompente, anche se si tratta di un cambiamento graduale che si verifica nel corso dei decenni e non di un brusco cambiamento.

È dirompente nel senso che le società di sviluppo software che non adottano SaaS si troveranno in uno svantaggio permanente e competitivo e si troveranno ad affrontare l'estinzione.

Architettura

Vedi "architettura software" e "ingegneria del software" in Wikipedia. Cerca anche "sistemi di gestione e informazione (MIS)" nelle offerte dei corsi della tua scuola.

    
risposta data 14.12.2014 - 22:50
fonte

Leggi altre domande sui tag