Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
code:best-practices [2010/07/06 05:56] alfred |
— (actual) | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Codificando ====== | ||
| - | Conceptos que hay que tener en cuenta a la hora de programar. | ||
| - | |||
| - | ===== Programación declarativa ===== | ||
| - | El código imperativo describe **cómo** se hace algo, mientras el declarativo describe **qué** se está haciendo. \\ | ||
| - | La programación declarativa expresa la lógica sin describir un flujo (if, bucles...). \\ \\ | ||
| - | |||
| - | El código siguiente es imperativo: | ||
| - | <code csharp> | ||
| - | using System; | ||
| - | class Example | ||
| - | { | ||
| - | static void Main() | ||
| - | { | ||
| - | Int32 sum = 0; | ||
| - | for (Int32 i = 0; i < 100; i++) | ||
| - | { | ||
| - | if (i % 2 == 0) | ||
| - | { | ||
| - | sum += i; | ||
| - | } | ||
| - | } | ||
| - | Console.WriteLine(sum); | ||
| - | } | ||
| - | } | ||
| - | </code> | ||
| - | Su equivalente declarativo sería: | ||
| - | <code csharp> | ||
| - | using System; | ||
| - | using System.Linq; | ||
| - | |||
| - | class Example | ||
| - | { | ||
| - | static void Main() | ||
| - | { | ||
| - | Int32 sum = Enumerable.Range(0, 99) | ||
| - | .Where(i => i % 2 == 0) | ||
| - | .Sum(); | ||
| - | Console.WriteLine(sum); | ||
| - | } | ||
| - | } | ||
| - | </code> | ||
| - | O con un grado declarativo mayor: | ||
| - | <code csharp> | ||
| - | using System; | ||
| - | using System.Linq; | ||
| - | |||
| - | class Example | ||
| - | { | ||
| - | static void Main() | ||
| - | { | ||
| - | Int32 sum = Enumerable.Range(0, 99) | ||
| - | .Where(isEven) | ||
| - | .Sum(); | ||
| - | Console.WriteLine(sum); | ||
| - | } | ||
| - | static Boolean isEven(Int32 number) | ||
| - | { | ||
| - | return number % 2 == 0; | ||
| - | } | ||
| - | } | ||
| - | </code> | ||