Il refactoring è una tecnica disciplinata per ristrutturare un corpo di codice esistente, alterando la sua struttura interna senza modificarne il comportamento esterno.
Dato un piccolo progetto che mira ad aggiungere nuove funzionalità all'applicazione, le modifiche introdotte toccano un po 'di codice esistente, comportando l'aggiornamento di questi in determinate aree. Durante l'implementazione, ho trovato alcuni di questi codici che sono stati aggiornati hanno candidati per il refactoring. È questo un momento appropriato per …
Come parte di uno sforzo di refactoring o di uno sviluppo continuo, un metodo particolare o forse un'intera classe può diventare obsoleto in un certo senso. Java supporta l' @Deprecatedannotazione per indicare che probabilmente esiste un modo migliore per gestire la funzionalità in questione. Immagino che ciò sia particolarmente utile …
Il mio team crea molti moduli web unici. La maggior parte di questi moduli invia semplicemente un'e-mail e alcuni scrivono semplicemente un database. Al momento, ogni modulo vive in una propria soluzione separata in Visual Studio Team Foundation Server. Ciò significa che abbiamo quasi 100 progetti in diverse forme, il …
Ho del software che ho scritto circa 2 anni fa e ha bisogno di alcune funzionalità aggiunte ad esso. Mi sono reso conto che è in un disastro terribile e ho il bisogno di spostare tutto, riordinare, ecc. Ho letto l' articolo Joel on Software sul non ricominciare , quindi …
Semplicemente quali sono le tecniche pratiche che le persone usano per verificare se una classe viola il singolo principio di responsabilità? So che una classe dovrebbe avere solo una ragione per cambiare, ma a quella frase manca un modo pratico per implementarla davvero. L'unico modo che ho trovato è usare …
Ultimamente ho letto e pensato molto e sono giunto alla conclusione che forse dovrei ripensare la mia strategia di sviluppo web. Sto facendo molta programmazione al volo, e in 2 anni ho lavorato su un'applicazione web PHP, quello che potrebbe essere iniziato come un piccolo strumento è diventato piuttosto il …
Considera due classi Doged Catentrambe conformi al Animalprotocollo (in termini di linguaggio di programmazione Swift. Sarebbe un'interfaccia in Java / C #). Abbiamo uno schermo che mostra un elenco misto di cani e gatti. C'è una Interactorclasse che gestisce la logica dietro le quinte. Ora vogliamo presentare un avviso di …
Ho un progetto di dimensioni sufficientemente grandi che non riesco più a mantenere ogni aspetto nella mia testa. Ho a che fare con un numero di classi e funzioni in esso e sto trasmettendo dati. Con il passare del tempo ho notato che continuavo a ricevere errori, perché ho dimenticato …
Quindi, probabilmente come molti, mi trovo spesso ad avere mal di testa con problemi di progettazione in cui, ad esempio, esiste un modello / approccio di progettazione che sembra adattarsi intuitivamente al problema e ha i benefici desiderati. Molto spesso c'è qualche avvertimento che rende difficile implementare il modello / …
Sono l'unico sviluppatore di un progetto che, come per qualsiasi progetto software, potrebbe essere preso da qualcun altro in futuro. Diciamo che ho usato il modello X per implementare la funzione A. Dopo aver sviluppato e finito la funzione, mi rendo conto di poter implementare la stessa funzione usando il …
Ho cercato alcune risposte e cercato su Google, ma non sono riuscito a trovare nulla di utile (ovvero che non avrebbe effetti collaterali imbarazzanti). Il mio problema, in astratto, è che ho un oggetto e ho bisogno di eseguire una lunga sequenza di operazioni su di esso; Lo considero una …
Recentemente ho refactoring un metodo che era sia un comando che un metodo di query. Dopo averlo separato in un metodo a un comando e un metodo di query, ho scoperto che ora ci sono più posizioni nel codice in cui sto chiamando il comando per ottenere il valore dalla …
Attualmente sto eseguendo il refactoring di una parte di una base di codice di grandi dimensioni senza test unitari. Ho cercato di refactificare il codice in modo brutale, cioè cercando di indovinare cosa sta facendo il codice e quali cambiamenti non cambierebbero il suo significato, ma senza successo: interrompe casualmente …
Ho letto il refactoring di Martin Fowler . È generalmente eccellente, ma una delle raccomandazioni di Fowler sembra causare qualche problema. Fowler consiglia di sostituire le variabili temporanee con una query, quindi invece di questo: double getPrice() { final int basePrice = _quantity * _itemPrice; final double discountFactor; if (basePrice …
Se ho una funzione nel mio codice che va come: class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } Normalmente refactoring questo per usare il Ploymorphism usando una classe di fabbrica e un modello di strategia: …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.