Entorns de desenvolupament
La revisió el 08:09, 18 set 2012 per Enric (discussió | contribucions) (→UF1: Desenvolupament de programari)
...intro...
Contingut
UF1: Desenvolupament de programari
- Concepte generals:
- Codi font, codi executable.
- Llenguatges compilats vs. interpretats.
- Màquines virtuals.
- Enginyeria del software:
- Metodologia: anàlisi, especificació, disseny, desenvolupament/implementació, desplegament/test (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.
- Metodologia: anàlisi, especificació, disseny, desenvolupament/implementació, desplegament/test (producció), documentació, manteniment
- 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.
- Frameworks per Python: Pyramid i Django
- virtualenv (ens caldrà prèviament als scaffolds): http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/install.html
- Primer projecte en Pyramid amb "single file" (sense scaffold): http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/single_file_tasks/single_file_tasks.html
Pyramid framework
- Pylons + repoze.bfg = Pyramid
- Traversal vs. url_dispatcher
- Estructura típica dels arxius en una web amb Pyramid (models, __init__, views, etc.)
- Fase desenvolupament:
- virtualenv (ens caldrà prèviament als scaffolds): http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/install.html
- Pyramid scaffolds (esquelet de projecte): http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/project.html
- Fase deploy (desplegament/producció):
- Apache i WSGI: http://code.google.com/p/modwsgi/wiki/InstallationInstructions
- Configurant WSGI: http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide
- Integració de Apache WSGI i Pylons: http://code.google.com/p/modwsgi/wiki/IntegrationWithPylons
- Variables d'entorn al fitxer .ini: http://pyramid.readthedocs.org/en/latest/narr/environment.html
- En producció, per problemes de la codificació per defecte i canviar-la a "utf-8", editar /usr/lib/pythonX.Y/sitecustomize.py i afegir:
import sys
sys.setdefaultencoding('utf-8')
- Per generar passwords: http://stackoverflow.com/questions/2257441/python-random-string-generation-with-upper-case-letters-and-digits
- ...
Buildout
El buildout ens permet construir projectes amb divereses versions dels packages necessaris. Així no tindrem conflictes de diverses aplicacions en un mateix entorn de producció (passaria si instal·lessim els packages al sistema).
UF2: Optimització de programari
- Debug
- Proves (test)
- Documentació:
- Sphinx (per Python i C/C++): http://sphinx.pocoo.org/
- Optimització del codi
- Refacció
- Control de versions: GIT i SVN
- Control d'errors (bugs)
UF3: Introducció al disseny orientat a objectes
UML: Unified Modelling Language
- UML open source: Umbrello
...