2010-03-19 14 views
11

¿Es posible utilizar los resultados de los estudios realizados en el aprendizaje humano para identificar cómo se pueden diseñar los códigos para mejorar la comprensión?¿Qué técnicas de aprendizaje humano se pueden aplicar para mejorar el diseño del código?

Las guerras de diseño de código casi siempre terminan defendiendo la consistencia y el estilo prevaleciente, pero ¿podría haber formas de diseñar código que sean probablemente mejores que otras?

+0

Suena como aquellas preguntas vienen directamente de su libro de estudio:) – Younes

+1

Lo tomaré como un cumplido :) –

Respuesta

2

¿Podría haber formas de diseñar códigos que sean probablemente mejores que otras?

Sí. Este problema fue estudiado ampliamente en la década de 1980. Se podía leer todos los detalles :-)
Una buena biblioteca universitaria debe tener Human Factors and Typography for More Readable Programs por Ronald M. Baecker y Aaron Marcus, publicado por Addison-Wesley en 1990.

+0

Curiosamente, mi carné universitario dejó de funcionar en los años 80. Por la popularidad del libro, no parece que muchas de las ideas lo hayan convertido en uso general. ¿Conoces alguna? –

+0

@David: Mi copia está en el trabajo, y estoy de vacaciones. Todo lo que puedo decir es que con el advenimiento de HTML, usar fuentes en el código es más popular que nunca, y apuesto a que los hackers están sacando cosas por la ventana. A nadie le importa la ciencia. Con respecto a la tarjeta de la biblioteca: hasta que no se arregle su tarjeta defectuosa, muchas bibliotecas públicas pueden obtener material para usted en préstamo interbibliotecario. –

0

Creo que esto se reduce a las preferencias personales. Prefiero tener muy poca taquigrafía en mis códigos, creo que es la mejor manera de comprender lo que sucede dentro de mis códigos sin tener que recordar en qué orden funciona la taquigrafía, tal vez mi memoria sea mala.

Posiblemente sería una buena idea utilizar tales estudios, por ejemplo, en una clase de estudiantes que aprenden a hacer códigos de la misma manera, pero cada uno desarrolla su propia forma de codificación después de un tiempo. Ya existen "formas probadamente mejores" según lo establecido por las sugerencias de mejores prácticas para cada idioma.

Interesante pregunta.

4

¿Qué es Código Disposición para usted?

Por un lado, hay estas cosas malvadas llamadas convenciones de codificación, que colocan a todos en un corsé. Detesto estos y creo que estamos muy retrasados ​​para eliminarlos. Podemos analizar el código y no lo entiendo, ¿por qué nuestros IDEs aún muestran código basado en el mismo formato de texto en el que está almacenado? ¿Qué es tan difícil al permitir que cada usuario configure sus preposiciones de diseño y el IDE muestra todo el código fuente en consecuencia? La mayoría de los IDE ofrecen algún tipo de opción de formato automático, sin embargo, a menudo no se puede personalizar la forma en que funciona.

Sin embargo, un enfoque mucho más interesante es si nuestro punto de vista actual sobre el código fuente es adecuado para el aprendizaje en absoluto. Los proyectos como Code Bubbles son pioneros de una nueva manera allí. Y luego, por supuesto, tenemos enfoques basados ​​en modelos que a menudo son más accesibles desde el punto de vista del alumno.

Me temo que no hay una respuesta definitiva a esta pregunta. De hecho, si puede escribir una respuesta detallada, no olvide solicitar un doctorado;)

+0

"Burbuja de código". Parece muy interrelacionado. ¿Tenemos algo similar para .NET? –

0

El mayor problema para mí con la comprensión del código no es el diseño del código (sin embargo, el código debe formatearse de forma coherente) pero siguiendo el orden de ejecución. En el código fuente OO complejo, es difícil ver el código completo involucrado en la ejecución.

Creo que las funciones IDE pueden ayudar mucho para la comprensión del código. Para mí (como desarrollador de Java), las herramientas como la vista Call Hierarchy en Eclipse y Mylyn son muy útiles.

Una forma interesante (nueva) de entender el código se muestra en el Code Bubbles Project.

Espero más pasos en estas direcciones en el futuro.

0

Creo que la enseñanza de programación me puede haber dado alguna habilidad en esta área, porque para transmitir ideas a los estudiantes, debes mantener las cosas pequeñas, simples e introducir solo un concepto a la vez.

Sin embargo, como uno de mis colegas solían decir a sus alumnos:

Enseñanza es mi trabajo.
Aprendiendo es el tuyo.

Como eso se aplica a la programación, creo que es responsabilidad del programador para escribir el código con el fin de educar a otros sobre lo que él/ella está tratando de lograr, pero no existe un código que será claro a los lectores que no ponen esfuerzo

Cuestiones relacionadas