¿Por qué los String son Inmutables? El String Intern Pool

En la programación es común que se nos indique que todas las variables de tipo String son inmutables, pero pocas veces se nos explica el ¿Por qué? de esto.

En la programación es común que se nos indique que todas las variables de tipo String son inmutables, pero pocas veces se nos explica el ¿Por qué? de esto.

Desde los inicios de la creación de los lenguajes de programación de alto nivel, es decir, en los años 50s, se detecto la gran problemática que traería la comparativa de variables de tipo cadena, ya que para comparar si 2 String son iguales, se necesitaba de algoritmos de O(n), es decir, algoritmos que tardarían dependiendo el numero de caracteres que tuviera tu variable de tipo String.

A parte, cuando se guarda una variable String, esta se distribuye por la memoria en distintas direcciones, por lo cual, se agrega un nivel extra de rendimiento.

En los años 60s se opto por utilizar un mecanismo el cual guardará los String distintos y solo asignarle la dirección de memoria a la variable de este tipo, de esta manera, al comparar 2 String, solo se compararía si correspondían a la misma dirección de memoria o no. Este mecanismo es llamado String Intern Pool.

El String Intern Pool es utilizado por la mayoría de lenguajes de programación más utilizados, como es el caso de C#, Python, Java y PHP.

A continuación te explico más a fondo de que va este concepto:

IA Debatiendo Consigo Misma

En el siguiente video he puesto a ChatGPT a debatir consigo mismo sobre cualquier tema.

En el siguiente video he puesto a ChatGPT a debatir consigo mismo sobre cualquier tema.

Puedes ver mucho contenido GRATIS de Programación en mi canal, da clic para suscribirte.

Lo he programado en C# .NET, también en el video explico a paso como lo he logrado.

Roadmap Programador Backend .NET

A continuación te pondré una ruta de conceptos explicados en videos GRATIS los cuales pueden apoyarte en el aprendizaje para ser Programador Backend en tecnología .NET.

Un Roadmap es una sugerencia de ruta de conceptos a aprender para un fin, y este como todo Roadmap debe tomarse como sugerencia.

A continuación te pondré una ruta de conceptos explicados en videos GRATIS los cuales pueden apoyarte en el aprendizaje para ser Programador Backend en tecnología .NET.

Puedes suscribirte a mi canal de Youtube donde comparto mucho contenido de Programación semanalmente.

1. Lo primero es hacer la instalación de las herramientas, y la herramienta que recomiendo es Visual Studio 2022.

2. Una vez instalada la herramienta, vamos a proceder a aprender el Lenguaje de Programación principal de .NET, el cual es C#, a continuación puedes ver 15 videos donde se abordan los fundamentos obligados a aprender de este lenguaje de Programación.

3. El siguiente paso es entender que es lo que hace un programador backend, y aquí te explico los conceptos base para poder irte adentrando.

4. Para trabajar como programador Backend, es útil comprender SQL, en el caso de .NET lo más común es trabajar con el gestor de bases de datos SQL Server, a continuación te adjunto un curso de SQL Server orientado a Novatos.

5. Para trabajar con .NET y SQL Server, lo más común es trabajar con la ayuda de un ORM, un ORM es un mapeador de bases de datos relacionales con el cual podrás trabajar de con objetos para realizar consultas, en este video te explico como utilizar Entity Framework, el cual es el ORM más utilizado en .NET.

6. Para trabajar con colecciones en C# tenemos una extensión del lenguaje llamada LINQ, con la cual podremos trabajar de manera declarativa, en este video te doy los conceptos básicos de LINQ.

7. En la programación es útil trabajar con pruebas unitarias, y en el backend no esta demás aprender de esto, ya que puede ser un diferenciador a la hora de ir a una entrevista de trabajo.

8. La seguridad es parte esencial en el backend, existe un estándar el cual se llama OWASP TOP 10 el cual nos indica los 10 puntos principales en los que tenemos que centrarnos a la hora de manejar la seguridad en nuestras aplicaciones, en el siguiente video te explico los 10 puntos.

9. En Backend en algunas situaciones tendremos que trabajar con tareas en tiempo real, en el siguiente video te explico SignalR, una tecnología que no servirá para este tipo de requerimientos.

10. Las tareas en segundo plano son parte importante en el Backend, tareas que se ejecuten en segundo plano nos pueden servir en situaciones donde un proceso tiene que comenzar por si solo. Con los Hosted Service en .NET podemos manejarlo.

Sobrecarga de operadores en C# .NET

La sobrecarga de operadores nos permite darle funcionalidad a los operadores respecto a un tipo que nosotros creamos, siendo tipo un struct o una clase.

La sobrecarga de operadores nos permite darle funcionalidad a los operadores respecto a un tipo que nosotros creamos, siendo tipo un struct o una clase.

En el siguiente video te muestro de que va esta funcionalidad y como puedes hacer cosas interesantes con esto.

Tareas en Segundo Plano en Programación Backend

Cuando estamos programando backend, no siempre toda respuesta es inmediata, algunas tareas tomaran más tiempo o recursos y hay que administrar estos procesos, para tener un sistema que no se sobrecargue o para tener respuestas mas practicas a el cliente (frontend, app) que nos solicita.

Cuando estamos programando backend, no siempre toda respuesta es inmediata, algunas tareas tomaran más tiempo o recursos y hay que administrar estos procesos, para tener un sistema que no se sobrecargue o para tener respuestas mas practicas a el cliente (frontend, app) que nos solicita.

Las tareas en segundo plano son tareas que corren en un proceso separado al de nuestra API.

En el siguiente video te mostrare un ejemplo en C# añadido a un proyecto en ASP.NET.

¿Deseas trabajo remoto? En el siguiente enlace puedes ver más información: https://talently.tech/r/?code=0QKWEG

Mutex en C# .NET

Mutex o exclusión mutua sirve cuando estamos haciendo programación concurrente.

Mutex o exclusión mutua sirve cuando estamos haciendo programación concurrente.

Uno de los problemas que nos enfrentamos al trabajar con hilos es cuando estos deben compartir un recurso que tiene una sección critica la cual debe tomarse 1 a la vez.

Es aquí donde entra Mutex a resolvernos el problema.

En el siguiente video te muestro de que va Mutex, y como puedes utilizarlo en C#.