Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Swift
Code

8 nuevas formas de refactorizar tu código con Swift 4

by
Length:ShortLanguages:

Spanish (Español) translation by honeymmmm (you can also view the original English article)

Optimizing Swift 4

Swift es uno de los idiomas de más rápido crecimiento en la historia, debido a su elegancia, simplicidad y "seguridad por diseño". De hecho, el mantra oficial de Swift es "hacer que programar cosas simples sea fácil y que las cosas difíciles sean posibles". En esta publicación, aprenderá cómo usar Swift al máximo refacturando su código.

Si bien gran parte de la optimización del código es implícita y obviamente inherente al diseño del lenguaje, existen ciertas estrategias de refactorización que pueden hacer que su código sea más legible, más confiable y de mejor rendimiento. En este artículo, aprenderá ocho formas de refactorizar su código con Swift 4.

Objetivos de este artículo

En este artículo, aprenderá algunas formas de optimizar y refactorizar mejor su código con Swift 4. Cubriremos lo siguiente:

  1. manejando llaves duplicadas en diccionarios elegantemente con zip
  2. establecer valores predeterminados para diccionarios
  3. fusionando diccionarios en uno
  4. Filtrar los valores del diccionario de datos directamente en otro objeto de diccionario
  5. utilizando Codable para guardar objetos personalizados en JSON
  6. intercambiando valores en matrices mutables
  7. manejo de literales multilínea
  8. encontrar elementos aleatorios en una colección

1. Duplicar claves en diccionarios

Primero, Swift 4 mejora aún más los diccionarios con una forma elegante de manejar claves duplicadas usando la función genérica zip. zip funciona en más que solo diccionarios, y de hecho le permitirá construir un tipo de secuencia propio a partir de dos colecciones subyacentes que se ajusten a Sequence.

Por ejemplo, supongamos que tiene una matriz con los siguientes valores, tomando nota de dos elementos que contienen la misma clave:

Al usar zip, puede crear una secuencia de pares únicos:

Los elementos uniquingKeysWith en el código anterior le permiten crear valores únicos mediante el uso de un operador matemático. En este caso, usamos + para incrementar el valor cada vez que se encuentra una entrada duplicada. Por supuesto, también puede decidir emplear su propia lógica de incremento personalizada.

2. Valores predeterminados para diccionarios

Otra característica poderosa en Swift 4 es la capacidad de establecer valores predeterminados para diccionarios, utilizando un subíndice recién agregado. En el siguiente código, cuando accede al valor de una clave en el diccionario, el valor devuelto es un valor optional, que devolverá nil si la clave no existe:

Normalmente debería manejar la posibilidad de nil in valores opcionales, pero Swift 4 lo hace un poco más conveniente para usted, a través de un nuevo subíndice que le permite agregar parámetros predeterminados, en lugar de obligarlo a proteger o desenvolver los opcionales.

En este caso, dado que no tenemos una entrada para Nueva York en nuestra matriz inicial, devolverá el parámetro predeterminado de 0. También puede insertar un valor dinámico en lugar de un valor literal estático si es necesario, que sin duda crea una característica de subíndice mucho más poderosa.

3. Fusionando diccionarios

Swift 4 también facilita la fusión de dos diccionarios en uno mediante el uso de merge(_: uniquingKeysWith :). En el siguiente ejemplo, estamos fusionando el segundo diccionario en el primero, y mediante el uso del nuevo parámetro aprendido uniquingKeysWith, podemos asegurar que se manejarán los duplicados en caso de que ocurran:

En ausencia de esta función, normalmente debería atravesar manualmente todos los valores de un diccionario e implementar una lógica personalizada al fusionar dos diccionarios en uno.

4. Filtrar los valores del diccionario en otro diccionario

Además de combinar dos diccionarios, también puede filtrar dinámicamente un diccionario con los resultados dirigidos a otro diccionario del mismo tipo. En este siguiente fragmento de código, filtramos el diccionario de ubicaciones por un valor específico, que se devuelve como un diccionario:

Por lo tanto, más allá del simple filtrado, también puede utilizar el cierre filter para proporcionar filtros personalizados que culminarán en un nuevo resultado del diccionario.

5. Guarde objetos personalizados en JSON

Si alguna vez serializó (y deserializó) datos anteriormente, puede ser bastante complicado, ya que tiene que subclasificar clases con NSObject, así como implementar NSCoding. Con Swift 4, puede serializar de manera más eficiente sus clases mediante el uso de Codable. Esto es especialmente útil cuando desea continuar serializando un objeto personalizado suyo en un objeto JSON, ya sea para pasar a una API o incluso para persistir localmente usando UserDefaults:

Como puede ver, al configurar su clase o estructura en Codable, puede serializar fácilmente sus datos en JSON, persistir los datos en algún lugar y deserializarlos.

6. Intercambio de valores en matrices mutables

Pasando a las matrices, otra característica de bienvenida en Swift 4 es la capacidad de intercambiar dos valores directamente en matrices mutables, utilizando swapAt (_: _ :). Esto sería más útil para funciones tales como algoritmos de clasificación, y es extremadamente sencillo de usar:

Anteriormente, habría tenido que utilizar variables temporales para intercambiar entre dos ubicaciones de elementos, pero con este método, puede ordenar sus matrices de forma más concisa.

7. Manejo Literales Multi-Line

Otra buena adición a Swift 4 es la capacidad de almacenar literales de cadenas de múltiples líneas en sus valores, lo que hace que sea extremadamente fácil dividir su contenido literal para que sea más presentable. Mediante el uso de la notación """para abrir y cerrar el bloque de texto, puede crear contenido de varias líneas e incluso variables dinámicas de referencia, como se muestra a continuación cuando agregamos dinámicamente una fecha.

8. Elegir elementos aleatorios en una colección

Lo nuevo en Swift 4.2 es la capacidad de elegir elementos aleatorios en una colección con la función randomElement. De hecho, no solo las matrices, sino también cualquier objeto que cumpla con el protocolo Collection pueden hacer uso de esta ingeniosa función. El siguiente ejemplo usa nuestra matriz de ubicación e imprimirá una ciudad aleatoria de esa matriz:

Conclusión

En este artículo, aprendió algunas técnicas útiles que Swift 4 brinda para ayudar a crear un código más compacto, enfocado y optimizado. En su cuarta iteración, Swift ciertamente ha hecho grandes esfuerzos para ayudarlo a refactorizar su código para que sea más legible y confiable. Swift 4.x aún no está terminado, y lo aliento a que siga la página oficial de Swift Evolution para tomar nota de todas las nuevas propuestas que se van a discutir.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.