En esta ocasión hablaremos de cuatro formas de pensar para programar Javascript, con los enfoques o paradigmas de programación iterativo, recursivo, funcional y declarativo. Cada uno de ellos es tan distinto del otro que se les considera como paradigmas de programación separados, aunque esto no quiere decir que un experto no pueda usarlos unos con otros. Siempre es bueno conocer distintas formas de pensar y de resolver problemas.
Para mostrar las distintas formas de pensar, plantearemos el siguiente problema:
Dado un número n que es un entero positivo obtener todas las potencias de 2 desde el cero hasta el valor n y enlistarlas en un vector de resultados.
Este es el enfoque tradicional para programar en Javascript. Para el enfoque iterativo deberemos de desglosar el problema para realizarlo paso por paso. Las personas que resuelven el problema mediante este paradigma normalmente primero resuelven el problema con un planteamiento lógico-matemático y luego lo codifican. Este tipo de código es demasiado explícito, pero puede modelarse fácilmente con diagramas de flujo. Conceptos que puedes incluir estos programas de manera implícita podrían ser indices, máquinas de estados, condicionales, repetitivas, etc.
function powersOfTwo(n){
var result = [];
for (var i = 0; i <= n; i ) {
result.push(Math.pow(2, i));
}
return result;
} El enfoque recursivo es un enfoque que se centra en una mentalidad de que a veces es más fácil comprender una tarea repetitiva con mínimas variaciones que desglosarla en muchos pasos. Este tipo de programas suele ser bastante compacto pero muy poderoso si se tiene mucha RAM.
Este enfoque requiere un enfoque puramente algorítmico, las matemáticas usadas tienden a ser minimalistas y se basan mucho en el principio de inducción de las matemáticas discretas. Conceptos que podrían venir implícitos en este tipo de programas podrían ser, condición de paro, recursividad de dos pasos, inducción matemática, subrutinas, cortes, etc.
function powersOfTwo(n){
if(n==0){
return [1];
}else{
return powersOfTwo(n-1).concat(Math.pow(2,n));
}
} Este enfoque para programar en Javascript surge principalmente en EcmasCript 6 (¡Y lo aman todos los hipsters del código!). Para el enfoque funcional se necesita una mentalidad estrictamente matemática, y un razonamiento causal. Es un enfoque cada vez menos común debido a que se necesita una muy amplia capacidad de abstracción. Conceptos típicamente funcionales que normalmente vienen implícitos en este tipo de programas podrían ser generadores, iteradores, lambdas, etc.
powersOfTwo = n => [...Array(n - 1)].map((e, i) => Math.pow(2, i)); Este es el nuevo enfoque que se busca en la nueva versión EcmaScript 7 para programar en Javascript. Para este enfoque se necesita saber expresar que es lo que se quiere sin decir como se quiere que se haga. Este enfoque contiene al belleza de que es fácilmente entendible para quien lo lee, pero su implementación puede ocultar detalles como procesamiento asíncrono y optimizaciones. Algunos conceptos que podrían venir implícitos en este tipo de programas podrían ser backtracking, unificación, evaluación perezosa, modelo de datos, etc.
function powersOfTwo(n) {
return Array.from({length: n-1}, (e, i) => Math.pow(2,i));
} Te comparto aquí mis recomendaciones de cursos de Código Facilito. Codigofacilito.com es una plataforma virtual…
Te comparto aquí mis recomendaciones de cursos de Linkedin Learning. LinkedIn Learning es una plataforma…
Estos snippets de código para entrevista acerca de mockito espero te sean de mucha utilidad.…
En este tutorial aprenderá a usar expresiones regulares en Java de manera práctica para contar…
¿Entrevista de programación Java fullstack? No te preocupes, te tengo un compendio de preguntas de…
Te recomiendo algunos cursos de Udemy para mejorar tus softskills y así mejorar en tu…