Come si scrive Java scalabile? [duplicare]

1

Mi piace pensare di scrivere un buon codice Java mantenibile, utilizzando le migliori pratiche, i modelli di progettazione e cercando di ottenere una buona copertura di test con i test unitari.

Recentemente, mentre cercavo un lavoro, mi sono imbattuto in un paio di annunci di lavoro che hanno riferimenti al codice "scalabile".

Quindi, la mia domanda è, che cosa è considerato un codice "scalabile"?

    
posta user86834 15.04.2013 - 19:50
fonte

1 risposta

8

Come Robert ha citato in un commento, ciò che intendono è che il software funziona bene con volumi di carico crescenti.

Qualsiasi linguaggio di programmazione ha potenziale per codice che esegue o scala bene e codice che esegue o scala in modo scadente.

Tuttavia, Java è un linguaggio interessante per essere pignoli in merito al ridimensionamento, forse a causa della sua popolarità e della bassa barriera all'ingresso.

Vedo due motivi per essere preoccupato per gli sviluppatori che rivendicano esperienza in Java, ma producono software con prestazioni scadenti o con scalabilità ridotta:

  • Comunemente insegnato - ogni curriculum IT, SE e CS che ho visto insegna prima Java. Almeno negli Stati Uniti, è di fatto la programmazione del linguaggio 101. Non è una cattiva idea dal momento che insegna le basi del flusso di controllo come loop, funzioni, matrici, I / O ecc. E consente un "riscaldamento" in OOP.
  • È popolare e molto pubblicizzato.

Uno dei pericoli dei linguaggi raccolti con garbage è che non è necessario capire come funziona un computer per fare software con esso. Al giorno d'oggi è possibile anche creare software che funzioni abbastanza bene senza comprendere la gestione della memoria, i registri della CPU, gli algoritmi GC, ecc. Tuttavia, se vuoi che il software si riduca, hai bisogno di una certa comprensione di questi concetti (non necessariamente un esperto comunque).

Ad esempio, si scrive codice che seleziona un gruppo di dati da una tabella di database e quindi lo si carica in un ArrayList in Java. Lo provi nello sviluppo e funziona benissimo. Provalo in QA, funziona alla grande. Eseguilo in produzione dove la tabella ha 2 milioni di righe anziché 10 righe dallo sviluppo e 2.000 utenti selezionano contemporaneamente, improvvisamente la CPU del database aumenta e i server delle app si scaricano sulla memoria. Come gestiresti questo?

    
risposta data 15.04.2013 - 20:29
fonte

Leggi altre domande sui tag