Diferència entre revisions de la pàgina «Entorns de desenvolupament»
| (Hi ha 19 revisions intermèdies del mateix usuari que no es mostren) | |||
| Línia 1: | Línia 1: | ||
| − | + | <nowiki>#FpInfor #DawMp05 #DamMp05  | |
| + | #DawMp05Uf01 #DawMp05Uf02 #DawMp05Uf03  | ||
| + | #DamMp05Uf01 #DamMp05Uf02 #DamMp05Uf03  | ||
| + | </nowiki>  | ||
== UF1: Desenvolupament de programari ==  | == UF1: Desenvolupament de programari ==  | ||
| Línia 12: | Línia 15: | ||
** '''Projecte de software''':  | ** '''Projecte de software''':  | ||
*** Una guía que s'ajusta a les etapes de la metodologia del software: http://xavier.amatriain.net/PFC/  | *** Una guía que s'ajusta a les etapes de la metodologia del software: http://xavier.amatriain.net/PFC/  | ||
| − | * Cas pràctic: [[Especificacions: cooperativa de consum]]  | + | * Cas pràctic:  | 
| + | ** [[Especificacions: cooperativa de consum]]  | ||
| + | ** Exercici: el·labora les especificacions per una aplicació per jugar al ''Sudoku''.  | ||
| + | * SCRUM  | ||
| + | ** http://scrummethodology.com/  | ||
| + | ** http://scrum.org  | ||
| + | * Paradigmes MVC / MTV (Model-Vista-Controlador / Model-Template-View)  | ||
| + | |||
| + | |||
| + | <br>  | ||
=== Entorns integrats de desenvolupament ===  | === Entorns integrats de desenvolupament ===  | ||
| − | + | ||
| − | *  | + | '''IDE''' : ''Integrated Development Environment''  | 
| − | + | ||
| − | *  | + | * [http://www.jetbrains.com/pycharm/ PyCharm]: segurament el millor IDE per Python i Django.  | 
| − | + | * '''Geany''': senzill però amb tot el què es necessita per començar. El pots instal·lar [http://www.geany.org/Support/RunningOnWindows en Windows] o en GNU/Linux (Debian) amb: <pre># apt-get install geany</pre>  | |
| − | + | * [http://www.sublimetext.com/ SublimeText]: molt bo per Python (de pagament).  | |
| + | * '''Eclipse''' + Pydev:  | ||
| + | ** [http://www.eclipse.org/ Eclipse] és un IDE fet en Java (i per tant molt adient per aquest llenguatge).  | ||
| + | ** [http://www.pydev.org PyDev] és un plug-in per Python en Eclipse. Instal·lació: http://pydev.org/manual_101_install.html  | ||
| + | * '''NetBeans''': també originari per Java però que té plugins per diferents llenguatges com PHP o Python.  | ||
| + | *: Es pot instal·lar a Ubuntu/Debian amb:<pre>$ sudo apt-get install netbeans</pre>  | ||
| + | |||
| + | <br>  | ||
=== Frameworks ===  | === Frameworks ===  | ||
| − | + | Un ''framework'' és una combinació de <u>llibreries (APIs) i bones pràctiques de programació</u> que ens facilita el desenvolupament de programari.  | |
| − | ** Pyramid:   | + | |
| − | + | Hi ha nombrosos ''frameworks'' per diferents tipus d'aplicacions a les que ens orientem.   | |
| − | + | ||
| − | *  | + | Alguns ''frameworks'' per Python:  | 
| − | *  | + | * '''Django''':  | 
| − | + | ** https://www.djangoproject.com/  | |
| + | ** https://infla.cat/wiki/Django_web_framework  | ||
| + | * '''web2py:''': http://www.web2py.com/  | ||
| + | * '''Pyramid''': Derivat de Pylons i repoze  | ||
| + | |||
| + | Frameworks per altres llenguatges:  | ||
| + | * PHP: Symphony, YII, ...  | ||
| + | * JavaScript: YUI, jQuery, Dojo, ...  | ||
| + | |||
| + | |||
| + | ==== Pyramid framework ====  | ||
| + | Ens permet una gestió del codi eficient, mantenible i escalable. Pots introduir-te amb aquests articles:  | ||
| + | * [[Pyramid en Google App Engine]]. Començem amb Pyramid per GAE. Seguint aquest tutorial podreu crear el projecte amb l'entorn [[Buildout]].  | ||
| + | * [[Python: Pyramid framework]].  | ||
| + | * [[Pyramid: arquitectura]]  | ||
| + | * [[Web Services amb Pyramid i Cornice]]  | ||
| + | * [[Pyramid autenticació]]  | ||
| + | * [[Pyramid: documentant amb Sphinx]]  | ||
| + | |||
<br>  | <br>  | ||
| Línia 35: | Línia 72: | ||
* [[Python: depuració]] (a cacauet).  | * [[Python: depuració]] (a cacauet).  | ||
| − | + | * [[Unit Tests en Python]]  | |
| − | |||
| − | |||
=== Control de versions ===  | === Control de versions ===  | ||
| − | *   | + | * Conceptes: [[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.  | |
| − | |||
| − | |||
| − | |||
=== Altres ===  | === Altres ===  | ||
| − | |||
| − | |||
| − | |||
* Optimització del codi  | * Optimització del codi  | ||
* Refacció  | * Refacció  | ||
* Control d'errors o ''bugs''  | * Control d'errors o ''bugs''  | ||
** http://www.bugzilla.org  | ** http://www.bugzilla.org  | ||
| + | * Seguirem treballant Pyramid:  | ||
| + | ** [[Python: Pyramid framework]].  | ||
| + | ** [[Pyramid: arquitectura]].  | ||
<br>  | <br>  | ||
== UF3: Introducció al disseny orientat a objectes ==  | == UF3: Introducció al disseny orientat a objectes ==  | ||
| − | + | A aquestes alçades del curs ja tenim una certa experiència programant que ens permet ocupar-nos més bé de COM programem.  | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | En la metodologia clàssica d'enginyeria de software (model de cascada) solem trobar la etapa de DISSENY abans de la de codificació:  | |
| + | # Anàlisi/Especificació: diem QUÈ volem programar, quins requisits ha de complir l'aplicació.  | ||
| + | # '''Disseny: COM programarem el què hem especificat.'''  | ||
| + | # Codificació: escrivim codi.  | ||
| + | # Test  | ||
| + | # Documentació  | ||
| + | # Producció: publicació, distribució de codi/executables, etc.  | ||
| + | # Manteniment  | ||
| − | |||
| − | + | El disseny ens permetrà:  | |
| − | *  | + | * Anticipar dificultats i solucions.  | 
| − | *  | + | * Avaluar complexitat, útil per pressupostar projectes.  | 
| − | *  | + | * Triar tecnologia adient (llenguatge, framework, compilador, recursos, hosting, hardware, etc.)  | 
| − | *   | + | * Identificar parts del projecte:  | 
| − | **   | + | ** Establir etapes del desenvolupament i entregues (''milestones'' o "fites").  | 
| − | + | ** Dividir tasques en equip de treball.  | |
| − | + | **: ''Sol arribo més ràpid. Junts arribem més lluny.''  | |
| − | |||
| − | |||
| − | **   | ||
| − | **  | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | [[  | + | Disposem d'algunes eines que ens ajudaran:  | 
| + | * [[UML: Unified Modelling Language]]  | ||
| + | * [[Bones pràctiques de programació]]  | ||
Revisió de 08:17, 25 jul 2018
#FpInfor #DawMp05 #DamMp05 #DawMp05Uf01 #DawMp05Uf02 #DawMp05Uf03 #DamMp05Uf01 #DamMp05Uf02 #DamMp05Uf03
Contingut
UF1: Desenvolupament de programari[modifica]
Enginyeria de software[modifica]
- 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
 - Cas pràctic:
- Especificacions: cooperativa de consum
 - Exercici: el·labora les especificacions per una aplicació per jugar al Sudoku.
 
 - SCRUM
 - Paradigmes MVC / MTV (Model-Vista-Controlador / Model-Template-View)
 
Entorns integrats de desenvolupament[modifica]
IDE : Integrated Development Environment
- PyCharm: segurament el millor IDE per Python i Django.
 - Geany: senzill però amb tot el què es necessita per començar. El pots instal·lar en Windows o en GNU/Linux (Debian) amb: 
# 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
 
 - NetBeans: també originari per Java però que té plugins per diferents llenguatges com PHP o Python.
- Es pot instal·lar a Ubuntu/Debian amb:
$ sudo apt-get install netbeans
 
 - Es pot instal·lar a Ubuntu/Debian amb:
 
Frameworks[modifica]
Un framework és una combinació de llibreries (APIs) i bones pràctiques de programació que ens facilita el desenvolupament de programari.
Hi ha nombrosos frameworks per diferents tipus d'aplicacions a les que ens orientem.
Alguns frameworks per Python:
- Django:
 - web2py:: http://www.web2py.com/
 - Pyramid: Derivat de Pylons i repoze
 
Frameworks per altres llenguatges:
- PHP: Symphony, YII, ...
 - JavaScript: YUI, jQuery, Dojo, ...
 
Pyramid framework[modifica]
Ens permet una gestió del codi eficient, mantenible i escalable. Pots introduir-te amb aquests articles:
- Pyramid en Google App Engine. Començem amb Pyramid per GAE. Seguint aquest tutorial podreu crear el projecte amb l'entorn Buildout.
 - Python: Pyramid framework.
 - Pyramid: arquitectura
 - Web Services amb Pyramid i Cornice
 - Pyramid autenticació
 - Pyramid: documentant amb Sphinx
 
UF2: Optimització de programari[modifica]
- Python: depuració (a cacauet).
 - Unit Tests en Python
 
Control de versions[modifica]
- Conceptes: 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.
 
Altres[modifica]
- Optimització del codi
 - Refacció
 - Control d'errors o bugs
 - Seguirem treballant Pyramid:
 
UF3: Introducció al disseny orientat a objectes[modifica]
A aquestes alçades del curs ja tenim una certa experiència programant que ens permet ocupar-nos més bé de COM programem.
En la metodologia clàssica d'enginyeria de software (model de cascada) solem trobar la etapa de DISSENY abans de la de codificació:
- Anàlisi/Especificació: diem QUÈ volem programar, quins requisits ha de complir l'aplicació.
 - Disseny: COM programarem el què hem especificat.
 - Codificació: escrivim codi.
 - Test
 - Documentació
 - Producció: publicació, distribució de codi/executables, etc.
 - Manteniment
 
El disseny ens permetrà:
- Anticipar dificultats i solucions.
 - Avaluar complexitat, útil per pressupostar projectes.
 - Triar tecnologia adient (llenguatge, framework, compilador, recursos, hosting, hardware, etc.)
 - Identificar parts del projecte:
- Establir etapes del desenvolupament i entregues (milestones o "fites").
 - Dividir tasques en equip de treball.
- Sol arribo més ràpid. Junts arribem més lluny.
 
 
 
Disposem d'algunes eines que ens ajudaran: