Skip to content

Commit fd61fd7

Browse files
committed
fix(content:cargo): move positions of topics
1 parent 8966417 commit fd61fd7

File tree

4 files changed

+0
-66
lines changed

4 files changed

+0
-66
lines changed

content/4.cargo/1.format.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ Una de las mayores fortalezas de Rust es su énfasis en la claridad y legibilida
1616

1717
En este artículo, exploraremos cómo usar `cargo fmt` para formatear tu código, configurarlo según tus necesidades, y automatizar su uso en pipelines como GitHub Actions y GitLab CI/CD. Además, explicaremos cómo instalarlo en caso de que no esté disponible en tu entorno.
1818

19-
---
20-
2119
### ¿Qué es `cargo fmt` y por qué es útil?
2220

2321
`cargo fmt` es el comando de Cargo que ejecuta `rustfmt`, el formateador oficial de Rust. Esta herramienta reformatea tu código siguiendo las convenciones oficiales de estilo de Rust, lo que asegura:
@@ -28,8 +26,6 @@ En este artículo, exploraremos cómo usar `cargo fmt` para formatear tu código
2826

2927
Además, es particularmente útil en entornos colaborativos y automatizaciones, como pipelines de integración continua (CI), donde puedes validar automáticamente que el código esté correctamente formateado antes de aceptar cambios.
3028

31-
---
32-
3329
### Instalación y Configuración Inicial
3430

3531
#### Instalación de `rustfmt`
@@ -52,8 +48,6 @@ cargo fmt --version
5248

5349
Esto debería mostrar la versión instalada de `rustfmt`.
5450

55-
---
56-
5751
### Uso Básico de `cargo fmt`
5852

5953
Para formatear todo tu proyecto, simplemente ejecuta:
@@ -70,8 +64,6 @@ cargo fmt --check
7064

7165
El modo `--check` es especialmente útil en pipelines de CI para validar que el código esté correctamente formateado antes de fusionar cambios.
7266

73-
---
74-
7567
### Configuración de `rustfmt`
7668

7769
Puedes personalizar `rustfmt` mediante un archivo de configuración llamado `rustfmt.toml`. Este archivo puede colocarse en la raíz de tu proyecto y permite ajustar varias opciones de estilo.
@@ -97,8 +89,6 @@ config-path = "rustfmt.toml"
9789

9890
Esto garantiza que `cargo fmt` use la configuración personalizada, incluso si el archivo `rustfmt.toml` está en una ubicación no estándar.
9991

100-
---
101-
10292
### Integración de `cargo fmt` en Pipelines de CI
10393

10494
#### Usando GitHub Actions
@@ -157,8 +147,6 @@ format_check:
157147
158148
Este trabajo valida el formato en los cambios propuestos (merge requests) y en la rama principal.
159149
160-
---
161-
162150
### Buenas Prácticas y Recomendaciones
163151
164152
1. **Formatea antes de hacer commits:** Integra `cargo fmt` en tus hooks de pre-commit con herramientas como [pre-commit](https://pre-commit.com/). Esto asegura que todos los commits tengan un formato limpio.
@@ -169,8 +157,6 @@ Este trabajo valida el formato en los cambios propuestos (merge requests) y en l
169157

170158
4. **Evita excepciones innecesarias:** Aunque puedes personalizar el formato, es mejor adherirse a las reglas predeterminadas, ya que son el estándar en la comunidad Rust.
171159

172-
---
173-
174160
### Conclusión
175161

176162
`cargo fmt` es una herramienta esencial en el ecosistema Rust para garantizar un código limpio, legible y consistente. Su facilidad de uso, combinada con la capacidad de personalización y la integración en pipelines, lo hace indispensable para proyectos de cualquier escala. A medida que trabajes en proyectos colaborativos, adoptar `cargo fmt` no solo te ahorrará tiempo, sino que también mejorará la calidad general del código. ¡Haz que `cargo fmt` sea parte de tu flujo de trabajo y lleva tus proyectos al siguiente nivel! 🚀

content/4.cargo/2.modules.md

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ data:
1616

1717
Cuando desarrollamos en Rust, mantener el código organizado es esencial para la escalabilidad y la mantenibilidad. Rust ofrece un sistema de módulos flexible que nos ayuda a dividir el código en componentes más manejables. En este artículo exploraremos cómo crear y gestionar módulos, controlar su visibilidad, y estructurar proyectos de manera eficiente, abordando las prácticas más recomendadas en la comunidad.
1818

19-
---
20-
2119
## Introducción a los módulos
2220

2321
Los módulos en Rust agrupan código relacionado bajo un espacio de nombres, permitiendo:
@@ -28,8 +26,6 @@ Los módulos en Rust agrupan código relacionado bajo un espacio de nombres, per
2826

2927
Un módulo puede contener funciones, estructuras, enumeraciones, constantes e incluso otros módulos.
3028

31-
---
32-
3329
## Crear y gestionar módulos
3430

3531
### Módulos en el mismo archivo
@@ -98,8 +94,6 @@ pub mod add;
9894
pub mod multiply;
9995
```
10096

101-
---
102-
10397
## Control de visibilidad
10498

10599
Por defecto, los módulos y sus elementos son privados. Para hacerlos accesibles, usa `pub`.
@@ -128,8 +122,6 @@ fn main() {
128122
}
129123
```
130124

131-
---
132-
133125
## Estructuración recomendada para proyectos Rust
134126

135127
La organización de un proyecto depende de su propósito. Aquí hay patrones comunes:
@@ -222,8 +214,6 @@ src/
222214
└── tool2.rs
223215
```
224216

225-
---
226-
227217
## Puntos de entrada: `main.rs` y `lib.rs`
228218

229219
### `main.rs`
@@ -256,24 +246,18 @@ fn main() {
256246
}
257247
```
258248

259-
---
260-
261249
## Buenas prácticas y convenciones
262250

263251
1. **Divide y vencerás:** Usa módulos para separar responsabilidades.
264252
2. **Restricción de visibilidad:** Haz públicos solo los elementos necesarios.
265253
3. **Nombres consistentes:** Usa nombres descriptivos para módulos y archivos.
266254
4. **Centraliza lo común:** Mueve funciones reutilizables a `lib.rs`.
267255

268-
---
269-
270256
## Configuraciones adicionales para módulos
271257

272258
- **Agrupación lógica:** Usa directorios para módulos con múltiples submódulos.
273259
- **Macros compartidas:** Crea un módulo separado para macros reutilizables, por ejemplo, `src/macros.rs`.
274260

275-
---
276-
277261
## Conclusión
278262

279263
Organizar proyectos con módulos en Rust no solo mejora la claridad del código, sino que también facilita su escalabilidad. Ya sea que trabajes en un ejecutable, una biblioteca o ambos, seguir estas prácticas te ayudará a mantener un código limpio, reutilizable y fácil de entender. ¡Experimenta con estas técnicas y lleva tus proyectos al siguiente nivel! 🚀

content/4.cargo/3.workspaces.md

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ data:
1515

1616
A medida que los proyectos en Rust crecen, mantenerlos organizados y eficientes puede volverse un desafío. Aquí es donde los **workspaces** entran en juego. Un workspace te permite gestionar múltiples crates en un mismo proyecto, promoviendo la modularidad, el rendimiento y la mantenibilidad. En este artículo, exploraremos cómo estructurar y aprovechar al máximo los workspaces en Rust.
1717

18-
---
19-
2018
## ¿Qué es un workspace?
2119

2220
Un workspace en Rust es un grupo de crates que comparten configuraciones y dependencias comunes. Los workspaces permiten:
@@ -25,8 +23,6 @@ Un workspace en Rust es un grupo de crates que comparten configuraciones y depen
2523
- **Eficiencia en la compilación:** Aprovecha la compilación incremental para crates compartidos.
2624
- **Gestión centralizada:** Simplifica la administración de dependencias y configuraciones.
2725

28-
---
29-
3026
## Estructura típica de un workspace
3127

3228
Un workspace suele tener una estructura similar a esta:
@@ -56,8 +52,6 @@ my_project/
5652
2. **Directorio `crates/`:** Es una convención común agrupar los crates dentro de un subdirectorio. No es obligatorio, pero mejora la organización.
5753
3. **Subcrates:** Cada crate tiene su propio `Cargo.toml` y código fuente en `src/`.
5854

59-
---
60-
6155
## Configuración de un workspace
6256

6357
### Archivo `Cargo.toml` raíz
@@ -85,8 +79,6 @@ log = "0.4"
8579

8680
Esto hace que todas las crates del workspace tengan acceso a estas dependencias sin necesidad de declararlas individualmente.
8781

88-
---
89-
9082
## ¿Cuándo dividir un proyecto en workspaces?
9183

9284
Separar un proyecto en múltiples crates dentro de un workspace tiene sentido cuando:
@@ -96,8 +88,6 @@ Separar un proyecto en múltiples crates dentro de un workspace tiene sentido cu
9688
3. **Diferentes responsabilidades:** Por ejemplo, separar el frontend y el backend de una aplicación.
9789
4. **Optimización de la compilación:** Dividir un proyecto en crates permite que solo las partes modificadas se recompilen.
9890

99-
---
100-
10191
## Mejores prácticas para organizar workspaces
10292

10393
### 1. Usa la convención `crates/`
@@ -123,8 +113,6 @@ pub use log::*;
123113

124114
Esto reduce la duplicación y mejora el tiempo de compilación.
125115

126-
---
127-
128116
## Gestión de dependencias compartidas
129117

130118
### Usar `[workspace.dependencies]`
@@ -148,8 +136,6 @@ authors = ["Tu Nombre"]
148136
license = "MIT"
149137
```
150138

151-
---
152-
153139
## Comandos comunes en un workspace
154140

155141
### 1. Afectar un crate específico
@@ -188,8 +174,6 @@ Si el workspace contiene múltiples ejecutables, selecciona cuál ejecutar:
188174
cargo run -p crate_c
189175
```
190176

191-
---
192-
193177
## Automatización y pruebas en workspaces
194178

195179
### Pruebas
@@ -215,8 +199,6 @@ cargo bench
215199
cargo bench -p crate_b
216200
```
217201

218-
---
219-
220202
## Conclusión
221203

222204
Los workspaces de Rust son una herramienta poderosa para organizar y gestionar proyectos grandes y complejos. Adoptar estrategias como la reutilización de código modular, el uso de dependencias compartidas y la separación lógica de responsabilidades no solo mejora la mantenibilidad, sino que también optimiza los tiempos de compilación y la claridad del proyecto. Con una buena planificación, los workspaces pueden ser el pilar de cualquier proyecto Rust escalable y eficiente.

content/4.cargo/index.md

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ data:
1919

2020
Una de las razones por las que Rust se ha convertido en un lenguaje popular es su ecosistema robusto y bien integrado. En el corazón de este ecosistema está **Cargo**, la herramienta oficial para gestionar proyectos en Rust. Cargo no solo se encarga de la construcción de tus proyectos, sino también de la gestión de dependencias, pruebas, y mucho más. Este artículo explora los comandos y características más importantes de Cargo, ayudándote a aprovechar al máximo esta poderosa herramienta.
2121

22-
---
23-
2422
### ¿Qué es Cargo?
2523

2624
Cargo es el administrador de paquetes y herramienta de construcción para Rust. Es comparable a herramientas como `npm` en JavaScript o `pip` en Python, pero con un alcance más amplio. Cargo simplifica tareas esenciales como:
@@ -33,8 +31,6 @@ Cargo es el administrador de paquetes y herramienta de construcción para Rust.
3331

3432
Cuando inicias un proyecto en Rust con `cargo new`, Cargo crea una estructura de directorios estándar que incluye un archivo llamado `Cargo.toml`. Este archivo es el corazón de la configuración del proyecto, donde defines tus dependencias, características, y opciones de compilación.
3533

36-
---
37-
3834
### Construcción de Proyectos con `cargo build`
3935

4036
El comando más básico es `cargo build`, que compila tu proyecto. Al ejecutarlo, Cargo genera los binarios en el directorio `target/debug` por defecto. Si necesitas una compilación optimizada para producción, puedes usar la opción `--release`:
@@ -45,8 +41,6 @@ cargo build --release
4541

4642
Esto genera el binario en `target/release` con optimizaciones avanzadas, pero a costa de tiempos de compilación más largos. Es ideal para el código que se ejecutará en entornos de producción.
4743

48-
---
49-
5044
### Agregando y Eliminando Dependencias
5145

5246
Una de las características más útiles de Cargo es la facilidad con la que puedes manejar dependencias. Con el comando `cargo add` del plugin [cargo-edit](https://github.com/killercup/cargo-edit), puedes agregar dependencias rápidamente:
@@ -79,8 +73,6 @@ cargo remove serde
7973

8074
Esto actualiza automáticamente tu `Cargo.toml` y elimina la dependencia.
8175

82-
---
83-
8476
### Pruebas con `cargo test`
8577

8678
Rust incorpora un sistema de pruebas potente, y Cargo facilita ejecutarlas con `cargo test`. Este comando compila y ejecuta las pruebas definidas en tu proyecto, incluyendo las funciones marcadas con `#[test]`. Cargo incluso configura un entorno de pruebas especial para garantizar consistencia.
@@ -97,8 +89,6 @@ Si necesitas pruebas más detalladas, puedes usar la opción `--nocapture` para
9789
cargo test -- --nocapture
9890
```
9991

100-
---
101-
10292
### Benchmarks con `cargo bench`
10393

10494
Rust también soporta benchmarking, aunque esta funcionalidad requiere habilitar el feature `bench` en el archivo `Cargo.toml`. Una vez configurado, puedes usar:
@@ -109,8 +99,6 @@ cargo bench
10999

110100
Esto ejecuta tus benchmarks usando la biblioteca estándar `test` y genera resultados detallados sobre el rendimiento.
111101

112-
---
113-
114102
### Características Avanzadas con Flags
115103

116104
Cargo incluye una serie de opciones para personalizar cómo se compila y configura tu proyecto. Algunas de las más útiles incluyen:
@@ -142,8 +130,6 @@ Cargo incluye una serie de opciones para personalizar cómo se compila y configu
142130

143131
Esto requiere la instalación del toolchain correspondiente con `rustup`.
144132

145-
---
146-
147133
### Más Allá de los Comandos Básicos
148134

149135
Además de los comandos principales, Cargo incluye otras herramientas que vale la pena explorar:
@@ -172,17 +158,13 @@ Además de los comandos principales, Cargo incluye otras herramientas que vale l
172158
cargo check
173159
```
174160

175-
---
176-
177161
### Recomendaciones y Consejos
178162

179163
1. **Organiza tus dependencias:** Usa `[dependencies]`, `[dev-dependencies]` y `[build-dependencies]` adecuadamente para mantener un `Cargo.toml` limpio y claro.
180164
2. **Habilita solo las características necesarias:** Minimiza el uso de características opcionales para reducir el tamaño del binario y mejorar los tiempos de compilación.
181165
3. **Prueba siempre con `--release`:** Antes de desplegar, verifica que tu proyecto funciona correctamente en modo optimizado.
182166
4. **Explora las herramientas de la comunidad:** Crates como `cargo-watch` pueden mejorar tu flujo de trabajo al reconstruir automáticamente tu proyecto cuando detecta cambios.
183167

184-
---
185-
186168
### Conclusión
187169

188170
Cargo no es solo una herramienta; es el eje central del desarrollo en Rust. Desde la gestión de dependencias hasta la construcción de proyectos optimizados, Cargo simplifica y potencia tu flujo de trabajo. Conocer sus comandos y opciones avanzadas te permitirá aprovechar al máximo el ecosistema Rust, escribiendo código más eficiente, seguro y fácil de mantener. ¡Explora las posibilidades que Cargo tiene para ofrecer y haz que tus proyectos brillen! 🚀

0 commit comments

Comments
 (0)