<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software on Kaisekukun</title><link>https://netguide.jp/es/tags/software/</link><description>Recent content in Software on Kaisekukun</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>Kaisekukun</copyright><lastBuildDate>Sun, 12 Jul 2026 00:11:25 +0900</lastBuildDate><atom:link href="https://netguide.jp/es/tags/software/index.xml" rel="self" type="application/rss+xml"/><item><title>Configuración de un entorno de desarrollo local con Docker</title><link>https://netguide.jp/es/software/docker-local-development/</link><pubDate>Sun, 21 Jun 2026 11:00:00 +0900</pubDate><guid>https://netguide.jp/es/software/docker-local-development/</guid><description>&lt;img src="https://netguide.jp/img/thumbnail/docker-local-development-es.png" alt="Featured image of post Configuración de un entorno de desarrollo local con Docker" /&gt;&lt;p&gt;&amp;ldquo;En mi máquina funciona&amp;rdquo; es una frase que todo desarrollador conoce muy bien. Docker resuelve esto empaquetando tu aplicación y sus dependencias en contenedores portátiles. Este artículo explica cómo configurar un entorno de desarrollo local con Docker.&lt;/p&gt;
&lt;h2 id="los-tres-conceptos-fundamentales"&gt;Los tres conceptos fundamentales
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dockerfile&lt;/strong&gt;: Un plano para tu contenedor — qué imagen base usar y qué instalar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;docker-compose.yml&lt;/strong&gt;: Un archivo de configuración para gestionar múltiples contenedores (servidor web, base de datos, caché, etc.) juntos.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Montaje de volumen&lt;/strong&gt;: Permite que el contenedor haga referencia a archivos en tu máquina host. Esencial para la recarga en caliente.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configuración-de-múltiples-servicios-con-docker-compose"&gt;Configuración de múltiples servicios con docker-compose
&lt;/h2&gt;&lt;p&gt;Una configuración típica de frontend + backend + base de datos se puede definir en un solo &lt;code&gt;docker-compose.yml&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Maximiza la eficiencia de codificación: Editores de código ligeros recomendados y personalización</title><link>https://netguide.jp/es/software/coding-efficiency-lightweight-editors/</link><pubDate>Thu, 18 Jun 2026 12:40:00 +0900</pubDate><guid>https://netguide.jp/es/software/coding-efficiency-lightweight-editors/</guid><description>&lt;img src="https://netguide.jp/img/thumbnail/coding-efficiency-lightweight-editors-es.png" alt="Featured image of post Maximiza la eficiencia de codificación: Editores de código ligeros recomendados y personalización" /&gt;&lt;p&gt;En el desarrollo de software moderno, la comodidad de tu espacio de trabajo impacta directamente en tu productividad. Aunque los Entornos de Desarrollo Integrados (IDE) con muchas funciones son muy convenientes, sus lentos tiempos de inicio y su alto consumo de memoria pueden ser frustrantes. Es por esto que muchos desarrolladores están recurriendo a &amp;ldquo;editores de código ligeros&amp;rdquo;: herramientas que se ejecutan increíblemente rápido y ofrecen la flexibilidad de agregar funciones según sea necesario.&lt;/p&gt;</description></item><item><title>Atajos de VS Code para potenciar tu productividad</title><link>https://netguide.jp/es/software/vscode-shortcuts-productivity/</link><pubDate>Tue, 26 May 2026 11:00:00 +0900</pubDate><guid>https://netguide.jp/es/software/vscode-shortcuts-productivity/</guid><description>&lt;img src="https://netguide.jp/img/thumbnail/vscode-shortcuts-productivity-es.png" alt="Featured image of post Atajos de VS Code para potenciar tu productividad" /&gt;&lt;p&gt;VS Code es altamente personalizable, pero simplemente aprender sus atajos de teclado integrados puede acelerar drásticamente tu codificación diaria. Este artículo cubre los atajos más esenciales y cómo personalizarlos a tu gusto.&lt;/p&gt;
&lt;h2 id="conceptos-básicos-imprescindibles"&gt;Conceptos básicos imprescindibles
&lt;/h2&gt;&lt;p&gt;Dominar estos atajos reducirá drásticamente la cantidad de veces que alcanzas el ratón:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Acción&lt;/th&gt;
					&lt;th&gt;Windows / Linux&lt;/th&gt;
					&lt;th&gt;macOS&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Paleta de comandos&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Ctrl+Shift+P&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Cmd+Shift+P&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Búsqueda rápida de archivos&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Ctrl+P&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Cmd+P&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Alternar barra lateral&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Ctrl+B&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Cmd+B&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Dividir editor&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Ctrl+\&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Cmd+\&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Alternar terminal&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Ctrl+`&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;Cmd+`&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="comienza-con-la-paleta-de-comandos"&gt;Comienza con la Paleta de comandos
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;Ctrl+Shift+P&lt;/code&gt; (o &lt;code&gt;Cmd+Shift+P&lt;/code&gt; en macOS) abre la Paleta de comandos, la puerta de entrada a todas las funciones de VS Code. Puedes guardar archivos, ejecutar formateadores, instalar extensiones y más sin tocar el ratón. Aprende esta primero.&lt;/p&gt;</description></item><item><title>Resumen rápido de las nuevas funciones de TypeScript</title><link>https://netguide.jp/es/software/typescript-new-features-summary/</link><pubDate>Sun, 01 Feb 2026 11:00:00 +0900</pubDate><guid>https://netguide.jp/es/software/typescript-new-features-summary/</guid><description>&lt;img src="https://netguide.jp/img/thumbnail/typescript-new-features-summary-es.png" alt="Featured image of post Resumen rápido de las nuevas funciones de TypeScript" /&gt;&lt;p&gt;La serie TypeScript 5.x ha introducido muchas características que fortalecen el sistema de tipos y mejoran la experiencia del desarrollador. Este artículo destaca las más útiles en la codificación diaria.&lt;/p&gt;
&lt;h2 id="parámetros-de-tipo-const-50"&gt;Parámetros de tipo const (5.0)
&lt;/h2&gt;&lt;p&gt;Agregar un modificador &lt;code&gt;const&lt;/code&gt; al parámetro de tipo de una función preserva los tipos literales al pasar valores.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;function&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;getConfig&lt;/span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;T&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;extends&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;readonly&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;string&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;[]&lt;/span&gt;&amp;gt;(&lt;span style="color:#a6e22e"&gt;keys&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;T&lt;/span&gt;)&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;T&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;keys&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Antes: inferido como string[]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;config1&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;getConfig&lt;/span&gt;([&lt;span style="color:#e6db74"&gt;&amp;#39;dev&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;staging&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;prod&amp;#39;&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Con parámetro de tipo const: inferido como tupla de literales
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;config2&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;getConfig&lt;/span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;const&lt;/span&gt;&amp;gt;([&lt;span style="color:#e6db74"&gt;&amp;#39;dev&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;staging&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;prod&amp;#39;&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// tipo: readonly [&amp;#34;dev&amp;#34;, &amp;#34;staging&amp;#34;, &amp;#34;prod&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Esto es útil cuando quieres que las propiedades de un objeto mantengan sus tipos literales. No es necesario escribir &lt;code&gt;as const&lt;/code&gt; en el sitio de llamada — el código se mantiene limpio.&lt;/p&gt;</description></item><item><title>Primeros pasos con CI/CD usando GitHub Actions</title><link>https://netguide.jp/es/software/github-actions-ci-cd-basics/</link><pubDate>Tue, 06 Jan 2026 11:00:00 +0900</pubDate><guid>https://netguide.jp/es/software/github-actions-ci-cd-basics/</guid><description>&lt;img src="https://netguide.jp/img/thumbnail/github-actions-ci-cd-basics-es.png" alt="Featured image of post Primeros pasos con CI/CD usando GitHub Actions" /&gt;&lt;p&gt;Si &amp;ldquo;CI/CD&amp;rdquo; suena como algo que deberías saber pero no sabes por dónde empezar, esta guía es para ti. &lt;strong&gt;GitHub Actions&lt;/strong&gt; hace que la integración y entrega continuas sean accesibles para todos los que tienen un repositorio de GitHub.&lt;/p&gt;
&lt;h2 id="qué-es-github-actions"&gt;¿Qué es GitHub Actions?
&lt;/h2&gt;&lt;p&gt;GitHub Actions es una plataforma CI/CD integrada directamente en GitHub. Te permite automatizar pruebas, compilaciones y despliegues directamente desde tu repositorio. Los flujos de trabajo se activan con pushes, pull requests o eventos programados.&lt;/p&gt;</description></item><item><title>Conceptos básicos del App Router de Next.js y consejos de migración</title><link>https://netguide.jp/es/software/nextjs-app-router-basics/</link><pubDate>Sat, 03 Jan 2026 11:00:00 +0900</pubDate><guid>https://netguide.jp/es/software/nextjs-app-router-basics/</guid><description>&lt;img src="https://netguide.jp/img/thumbnail/nextjs-app-router-basics-es.png" alt="Featured image of post Conceptos básicos del App Router de Next.js y consejos de migración" /&gt;&lt;p&gt;Introducido en Next.js 13, el &lt;strong&gt;App Router&lt;/strong&gt; adopta un enfoque fundamentalmente diferente al enrutamiento y renderizado en comparación con el Pages Router tradicional. Ahora estable y ampliamente adoptado, analicemos los conceptos básicos para aquellos que planean migrar.&lt;/p&gt;
&lt;h2 id="app-router-vs-pages-router"&gt;App Router vs Pages Router
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Característica&lt;/th&gt;
					&lt;th&gt;Pages Router&lt;/th&gt;
					&lt;th&gt;App Router&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Enrutamiento&lt;/td&gt;
					&lt;td&gt;Bajo &lt;code&gt;pages/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Bajo &lt;code&gt;app/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Componentes&lt;/td&gt;
					&lt;td&gt;Client Component por defecto&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;Server Component&lt;/strong&gt; por defecto&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Layouts&lt;/td&gt;
					&lt;td&gt;Implementación manual&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;layout.js&lt;/code&gt; anidable&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Carga&lt;/td&gt;
					&lt;td&gt;Implementación manual&lt;/td&gt;
					&lt;td&gt;Automática mediante &lt;code&gt;loading.js&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Obtención de datos&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;getServerSideProps&lt;/code&gt;, etc.&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;async&lt;/code&gt; directo dentro de componentes&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="1-enrutamiento-basado-en-archivos"&gt;1. Enrutamiento basado en archivos
&lt;/h2&gt;&lt;p&gt;La estructura de carpetas dentro de &lt;code&gt;app/&lt;/code&gt; se asigna directamente a las rutas URL.&lt;/p&gt;</description></item></channel></rss>