Diferència entre revisions de la pàgina «Entorns de desenvolupament»
Línia 24: | Línia 24: | ||
== UF2: Optimització de programari == | == UF2: Optimització de programari == | ||
=== Debug (depuració) === | === Debug (depuració) === | ||
− | + | ''Bug'' = "bitxo" en anglès. Depurar és el procés d'eliminar els errors del programes o ''bugs''. | |
− | + | El [http://ca.wikipedia.org/wiki/Depurador depurador o ''debugger''] és l'eina que utilitzem per córrer (run) el programa en un entorn controlat, permetent examinar el comportament del programa pas a pas i consultar les variables internes en qualsevol moment. | |
− | |||
− | |||
− | El PDB solem utilitzar-ho inserint | + | Per Python utilitzarem: |
+ | * [http://docs.python.org/2/library/pdb.html PDB: Python debugger], funciona directament per la consola. | ||
+ | * [http://pydev.org/manual_adv_debugger.html Debugger en PyDev]: amb interfície gràfica, facilita certes funcions. | ||
+ | |||
+ | El principal procediment és inserir '''''breakpoints''''' en el nostre codi. El ''breakpoint'' aturarà l'execució del programa i ens farà entrar en mode interactiu per la consola. Podem consultar informació diversa del nostre programa com les variables, el ''stack trace'' o la línia de codi on estem. | ||
+ | |||
+ | El '''PDB''' solem utilitzar-ho inserint els ''breakpoints'' en el nostre codi en mode ''hardcoded'': | ||
import pdb; pdb.set_trace() | import pdb; pdb.set_trace() | ||
− | + | Per exemple amb: | |
(Pdb) list | (Pdb) list | ||
...ens sortirà el codi i marcarà la línia on estem. La comanda "list" també es pot fer de forma curta amb "l". | ...ens sortirà el codi i marcarà la línia on estem. La comanda "list" també es pot fer de forma curta amb "l". | ||
Línia 44: | Línia 48: | ||
* l(ist) : llista el codi que s'està executant ara (i marca l'actual posició) | * l(ist) : llista el codi que s'està executant ara (i marca l'actual posició) | ||
* w(ere) : imprimeix la ''stack trace'' | * w(ere) : imprimeix la ''stack trace'' | ||
− | |||
=== Control de versions === | === Control de versions === |
Revisió del 12:15, 4 des 2012
...intro...
Contingut
UF1: Desenvolupament de programari
- Conceptes generals de programació:
- Codi font, compilació, codi executable, llenguatges compilats vs interpretats.
- Enginyeria del software:
- Metodologia: anàlisi, especificació, disseny, desenvolupament/implementació, test, desplegament/producció, documentació, manteniment
- Metodologia de l'enginyeria de sofware (Wikipèdia).
- Models de desenvolupament: en cascada, de prototips (desenvolupament ràpid), model en espiral, per etapes, iteratiu, RAD (rapid app. devel.), procés unificat, etc.
- Projecte de software:
- Una guía que s'ajusta a les etapes de la metodologia del software: http://xavier.amatriain.net/PFC/
- Metodologia: anàlisi, especificació, disseny, desenvolupament/implementació, test, desplegament/producció, documentació, manteniment
- IDEs (Integrated Development Environment) per Python:
- Geany: senzill però amb tot el què es necessita per començar. El pots instal·lar en Windows o en GNU/Linux (Debian) amb:
sudo apt-get install geany
- SublimeText: molt bo per Python (de pagament).
- Eclipse + Pydev:
- Eclipse és un IDE fet en Java (i per tant molt adient per aquest llenguatge).
- PyDev és un plug-in per Python en Eclipse. Instal·lació: http://pydev.org/manual_101_install.html
- Geany: senzill però amb tot el què es necessita per començar. El pots instal·lar en Windows o en GNU/Linux (Debian) amb:
- Frameworks per web en Python:
- Python: Pyramid framework. En aquest curs treballarem Pyramid. Trobaràs el necessri en aquest tutorial.
- Django: https://www.djangoproject.com/
UF2: Optimització de programari
Debug (depuració)
Bug = "bitxo" en anglès. Depurar és el procés d'eliminar els errors del programes o bugs.
El depurador o debugger és l'eina que utilitzem per córrer (run) el programa en un entorn controlat, permetent examinar el comportament del programa pas a pas i consultar les variables internes en qualsevol moment.
Per Python utilitzarem:
- PDB: Python debugger, funciona directament per la consola.
- Debugger en PyDev: amb interfície gràfica, facilita certes funcions.
El principal procediment és inserir breakpoints en el nostre codi. El breakpoint aturarà l'execució del programa i ens farà entrar en mode interactiu per la consola. Podem consultar informació diversa del nostre programa com les variables, el stack trace o la línia de codi on estem.
El PDB solem utilitzar-ho inserint els breakpoints en el nostre codi en mode hardcoded:
import pdb; pdb.set_trace()
Per exemple amb:
(Pdb) list
...ens sortirà el codi i marcarà la línia on estem. La comanda "list" també es pot fer de forma curta amb "l".
Les comandes bàsiques de d'execució son:
- h(elp) : ajuda (també es pot fer en concret per una comanda del debugger)
- s(tep) : avancem una instrucció, entrant a les funcions que es cridin.
- n(ext) : avancem una instrucció, sense entrar a les funcions.
- c , cont o continue : avancem fins els següent breakpoint
- r(eturn) : avancem fins que la funció acaba (return).
- l(ist) : llista el codi que s'està executant ara (i marca l'actual posició)
- w(ere) : imprimeix la stack trace
Control de versions
- GIT (control de versions)
- Git: comandes: resum de les comandes més habituals.
- http://github.com : feu-vos un compte. Important per l'entrega de projectes.
- SVN o Subversion
Altres
- Proves (test)
- Documentació:
- Sphinx (per Python i C/C++): http://sphinx.pocoo.org/
- Optimització del codi
- Refacció
- Control d'errors o bugs
UF3: Introducció al disseny orientat a objectes
UML: Unified Modelling Language
- UML open source: Umbrello
...