¿Dónde es útil el conocimiento de las estructuras de datos en Swift?

Una mejor pregunta es “¿Cuándo es útil el conocimiento de las estructuras de datos en el desarrollo de software?” No hay nada especial en las estructuras de datos y Swift. Las bibliotecas que se usan en Swift o en Objective C son los SDK de iOS o macOS. Tienen implementadas varias estructuras de datos como clases para su uso.

Hay matrices, diccionarios, cadenas, conjuntos, estructuras y búferes. Y todas sus clases de apoyo también. Estos se pueden usar en Swift para que no pierda su tiempo reimplementándolos para cada proyecto con la sobrecarga y los errores de eso.

Pero eso no significa que no tenga que escribir el suyo a veces. O tenga en cuenta cómo funcionan los estándares para que pueda usarlos bien. Además, las estructuras de datos estándar son las simples que utiliza para construir las estructuras complejas que necesita en su aplicación particular.

Un ejemplo podría ser una aplicación de comunicaciones en la que mantenga un diccionario interno de las personas con las que su usuario quiera contactar. Desea tener su información y perfil fácilmente disponibles, pero también desea minimizar su uso de memoria. Una lista de usuarios mantenida en orden de uso más reciente sería útil para eso.

Para ser un desarrollador avanzado o experto, debe conocer las estructuras de datos.

Bueno, obtienes algunas estructuras de datos gratis, matrices, listas y tablas hash. No necesitarás escribirlos. Sin embargo, conocer sus características de rendimiento es muy útil.

Si termina necesitando algo así como una estructura de datos ordenada con acceso aleatorio rápido e inserción / eliminación rápidas, encontrará que ninguna de las bibliotecas estándar de Swift le ofrece una.

Por lo tanto, puede terminar codificando un árbol rojo-negro, o un árbol AVL, o una lista K, o un árbol B + o algo así.

Swift tampoco tiene una cola prioritaria, por lo que si necesita una, “necesitará” escribir una.

¿Necesita una estructura indexada espacial 2D o 3D? Escribe uno.

Por otro lado, puede hacer MUCHO con matrices, mapas hash y listas … y se proporcionan todos.

Bueno, ¿no usas conjuntos o diccionarios en tus programas Swift? Son una implementación de algunas Estructuras de datos básicas en el SDK de Swift, por lo que es posible que aún desconozca el uso de estas estructuras de datos básicas, pero no directamente.

Cuando desee escalar la aplicación en la que está trabajando, deberá usar algoritmos y estructuras de datos. Si no está tratando con la escala en la aplicación en la que está trabajando, nunca sentirá la necesidad de optimizar su código y, por lo tanto, nunca necesitará aprender o usar estructuras de datos.

Por ejemplo, diga si tiene datos como, por ejemplo, conexiones de redes sociales. Por lo tanto, para poder buscar rápidamente amigos para una cuenta de usuario, necesitará organizar sus datos de usuarios de redes sociales de tal manera que este tipo de operación no requiera mucho tiempo. Entonces, si organiza su red social, digamos en un Gráfico, que es una especialización de la Estructura de Datos de Árbol, entonces la operación de búsqueda de todos los amigos de amigos para decir Mr X en la red social no será tan lenta como la búsqueda por lo mismo, dentro de una secuencia plana de datos de usuario.

Las estructuras de datos y los algoritmos lo convierten en un mejor desarrollador de software y, en general, lo desarrollan para ser más inteligente de lo que es todos los días. En Swift, no escribirá una cola o un árbol AVL, sin embargo, no le limita a escribir una de sus propias estructuras de datos si tiene algún caso de uso. Github es tu amigo cuando se trata de estructuras de datos en Swift.

Esperaría que las estructuras de datos como matrices o tablas hash se usarían en Swift de la misma manera que en cualquier otro idioma. Quizás si está realizando un gran desarrollo front-end no se ha encontrado con mucha necesidad todavía.

No he leído el libro que mencionas, así que no puedo comentarlo. Lo siento.