"Expresa la l贸gica con verbos."

-- 鉁嶏笍 Quien lo vaya a leer

馃寗 Objetivo: Claridad

Desarrollamos programas para procesar datos, para manipularlos de alguna manera, aunque s贸lo sea almacenarlos para recuperarlos mas tarde. Esas son las acciones que nos encomiendan a los desarrolladores profesionales: guarda, recupera y manipula esta informaci贸n.

Mostrar la INTENCI脫N

As铆 que los programadores profesionales hacemos lo que nos dicen y trasladamos esos deseos humanos a 贸rdenes procesables. Pero de tal forma que la intenci贸n de los programadores quede meridianamente clara.

馃彮 Explica lo que vas a hacer.

Para trabajar con las variables creadas emplearemos instrucciones. Seg煤n el lenguaje y paradigma usados las agruparemos en bloques l贸gicos que pueden llamarse, procedimientos, m茅todos, rutinas o funciones.

Lo importante es el nombre que le damos esos bloques. Porque ser谩 ah铆 d贸nde mostremos nuestra intenci贸n al escribir instrucciones para el ordenador.

Una responsabilidad fundamental al programar es nombrar extraordinariamente bien las funciones, m茅todos, o procedimientos de tus desarrollos. Sin excusas.

驴Y qu茅 significa hacerlo bien? Pues consiste en dar un verbo que explique claramente lo que se va a realizar en cada caso. Para que esto no se quede en una gu铆a de buenas intenciones, tengo al intenci贸n de darte unos consejos que te sirvan de gu铆a.

Gu铆a para nombrar funciones / m茅todos / rutinas / procedimientos

馃懏 Obligatorio emplear siempre verbos que indiquen una acci贸n.

// 馃あ qu茅 hace este m茅todo?
order.client(client);// 馃崑  al comenzar por un verbo queda claro
order.setClient(client);

馃摐 Para que se lea como una historia.

// 馃あ Evita las abreviaturas:const client = clients.new(name, taxId);
order.client(client);// 馃崑 Usa siempre su versi贸n completaconst client = clients.create(name, taxId);
order.setClient(client);

馃毄 Cortos y concretos en flags

is, has, can, must

// 馃あ esto no es agradable de leerif (client.pendingOrders()) {}// 馃崑 facilita la lectura de las condicionesif (client.hasPendingOrders()) {}

馃懏 Define listas permitidas para acciones comunes

  • Vocabulario para relaciones y acciones.

  • Define listas permitidas para acciones comunes.

  • get | set - read | write - select | insert

// 馃あ no mezcles
clients.select();
clients.post();
orders.read();// 馃崑 usa simpre el mismo tipo de verbos
clients.select();
clients.insert();
orders.select();

馃巰 Clarifica a帽adiendo sustantivos, adverbios o preposiciones.

// 馃あ Evita las sobrecargas:const client = clients.select(name);const client = clients.select(name, country);// 馃崑 No te cobran por caracterconst client = clients.selectByName(name);const client = clients.selectByNameAndCountry(name, country);

馃挱 Piensa en mi

馃槻 No me sorprendas

馃 No me hagas pensar