Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.



No description

Diana Zaharia

on 31 March 2011

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Refactoring

practica agila Refactoring, Orice modul de software indeplineste 3 functii 1 Executie 2 Permite schimbari 3 Comunica Def. 1 Def. 2 Def. 3 Restructurare care pastreaza comportamentul programului, care faciliteaza proiectarea, evolutia si reutilizarea aplicatiilor orientate obiect. Transformare, care nu afecteaza comportamentul programului. Daca programul este folosit de doua ori cu aceleasi date de intrare se obtin aceleasi date de iesire. O schimbare aplicata structurii interne a softului care inlesneste intelegerea si face mai putin costisitoare modificarea. A restructura soft-ul prin aplicarea unor serii de refactorizari fara modificarea comportamentului observabil. Substantiv Verb Refactorizare Matematica 2x+10x = 2x(x+5) 2 Imbunatatire structura cod Flexibilitate ridicata Comprehensibilitate Agile eXtreme
Programming Refactoring Semnale pentru refactorizare Bad Code Smells Cod duplicat Metode lungi Clase mari Liste lungi de parametri Instructiuni Swith dupa tipul obiectelor Generalitate speculativa Comunicare intensa intre obiecte Inlantuirea de mesaje Beneficiile Refactoringului Imbunatateste structura codului Refactoring face codul mai usor de inteles
Mentenabilitate Extensibilitate 1 2 3 4 5 6 7 8 Encapsulate Field public String _name
//dupaă încapsulare
private String _name;
public String getName() {return _name;}
public void setName(String arg) {_name = arg;} Replace conditional
with polymorphism Extract method Extract Class Move Method Field
Rename Method
Field Pull Up Pull down Tehnici
Refactoring Automated Code
Refactoring IntelliJ IDEA NetBeans RefactoringNG Visual Studio Refactor! Pro JustCode ReSharper Coderush Visual Assist DMS Software Reengineering Toolkit
Photran SharpSort Sigasi HDT XCode
Smalltalk Refactoring Browser Simplifide Tidier Encapsulate Field Create Overload Extract method How many Agile Developers does
it take to change a lightbulb? It isn't just the lightbulb that needs changing,
the whole wiring system needs to be refactored!
Full transcript