<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Programação on kenji.blog</title><link>http://kenji.blog/pt/tags/programa%C3%A7%C3%A3o/</link><description>Recent content in Programação on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>pt</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 12 Jul 2025 12:30:35 +0900</lastBuildDate><atom:link href="http://kenji.blog/pt/tags/programa%C3%A7%C3%A3o/index.xml" rel="self" type="application/rss+xml"/><item><title>Vantagens e Desvantagens de Criar Programas com Win32API + C++</title><link>http://kenji.blog/pt/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/</link><pubDate>Sat, 12 Jul 2025 12:30:35 +0900</pubDate><guid>http://kenji.blog/pt/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/</guid><description>&lt;img src="http://kenji.blog/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/img_1.png" alt="Featured image of post Vantagens e Desvantagens de Criar Programas com Win32API + C++" />&lt;h1 id="o-fascínio-e-os-desafios-de-desenvolver-com-win32api--c">O Fascínio e os Desafios de Desenvolver com Win32API + C++
&lt;/h1>&lt;p>Para aqueles que desejam dominar o desenvolvimento de aplicativos do Windows, &lt;strong>Win32API + C++&lt;/strong> ainda é uma opção poderosa.
Esta combinação, que permite a interação mais próxima possível com o sistema operacional, oferece velocidade e flexibilidade.&lt;/p>
&lt;p>Por outro lado, requer determinação para ser dominada, pois difere significativamente dos estilos de desenvolvimento modernos.&lt;/p>
&lt;p>Nesta página, explicaremos de forma clara as vantagens e desvantagens a partir da &lt;strong>perspectiva de um desenvolvedor ativo de aplicativos do Windows&lt;/strong> .&lt;/p>
&lt;hr>
&lt;h2 id="vantagens">Vantagens
&lt;/h2>&lt;h3 id="execução-nativa-ultrarrápida">Execução Nativa Ultrarrápida
&lt;/h3>&lt;p>Como o C++ e a Win32API operam na camada mais próxima do sistema operacional, há muito pouca sobrecarga desnecessária.
O uso de CPU e memória é extremamente eficiente, ostentando uma &lt;strong>velocidade de execução esmagadora&lt;/strong> .&lt;/p>
&lt;h3 id="alta-flexibilidade-e-liberdade">Alta Flexibilidade e Liberdade
&lt;/h3>&lt;p>Você pode &lt;strong>controlar finamente por conta própria&lt;/strong> todos os comportamentos do aplicativo, como controle de janelas, processamento assíncrono, integração COM e gerenciamento de processos.
Também é possível construir ferramentas especializadas e seus próprios frameworks originais.&lt;/p>
&lt;h3 id="fácil-de-distribuir-sem-necessidade-de-runtime">Fácil de Distribuir sem Necessidade de Runtime
&lt;/h3>&lt;p>Como não são necessários runtimes externos como .NET ou Java, ele &lt;strong>pode ser distribuído como um único arquivo executável&lt;/strong> .
É menos propenso a problemas durante a redistribuição e é fácil de executar sem um instalador.&lt;/p>
&lt;h3 id="pode-criar-aplicativos-leves">Pode Criar Aplicativos Leves
&lt;/h3>&lt;p>Como requer apenas a configuração mínima necessária, sua característica é ter uma &lt;strong>pegada de memória muito pequena&lt;/strong> .
Ele funciona confortavelmente mesmo em PCs de baixas especificações ou ambientes de máquinas virtuais.&lt;/p>
&lt;h3 id="controle-avançado-em-nível-de-so-possível">Controle Avançado em Nível de SO Possível
&lt;/h3>&lt;p>Você também pode obter &lt;strong>controles que são difíceis com linguagens e bibliotecas normais&lt;/strong> , como ganchos globais de mouse e teclado, ajuste fino de estilos de janelas e operações do menu do sistema.&lt;/p>
&lt;hr>
&lt;h2 id="desvantagens">Desvantagens
&lt;/h2>&lt;h3 id="baixa-eficiência-de-desenvolvimento">Baixa Eficiência de Desenvolvimento
&lt;/h3>&lt;p>Até a construção da GUI deve ser feita inteiramente em código, e às vezes &lt;strong>dezenas de linhas de código são necessárias apenas para criar um único botão&lt;/strong> .
Modificar o design também é complicado, e a produtividade é menor em comparação ao desenvolvimento usando frameworks de UI.&lt;/p>
&lt;h3 id="fácil-de-reduzir-a-manutenibilidade">Fácil de Reduzir a Manutenibilidade
&lt;/h3>&lt;p>Existem muitos &lt;strong>códigos com estruturas especiais&lt;/strong> , como loops de mensagens e procedimentos de janelas, dificultando a legibilidade e a reutilização.
Também tem aspectos inadequados para desenvolvimento em equipe e manutenção a longo prazo.&lt;/p>
&lt;h3 id="difícil-de-suportar-ui-moderna">Difícil de Suportar UI Moderna
&lt;/h3>&lt;p>É &lt;strong>difícil suportar a UX exigida nos últimos anos&lt;/strong> , como suporte a alto DPI, interfaces de toque, acessibilidade e modo escuro.
Você precisa lidar com cada um manualmente, o que exige muito esforço.&lt;/p>
&lt;h3 id="não-suporta-multiplataforma">Não Suporta Multiplataforma
&lt;/h3>&lt;p>Como é uma API completamente exclusiva do Windows, &lt;strong>não pode ser portada para macOS ou Linux&lt;/strong> .
Se você planeja implantação em várias plataformas, precisará selecionar outras tecnologias.&lt;/p>
&lt;h3 id="custo-de-aprendizado-extremamente-alto">Custo de Aprendizado Extremamente Alto
&lt;/h3>&lt;p>Você deve entender &lt;strong>conceitos e mecanismos raramente usados hoje&lt;/strong> , como manipuladores, GDI, COM e OLE.
Muitos documentos são antigos, exigindo tempo e paciência para aprender.&lt;/p>
&lt;hr>
&lt;h2 id="usos-adequados">Usos Adequados
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Ferramentas leves&lt;/strong> , como iniciadores de arquivos e suportes de teclas de atalho&lt;/li>
&lt;li>&lt;strong>Utilitários do sistema&lt;/strong> , como manipulação da área de transferência e controle de IME&lt;/li>
&lt;li>&lt;strong>Aplicativos baseados em controle nativo&lt;/strong> , como ganchos globais e captura de janelas&lt;/li>
&lt;li>&lt;strong>Ferramentas de suporte de driver&lt;/strong> intimamente ligadas ao hardware&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="usos-inadequados">Usos Inadequados
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Aplicativos voltados para o consumidor em geral&lt;/strong> onde UI / UX modernos são importantes&lt;/li>
&lt;li>&lt;strong>Desenvolvimento de protótipos e MVP&lt;/strong> construídos com velocidade em mente&lt;/li>
&lt;li>&lt;strong>Projetos de grande escala&lt;/strong> baseados em operação de longo prazo e desenvolvimento em equipe&lt;/li>
&lt;li>&lt;strong>Produtos multiplataforma&lt;/strong> que precisam suportar vários sistemas operacionais&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="resumo-da-avaliação">Resumo da Avaliação
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Ponto de Vista&lt;/th>
&lt;th>Avaliação&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Velocidade de Execução&lt;/td>
&lt;td>◎ Muito Rápido&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Eficiência de Memória&lt;/td>
&lt;td>◎ Excelente&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Velocidade de Desenvolvimento&lt;/td>
&lt;td>× Lenta&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Manutenibilidade&lt;/td>
&lt;td>× Baixa&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Suporte Multiplateforma&lt;/td>
&lt;td>× Não Suportado&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Suporte UI Moderna&lt;/td>
&lt;td>× Fraco&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Liberdade de Controle do SO&lt;/td>
&lt;td>◎ Esmagadoramente Alta&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="conclusão">Conclusão
&lt;/h2>&lt;p>&lt;strong>Win32API + C++ é uma ferramenta para desenvolvedores que &amp;ldquo;desejam lidar com tudo no sistema operacional por conta própria&amp;rdquo;.&lt;/strong>
Embora seu poder seja imenso, o aprendizado e a operação exigem uma quantidade correspondente de determinação.&lt;/p>
&lt;blockquote>
&lt;p>Se vale a pena &amp;ldquo;escolher ousadamente&amp;rdquo; depende da natureza do aplicativo que você pretende.&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>Mergulhar no mundo de &lt;code>#include &amp;lt;windows.h&amp;gt;&lt;/code> sem depender de frameworks de GUI ou linguagens modernas ――
Essa escolha ainda é significativa hoje.&lt;/p></description></item><item><title>Coleção de Fontes para Programação</title><link>http://kenji.blog/pt/p/colecao-de-fontes-para-programacao/</link><pubDate>Sat, 30 Mar 2024 02:21:31 +0900</pubDate><guid>http://kenji.blog/pt/p/colecao-de-fontes-para-programacao/</guid><description>&lt;img src="http://kenji.blog/p/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E9%9B%86/img.png" alt="Featured image of post Coleção de Fontes para Programação" />&lt;h2 id="jetbrains-mono">JetBrains Mono
&lt;/h2>&lt;p>É uma fonte de programação de código aberto fornecida pela JetBrains.&lt;/p>
&lt;p>Download: &lt;a class="link" href="https://www.jetbrains.com/ja-jp/lp/mono/" target="_blank" rel="noopener"
>https://www.jetbrains.com/ja-jp/lp/mono/&lt;/a>&lt;/p>
&lt;h2 id="hackgen">HackGen
&lt;/h2>&lt;p>Hakugen (HackGen) é uma fonte de programação que combina a fonte inglesa para programação Hack com a fonte GenJyuu Gothic, que é um derivado da Source Han Sans.&lt;/p>
&lt;p>Download: &lt;a class="link" href="https://github.com/yuru7/HackGen/releases" target="_blank" rel="noopener"
>https://github.com/yuru7/HackGen/releases&lt;/a>&lt;/p>
&lt;h2 id="ricty-diminished">Ricty Diminished
&lt;/h2>&lt;p>&lt;code>Ricty Diminished&lt;/code> é uma fonte irmã da &lt;code>Ricty&lt;/code>, criada combinando &lt;code>Inconsolata&lt;/code> e &lt;code>Circle M+ 1m&lt;/code> com o script de geração da &lt;code>Ricty&lt;/code>, em vez de &lt;code>Inconsolata&lt;/code> e &lt;code>Migu 1M&lt;/code>. Como não inclui glifos da fonte IPA Gothic, ela possui menos glifos de kanji disponíveis, mas em compensação pode ser distribuída sob a &lt;code>SIL Open Font License&lt;/code>.&lt;/p>
&lt;p>Download: &lt;a class="link" href="https://rictyfonts.github.io/diminished" target="_blank" rel="noopener"
>https://rictyfonts.github.io/diminished&lt;/a>&lt;/p>
&lt;h2 id="cica">Cica
&lt;/h2>&lt;p>Caracteres alfanuméricos e símbolos usam &lt;code>Hack&lt;/code> + &lt;code>DejaVu Sans Mono&lt;/code>.
Para outros caracteres, é uma fonte de programação que usa &lt;code>Rounded Mgen+&lt;/code>.&lt;/p>
&lt;p>Download: &lt;a class="link" href="https://github.com/miiton/Cica/releases" target="_blank" rel="noopener"
>https://github.com/miiton/Cica/releases&lt;/a>&lt;/p>
&lt;p>Referência:&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://sourcefoundry.org/hack/" target="_blank" rel="noopener"
>Hack&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://dejavu-fonts.github.io/" target="_blank" rel="noopener"
>DejaVu Sans Mono&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="http://jikasei.me/font/rounded-mgenplus/" target="_blank" rel="noopener"
>Rounded Mgen+&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="migu">Migu
&lt;/h2>&lt;p>É uma fonte composta de M+ e IPA.&lt;/p>
&lt;p>Download: &lt;a class="link" href="https://itouhiro.github.io/mixfont-mplus-ipa/migu/" target="_blank" rel="noopener"
>https://itouhiro.github.io/mixfont-mplus-ipa/migu/&lt;/a>&lt;/p>
&lt;h2 id="osaka">Osaka
&lt;/h2>&lt;p>É uma fonte que permite usar a fonte padrão do Mac OS, &lt;code>Osaka&lt;/code>, no Windows.&lt;/p>
&lt;p>Download: &lt;a class="link" href="http://ifs.nog.cc/osakattf.hp.infoseek.co.jp/" target="_blank" rel="noopener"
>http://ifs.nog.cc/osakattf.hp.infoseek.co.jp/&lt;/a>&lt;/p>
&lt;h2 id="plemoljp">PlemolJP
&lt;/h2>&lt;p>É uma fonte de programação que combina a fonte japonesa de código aberto &lt;code>IBM Plex Sans JP&lt;/code> lançada pela IBM com a &lt;code>IBM Plex Mono&lt;/code> da série Plex também da IBM.&lt;/p>
&lt;p>Download: &lt;a class="link" href="https://github.com/yuru7/PlemolJP/releases" target="_blank" rel="noopener"
>https://github.com/yuru7/PlemolJP/releases&lt;/a>&lt;/p></description></item><item><title>[Por Linguagem] Resumo de Ambientes de Execução de Código Online</title><link>http://kenji.blog/pt/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/</link><pubDate>Sun, 09 Apr 2023 14:01:00 +0900</pubDate><guid>http://kenji.blog/pt/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/</guid><description>&lt;img src="http://kenji.blog/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/img.png" alt="Featured image of post [Por Linguagem] Resumo de Ambientes de Execução de Código Online" />&lt;h2 id="python">Python
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://colab.research.google.com/#create=true" target="_blank" rel="noopener"
>Google Colaboratory&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Google Colaboratory é um ambiente de execução de código Python online.&lt;/p>
&lt;ul>
&lt;li>O uso de GPU também é possível.&lt;/li>
&lt;li>Usando os notebooks do Colab, você pode escrever código executável e rich text (incluindo imagens, HTML, LaTeX, etc.) em um único documento.&lt;/li>
&lt;/ul>
&lt;p>É baseado no Jupyter Notebook.&lt;/p>
&lt;h2 id="rust">Rust
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://play.rust-lang.org/?version=stable&amp;amp;mode=debug&amp;amp;edition=2021" target="_blank" rel="noopener"
>Rust Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="javascript">JavaScript
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://playcode.io/" target="_blank" rel="noopener"
>Javascript Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="java">Java
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://paiza.io/ja/projects/new?language=java" target="_blank" rel="noopener"
>paiza.IO Online Java compiler&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="haskell">Haskell
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://play.haskell.org/" target="_blank" rel="noopener"
>Haskell Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="swift">Swift
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://online.swiftplayground.run/" target="_blank" rel="noopener"
>Online Swift Playground&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="c">C++
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://www.onlinegdb.com/online_c&amp;#43;&amp;#43;_compiler" target="_blank" rel="noopener"
>C++ 14&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="outros">Outros
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://aws.amazon.com/jp/cloud9/" target="_blank" rel="noopener"
>AWS Cloud9&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Um ambiente de desenvolvimento integrado (IDE) online fornecido pela Amazon AWS. Ferramentas para mais de 40 linguagens de programação como Node.js, JavaScript, Python, PHP, Ruby, Go, C++, etc. já vêm empacotadas.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://vscode.dev/" target="_blank" rel="noopener"
>Visual Studio Code for the Web&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Um ambiente de desenvolvimento online fornecido pela Microsoft. No entanto, linguagens que requerem compilação não podem ser executadas ou depuradas.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://paiza.io/projects/CGAcQLfW-IOXYy8Dq2OHBw?locale=ja-jp" target="_blank" rel="noopener"
>paiza.IO&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Um ambiente de execução online que suporta 24 linguagens principais como C, C++, Java, Ruby, Python, PHP, Perl, etc.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://codepen.io/" target="_blank" rel="noopener"
>CodePen&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Um ambiente de execução online para HTML, CSS e JavaScript.&lt;/p>
&lt;ul>
&lt;li>&lt;a class="link" href="https://codeanywhere.com/" target="_blank" rel="noopener"
>codeanywhere&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Um IDE online. Permite compartilhamento de código e chat.&lt;/p></description></item></channel></rss>