¿Qué herramientas utilizáis para controlar la calidad de vuestro código?
!- Categoría: Herramientas y frameworks
Existen plugins para los diversos IDEs y herramientas externas que nos facilita seguir estas buenas prácticas o al menos advertirnos, por eso, en la Pregunta de la Semana de Genbeta Dev queremos saber qué herramientas utilizáis para controlar la calidad de vuestro código.
Ordenar por: Más útiles | Recientes | Cronológico
13 Respuestas
-
!
Karma: 8 (0 votos)
El plugin “Metrics” para eclipse.
Bastante completo y configurable.
-
!
Karma: 5 (0 votos)
Ndepend para Visual Studio. Altamente configurable y integrable al 100% en el VS.
-
!
e integrable…
-
!
Me acabo de de bajar el trial para probarlo tienes algún tutorial en español preferiblemente de como usarlo, se ve muy interesante.
-
!
Tutoriales en español no he utilizado pero en la propia página tienes abundante ayuda en inglés.
-
!
Karma: -32 (5 votos)
El sentido común. No tiene sentido seguir una serie de reglas al dedillo si no sabes el porqué de dichas reglas.
-
!
El sentido común es lo peor que se puede usar para medir la calidad! He visto tremendos agujeros de seguridad en mi proyecto solo porque el desarrollador uso su sentido comun! Hay que estudiar las reglas, conocerlas, aplicarlas y mantenerlas! Usar metricas, test unitarios, de integracion y de regresión, code reviews, todo lo que el tiempo permita para asegurarse que el codigo es bueno, optimo y mantenible..
-
!
“todo lo que el tiempo permita”
el tiempo suele permitir pocas cosas… XD
-
!
El sentido común es el menos común de los sentidos…
Difícil encontrar calidad con esta filosofía.
-
!
No tiene sentido seguir una serie de reglas al dedillo si no sabes el porqué de dichas reglas.
Nunca fuiste Junior?
-
!
mserranom, soy junior jajaja me toca seguir un mundo de reglas que ni para que o el porque? tienes toda la razon.
-
!
Pablo Rotondo: Una cosa es que no utilice tools para hacer métricas, y otra distinta es que no intente guardar un mínimo de calidad usando test unitarios, de regresión, revisiones de código, SCM... etcétera. Solo digo que no me fio de ninguna herramienta que me diga que por tener mas de 50 líneas, una función es mala.
Y si, he sido junior (no mucho tiempo) y las únicas métricas que he aplicado (me han enseñado) estaban 100% justificadas.
-
!
Karma: 23 (1 voto)
Test de integración: Cucumber o Spinach
Test de unidad: Rspec / Minitest
Otros: Pelusa -
!
Karma: 10 (3 votos)
Mi jefe, que para eso cobra más que yo :P
-
!
Karma: 5 (0 votos)
CodePro AnalytiX
https://developers.google.com/java-dev-tools/downl…
Un plugin para eclipse. Da un montón de métricas, gráficos, normas de estilo, de seguridad, calcula la complejidad ciclomática, hace tests, calcula código muerto y duplicado, etc, etc.
-
!
Karma: 20.5 (2 votos)
Nunca he utilizado ninguna, nadie me las ha explicado, y siempre he seguido mi ‘sentido común’ y unos buenos esquemas de clases.
Pero viendo los comentarios, me pondré a ello. Así que, ¿cual me aconsejáis? Programo en C# con VS y en C++ con Eclipse CDT.
-
!
Karma: 8 (0 votos)
La mujer del jefe es la que suele probar las webs y dicen si están bien o mal.
O el jefe, cuando tiene el día inspirado, también se echa al rollo
-
!
Karma: 5 (0 votos)
-
!
Karma: 5 (0 votos)
En la empresa que trabajo no utilizamos ninguna. Lo que hacemos es un gran ritual de pruebas antes de subir a producción, pero cuando nos aprieta el tiempo y el trabajo se revisa poco, además que esas revisiones no aseguran la calidad del código si no que la funcionalidad. Desarrollamos con PHP utilizando Netbeans sera que me recomiendan algún plugin o algo.
-
!
brillante
Karma: 95 (7 votos)
Yo desarrollo en Java.
1.-En primer lugar Eclipse bien configurado.
Como por ejemplo nos indica aquí Sanjeev Kumar.
https://sites.google.com/a/javagyan.com/javagyan/u…
Esto lo podemos acompañar del algún plugin que nos mire las métricas mientras desarrollamos tipo: CodePro AnalytiX
https://developers.google.com/java-dev-tools/downl…
Y terminaría la configuración del eclipse con un conjunto de templates que me faciliten la escritura de cierto tipo de estructuras habituales:
http://eclipse.dzone.com/news/effective-eclipse-cu…
2.-Un buen entorno de integración e inspección continua con Jenkins y Sonar.
http://jenkins-ci.org/
http://www.sonarsource.org/http://jbravomontero.wordpress.com/2012/02/18/ecos…
Y el Sonar enriquecido con los siguientes plugins:
-Timeline Plugin
-Useless Code Plugin
-SIG Maintainability Model Plugin
-Quality Index Plugin
-Technical Debt Pluginhttp://onlysoftware.wordpress.com/2012/01/01/51-so…
Aunque para gestionar la deuda técnica también este estupendo plugin COMERCIAL :-( que ayuda con la implementación de SQALE)
http://www.sonarsource.com/products/plugins/govern…
3.- Fomentar de “buen rollo” (no se puede ir diciendo este código es una mierda) entre los miembros del equipo las buenas prácticas.
Recomendando las lecturas de ciertos libros imprescindibles.
-Clean Code.
-The Pragmatic Programmer.
-Refactoring: Improving the Design of Existing Code
-En busca de la excelencia en el código.
(http://www.scrummanager.net/files/scrum_manager_ex…)
etc.Y reuniendonos de vez en cuando para analizar ciertas partes del código en equipo.
Reflejar esta información y las conclusiones en un Wiki.Fomentar cuando sea necesario:
-La programación por pares.
-Y siempre, siempre la revisión por pares. No dar por bueno un código hasta que otra persona no lo ha verificado en su máquina.4.- Un buen conjunto de test que nos quite el miedo a la refactorización cuando sea necesario.
Técnicas TDD, etc.
5.- Y dejar claro cosas como:
-Las prisas no justifican un mal código.
-Poco a poco, la deuda técnica se acumula en las zonas que ya estaban llenos de deuda.
-La programación puede ser divertida, también lo puede ser la criptografía, sin embargo es recomendable no combinarla.
-“¡No me importa si funciona en tu máquina! ¡No estamos vendiendo tu máquina!”.
-Codifica siempre como si la persona que finalmente mantendrá tu código fuera un psicópata violento que sabe dónde vives (Martin Golding).
-etcY muchas cosas más….............
Evidentemente he sido incapaz en los proyectos que he estado de implementar todas estas técnicas o teorías.. pero creo que el concepto esta claro y se podría resumir en estos puntos:
-Formación continua entre los miembros del equipo.
-Fomentar la premisa de buscar la excelencia en el código trabajando en equipo.
-No esconder la información y fomentar el compartirla.
-Fomentar un buen entorno de trabajo: Gamificación (http://vimeo.com/32435331)
-Y automatizar la generación e inspección del código. -
!
Completo y preciso
+1000
-
!
Una respuesta muy completa :)
-
!
Ains, quien tuviera un 5% de todo lo mencionado…
-
!
Muy ,muy completo…..
-
!
brillante
Karma: 65 (6 votos)
La verdad es que hay muchas herramientas y cada una se adapta a diferentes situaciones. En mi caso la que más me gusta es Sonar, pero si el proyecto no es muy grande y puedo llevar un control a más bajo nivel, me gusta Codepro AnalytiX, ya que ofrece datos menos “masticados” que Sonar.
Para quién esté interesado, unos listados de herramientas para controlar la calidad software:
-
!
Karma: 5 (0 votos)
Fortify y Sonar (checkstyle + PMD)