Ver la versión completa : [Programación] ¿cómo planeáis y os organizáis a la hora de programar?
Pues eso, me encuentro en una situación en la que tengo que volver a reescribir el código de una aplicación y estoy en blanco, no se ni como empezar. Bueno sí, ya tengo una ventana sin nada dentro y un esqueleto de código muy básico, algo es algo.
No me malinterpretéis, no es que no sepa seguir o no sepa lo que quiero hacer, es que no se por donde meterle mano por una no muy buena planificación. Comencé a escribir un "documento de diseño" (sé que para los juegos se hace, ¿para las aplicaciones también?) y tengo bocetos en papel del aspecto del interfaz, ya que es una parte muy importante de mi aplicación. También tengo documentos de texto donde voy escribiendo mis ideas y las clases que voy a usar. Pero me temo que me falta algo.
Lamentablemente me instalé un editor de UML pero no me funcionaba (Umbrello, hacía cosas raras)
¿Cómo planeáis vuestro código y como organizáis vuestro trabajo a la hora de programar?
Recolección de requisitos generales, ir descendiendo por las ramas del árbol hasta requisitos básicos. Darle una solución a cada componente, escrita o esbozada a código. Componer y describir las clases y métodos necesarios a priori...y ya implementar.
¿Lo has sacado de los apuntes, o te lo sabes de memoria? xDD
¿Lo has sacado de los apuntes, o te lo sabes de memoria? xDD
De memoria, el de los apuntes son como 100 folios de documentación previa a la implementación xDDD
Yo como...los malditos no me han dado plaza para hacer el ciclo superior de programación, me quedo un año más sin saber todas esas cosas tan....bonitas.., y tengo que andar preguntando por los foros.
Es una de tantas, en proyectos no muy grandes también puedes seguir la incremental de toda la vida: empiezas a picar código y vas añadiendo según necesites.
No planeo, solo lo pongo.
Yo como...los malditos no me han dado plaza para hacer el ciclo superior de programación, me quedo un año más sin saber todas esas cosas tan....bonitas.., y tengo que andar preguntando por los foros.
Tambien puedes buscar libros (o mirar la bibliografia del curso) y estudiarlo por tu cuenta. No seas vago y no descarges la culpa en el centro, si quieres aprender solucionalo y hazlo por tu cuenta.
Hay varias metodologias, si el proyecto es muy grande, lo mejor es que sigas alguna, si los vas a frontar tu solo, lo que te ha dicho pakoito es lo mas correcto, si es pequeño con que hagas un par de esquemas y pseudocodigo puede valerte, pero claro, si falla la planificacion, se puede ir todo el curro a tomar por culo.
Como nos dijeron este año, cuanto mas tardes en empezar a codificar, antes terminaras.
Saludos
Picas un poco del código de la idea que tienes en la cabeza... cosas generales, y antes de que se empiece a complicar lo mas mínimo, te paras y planificas, y lo que ha dicho pakoito, uml(si sabes), papel, lapiz, goma y a dibujar cajitas y diagramas de accion, anotas todas las ideas y a tirar millas.
Yo lo hago así por un motivo, el "terror" que da una hoja en blanco, es preferible tirar un poco de código(que de eso sabemos todos) y partir de ahí, planifico mucho mejor, si me das una hoja empiezo a divagar y termina en la papelera.
Picas un poco del código de la idea que tienes en la cabeza... cosas generales, y antes de que se empiece a complicar lo mas mínimo, te paras y planificas, y lo que ha dicho pakoito, uml(si sabes), papel, lapiz, goma y a dibujar cajitas y diagramas de accion, anotas todas las ideas y a tirar millas.
Yo lo hago así por un motivo, el "terror" que da una hoja en blanco, es preferible tirar un poco de código(que de eso sabemos todos) y partir de ahí, planifico mucho mejor, si me das una hoja empiezo a divagar y termina en la papelera.
Como no has especificado si es gestión, web o juego ya no se, pero otra forma de no enfrentarse al folio en blanco es dibujando un prototipo y viendo que necesitaría para funcionar.
fanletal
30/09/2009, 15:12
Buenas,
Quizá hacer un diagrama de flujo de datos desglosado con todos los procesos de tu aplicación pueda ayudarte.
Aquí (http://es.wikipedia.org/wiki/Diagrama_de_Flujo_de_Datos) tienes información muy básica de ello. Esto puede ayudarte bastante a la hora de desarrollar la aplicación que te traes entre manos.
Saludos,
¡Gracias!
Malenko, eso que dices lo pienso hacer, más o menos, voy a aprovechar este año para aprender por mi cuenta. No echo las culpas al centro-se la echo a la junta de andalucía que lo ha hecho muy mal este año, y no soy el único que lo dice, hay cientos de personas que después de haber hecho la prueba de acceso se han quedado sin plaza por una mala administración (y para colmo, lo han hecho tan mal que han empezado las clases antes de que estuvieran todas las plazas adjudicadas, y los pobres que ya habian empezado han tenido que empezar desde cero cada vez que entraba gente nueva, un caos) Es más, no ha sido un centro, han sido unos pocos los que no me han dado plaza, puse más de un centro a la hora de reservar matrícula, por si acaso, pero no sirvió de nada.
¡Gracias!
Malenko, eso que dices lo pienso hacer, más o menos, voy a aprovechar este año para aprender por mi cuenta. No echo las culpas al centro-se la echo a la junta de andalucía que lo ha hecho muy mal este año, y no soy el único que lo dice, hay cientos de personas que después de haber hecho la prueba de acceso se han quedado sin plaza por una mala administración (y para colmo, lo han hecho tan mal que han empezado las clases antes de que estuvieran todas las plazas adjudicadas, y los pobres que ya habian empezado han tenido que empezar desde cero cada vez que entraba gente nueva, un caos) Es más, no ha sido un centro, han sido unos pocos los que no me han dado plaza, puse más de un centro a la hora de reservar matrícula, por si acaso, pero no sirvió de nada.
Y para que sirve esa prueba de acceso? Digo yo que será algo tipo prueba de selectividad, donde se hace obtiene una nota y en base a ella la gente entra en la universidad. Es asi?
Kurraudo
30/09/2009, 15:23
Efegea, si necesitas libros sobre programación puedes ir perfectamente a la ETSII que allí los tienes en grandes cantidades. Puedes verlos allí cuando quieras, aunque si quieres llevártelos a casa tendrías que ser alumno de alguna titulación y usar el carnet universitario
Ñuño Martínez
30/09/2009, 15:23
Comencé a escribir un "documento de diseño" (sé que para los juegos se hace, ¿para las aplicaciones también?) En teoría sí, en la práctica "suele ser una pérdida de tiempo" (sic. en boca de un jefe de proyectos que tuve).
Lamentablemente me instalé un editor de UML pero no me funcionaba (Umbrello, hacía cosas raras) Yo utilizo siempre uno que nunca me falla. Es genial. Se llama "PapelYLápiz". Además también sirve para diagramas de flujo, esquemas E/R, estudio de casos y diseño de entornos gráficos (aunque creo que esta última capacidad ya la conocías :p :D).
Uno que he utilizado a menudo es el GNU/Dia. Me gusta bastante y falla poco.
¿Cómo planeáis vuestro código y como organizáis vuestro trabajo a la hora de programar?
Primero pienso qué quiero conseguir, qué capacidades y posibilidades tiene. Lo escribo todo, a veces en un archivo de texto.
Luego pienso en qué lenguaje me costará menos conseguirlo.
Hago algunos esquemas (UML, flujos, E/R, pantallazos, ...) en papel y a veces con GNU/Dia.
Preparo el directorio del proyecto al "estilo GNU" (src, obj, doc, bin...) creo el proyecto en el editor (si utilizo Lazarus), el makefile (tengo uno básico en el que cambias dos líneas y ya compila todo) y empiezo con el módulo principal. Normalmente empiezo por lo general y termino por lo concreto (por ejemplo, primero creo el contenedor y luego los elementos que va a contener).
[edit] Perdón por el sarcasmo inicial. Lo he releído y es posible que suene borde. No es mi intención. Pero en serio: Una hoja de papel y un bolígrafo o lapicero son las mejores herramientas de las que dispone el programador y nunca deben faltar. Palabra de MEV.
Y sí, sé que ya lo han dicho pero mejor insistir, que los novatos (y muchos no novatos también) siempre se resisten a utilizar el papel.
Y una cosa: no hace falta ser académico a la hora de hacer esquemas UML, E/R o flujos. Me refiero a que no hace falta utilizar el símbolo exacto que dice el libro. Pero eso sí: que sea claro y separando bien cada caja de forma que puedan insertarse nuevas cajas, que siempre se nos olvida alguna. Y no tener miedo a tirar la hoja a la papelera si nos damos cuenta de que no es un buen diseño, que a veces es mejor rehacerlo desde cero que andar haciendo parches que luego van a fallar más que una escopeta de feria.
Y para que sirve esa prueba de acceso? Digo yo que será algo tipo prueba de selectividad, donde se hace obtiene una nota y en base a ella la gente entra en la universidad. Es asi?
Sí, igual que selectividad pero para ciclos formativos. Mi nota fue buena dentro de la media..un 7 donde lo habitual es catearla (había folios y folios de gente que no había superado la prueba, y de los que sí, lo más normal era un 5 o un 6, luego unos pocos que como yo tenían un 7 y ya los afortunados con un 8 se contaban con los dedos de una mano)-todo esto en el centro donde me examiné de la prueba.
Sí, igual que selectividad pero para ciclos formativos. Mi nota fue buena dentro de la media..un 7 donde lo habitual es catearla (había folios y folios de gente que no había superado la prueba, y de los que sí, lo más normal era un 5 o un 6, luego unos pocos que como yo tenían un 7 y ya los afortunados con un 8 se contaban con los dedos de una mano)-todo esto en el centro donde me examiné de la prueba.
Ah vale, entonces es que no has entrado porque han pillado plaza gente con mayor nota. No me habia quedado claro.
En cuanto al tema, lo preguntas de forma "teorica", para un proyectillo personal,...?
Malenko, al menos en catalunya, antes que él van todos los que tienen bachillerato, y luego suele haber un baremo por proximidad así como otros conceptos que suman puntos (como familia numerosa y cosas así).
El problema con las pruebas de acceso es lo que he dicho primero, como te venga mucha gente de bachillerato no entras. Y como ahora está de moda...
Lo peor de todo es que dentro de 3 meses de la clase habrán caído un cuarto porque "no es lo que pensaba" o "es muy difícil". Efegea, yo preguntaría si permiten matriculación más adelante si alguien se da de baja.
Con lo que sabes perder el primer trimestre debería darte igual aunque te hagan ir a recuperación por no haberlo cursado o algo parecido.
Ya en el tema, yo suelo empezar por hacer una lista de todo lo que me gustaría que hiciese el programa, a modo de tormenta de ideas, flipándome todo lo que quiera, total es el ideal.
Lo siguiente es poner un valor a cada característica, por ejemplo del 1 al 5 siendo 1 algo imprescindible y un 5 aquello que solo pondrías si te sobra tiempo.
En ese momento ordeno la lista y ya tengo más o menos claro que desarrollaré primero. No siempre tiene que ser así y muchos 2's pasan antes que los 1's porque luego te ahorra trabajo.
Lo siguiente es lo que te ha dicho Fanletal, un diagrama de flujo de datos, donde pones todos los elementos que van a recibir o enviar información (entidades) y trazas flechas entre ellos diciendo que datos.
Un ejemplo típico es un banco donde tienes al cliente y al cajero y puedes identificar estos flujos:
1- [cliente] -> petición de dinero -> [cajero]
2- [cajero] -> petición de DNI -> [cliente]
3- [cliente] -> DNI -> [cajero]
4- [cajero] -> dinero -> [cliente]
Es un ejemplo chorra pero ayuda a identificar que son datos y que son entidades. Obviamente luego hay más entidades que se relacionan, por ejemplo:
3a- [cajero] -> petición datos del cliente y de saldo + DNI -> [sistema informático del banco]
3b- [sistema informático del banco] -> Exito, cliente correcto y con saldo -> [cajero]
3c- [cajero] -> petición de dinero -> [sistema informático del banco]
3d- [sistema informático del banco] -> dinero -> [cajero]
Y vamos, podríamos seguir hasta el infinito xD
Luego también ayuda mucho hacerse el esquema para guardar los datos (que no es lo mismo que el flujo) donde identificas todos los elementos y la relación entre ellos, empezando por un esquema entidad/Relación y pasándolo a casi la BBDD después.
No oprimas el eter, deja que el código fluya!
En caso de tener que reescribir/limpiar lo que yo hago es ir clase por clase completandola en caso de que le falten cosas o poniendo en funciones u otras clases las que no tengan mucho sentido.
Hace tiempo hice esto en una aplicacion por linea de comandos y le quite 100k de algo mas de 300k. Simplemente refactorizando el codigo. refactorizando el codigo (http://sourcemaking.com/)
Respecto al acceso de los módulos, aquí en Madrid se reserva un porcentaje de las plazas a los que acceden por prueba de acceso (otro más pequeño para minusválidos y otro más reducido aún para los "deportistas de élite"). El caso es que, como bien han dicho, algunos centros permiten la matriculación posterior, a si que, yo de ti, iria a los institutos en cuestión e intentaría hacerme con una de esas plazas que puedan haber quedado libres (claro, eso teniendo en cuenta que en Andalucia sea a la matriculación sea a "española" como en Madrid).
^MiSaTo^
01/10/2009, 15:03
Yo si es un proyecto para mi, primero me hago mis esquemillas en papel que siempre son dibujando una especie de prototipos, diagramas de flujo, ER de la bbdd (si la lleva), y a veces diagramas de clases (no necesariamente tal cual vienen especificados en UML).
Si es un proyecto de curro ya uso alguna herramienta como el Rational o el que sea y diseño con UML.
Como han dicho por ahí arriba, es mejor planificar y diseñar todo bien antes de ponerse a picar como un loco, porque si está mal planteado tendrás que cambiar todo una y otra vez.
El papel es tu hamigo!
Respecto al acceso de los módulos, aquí en Madrid se reserva un porcentaje de las plazas a los que acceden por prueba de acceso (otro más pequeño para minusválidos y otro más reducido aún para los "deportistas de élite"). El caso es que, como bien han dicho, algunos centros permiten la matriculación posterior, a si que, yo de ti, iria a los institutos en cuestión e intentaría hacerme con una de esas plazas que puedan haber quedado libres (claro, eso teniendo en cuenta que en Andalucia sea a la matriculación sea a "española" como en Madrid).
Según la delegación provincial de sevilla...3 plazas reservadas para los de la prueba de septiembre. Y por más que llamo e insisto, no hay ninguna para mí. Me ha dicho un alumno que está allí que si alguien se da de baja me avisará pero de momento ninguno se lo plantea..
Muchas gracias a los que estáis respondiendo al tema del hilo, que ya sé que solo respondo a los que hablan del ciclo pero eso no significa que no me esté sirviendo de ayuda vuestros comentarios :brindis:
Yo si es un proyecto para mi, primero me hago mis esquemillas en papel que siempre son dibujando una especie de prototipos, diagramas de flujo, ER de la bbdd (si la lleva), y a veces diagramas de clases (no necesariamente tal cual vienen especificados en UML).
Si es un proyecto de curro ya uso alguna herramienta como el Rational o el que sea y diseño con UML.
Como han dicho por ahí arriba, es mejor planificar y diseñar todo bien antes de ponerse a picar como un loco, porque si está mal planteado tendrás que cambiar todo una y otra vez.
El papel es tu hamigo!
Coincido plenamente. Por eso preguntaba si era para algo personal o para temas de trabajo.
Lo suyo es que estudies las técnicas de documentación y planificación. Hay muchas y depende de si trabajas solo, en grupo, etc.
Yo hago como Misato. Si es para mi hago una lista de funcionalidades que he de implementar y luego con papel+lapiz hago unos esquemas y voy generando clases para implementar los esquemas.
Si es para el curro, pues ya si que especifico todo mucho mejor, explicando cada cambio que conlleva, etc. Diagramas de tablas (BBDD), de la arquitectura (a nivel de maquinas) que se ha de usar, etc.
Otra diferencia, es que si trabajas para ti puedes asumir hasta que nivel de detalle puedes bajar. Tu sabes, teniendo ya cierta experiencia, que funciones eres capaz de implementar sin necesidad de especificarlas, por lo que el diseño suele ir más rápido. En el trabajo yo no puedo hacer eso, porque hay cosas que yo por mi experiencia las puedo resumir en una cajita de texto (en el diagrama xD) y por mi compañero tengo que explicarlo todo al mas minimo detalle porque de programacion va un poquillo pez.
josepzin
01/10/2009, 15:59
Lo mejor es empezar por el menú (http://www.comunidadgm.org/index.php?page=100;wap2) :P
Yo estoy muy lejos de ser un "experto", pero yo siempre hago lo mismo: cojo un folio, hago un esquema con lo que quiero que haga, en cada cosa abro llaves para decir que necesito para que haga eso, y luego intento imaginarlo escrito en código. De momento no me ha ido mal.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.