<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>开发 on kenji.blog</title><link>http://kenji.blog/zh-cn/tags/%E5%BC%80%E5%8F%91/</link><description>Recent content in 开发 on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>kenjinote</copyright><lastBuildDate>Wed, 30 Jul 2025 23:51:35 +0900</lastBuildDate><atom:link href="http://kenji.blog/zh-cn/tags/%E5%BC%80%E5%8F%91/index.xml" rel="self" type="application/rss+xml"/><item><title>LogicPad 开发秘辛</title><link>http://kenji.blog/zh-cn/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/</link><pubDate>Wed, 30 Jul 2025 23:51:35 +0900</pubDate><guid>http://kenji.blog/zh-cn/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/</guid><description>&lt;img src="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img.png" alt="Featured image of post LogicPad 开发秘辛" />&lt;h1 id="为虽然不会写代码但懂逻辑的人打造工具开发-logicpad-的理由">为“虽然不会写代码，但懂逻辑的人”打造工具。开发 LogicPad 的理由
&lt;/h1>&lt;p>大家好，我是 kenji，低代码工具「&lt;a class="link" href="https://logicpad.org" target="_blank" rel="noopener"
>LogicPad&lt;/a>」的作者。
这次不是为了介绍产品功能，而是想从我个人的视角，和大家聊聊开发的幕后故事，以及我为什么想要做这款工具。&lt;/p>
&lt;p>老实说，这不仅仅是一次单纯的工具开发。
我个人的过往经历、在职场中的苦闷、自身的技能储备，以及内心深处一直按捺不住的“总有一天要做一款自己的产品”的渴望——
这一切交织在一起，最终孕育出了 LogicPad。&lt;/p>
&lt;p>也就是说，&lt;strong>这对我而言，是一个“集人生大成的项目”&lt;/strong>。
我想尽可能真诚、充满热情地写下这些背景故事。&lt;/p>
&lt;hr>
&lt;h2 id="坦白讲我就是想要一款能理直气壮地说这是我做的的产品">坦白讲，我就是想要一款能理直气壮地说“这是我做的”的产品
&lt;/h2>&lt;p>说实话，这是我最初的动机。&lt;/p>
&lt;p>一直以来，无论是在工作还是在业余爱好中，我都非常喜欢写代码。也参与过各种各样的开发项目。
但是，有一天我突然意识到：
&lt;strong>“我还没有一款以自己的名字、由自己负责、推向世界的产品。”&lt;/strong>&lt;/p>
&lt;p>当然，团队合作打造的产品很有价值，也有很多让我引以为傲的工作。
但在内心深处，我也会感到一丝空虚：“难道我就要这样，在别人的名字下结束我的职业生涯吗？”&lt;/p>
&lt;p>哪怕只有一次也好。
&lt;strong>我想留下一样东西，能让我挺起胸膛说：“这是我做的。”&lt;/strong>
怀着这样的想法，我开始构思 LogicPad。大约是在 6 年前（2019年左右）。
（而最初的灵感，其实可以追溯到更早的 2015 年左右，当时我了解到了虚幻引擎的视觉化编程语言 Blueprint。）&lt;/p>
&lt;h2 id="blueprintimg_1png">&lt;img src="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1.png"
width="637"
height="285"
srcset="http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1_hu70d4fd9be2cc84fc55cb45a83c67cc8a_54446_480x0_resize_box_3.png 480w, http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_1_hu70d4fd9be2cc84fc55cb45a83c67cc8a_54446_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="Blueprint"
class="gallery-image"
data-flex-grow="223"
data-flex-basis="536px"
>
&lt;/h2>&lt;h2 id="因为不会写代码就无法动手实现这难道不可惜吗">因为不会写代码就无法动手实现。这难道不可惜吗？
&lt;/h2>&lt;p>在我工作过的地方，有许多非常优秀的人。&lt;/p>
&lt;p>他们懂得梳理逻辑。能熟练运用 Excel 的各种函数，也能一眼看穿问题的本质。
但是——一到“写代码”这一步，他们就束手无策了。&lt;/p>
&lt;p>“这个工作我每次都要看着操作手册做，能不能自动化呢？”
“嗯，可以的。不过……那需要写代码才行……”&lt;/p>
&lt;p>这样的对话上演过无数次。&lt;/p>
&lt;p>每次我都忍不住想：
&lt;strong>“明明都懂逻辑，却被代码这堵墙挡住了去路，这真的太可惜了。”&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="低代码编辑器一种新的选择">低代码编辑器，一种新的选择
&lt;/h2>&lt;p>其实在上一份工作中，我参与了可以通过 GUI 操作的 2D CAD 软件开发。
所谓的 CAD，不就是用鼠标把图形拼搭起来吗？
也就是说，那是一个 &lt;strong>“通过操作来构建逻辑”&lt;/strong> 的世界。&lt;/p>
&lt;p>我当时就觉得：“这和低代码简直是绝配啊。”&lt;/p>
&lt;p>如果再往前追溯，从学生时代起，我就一直在做图像处理、数值计算、Windows 工具、社交媒体自动发帖工具等等。
一有灵感我就会马上写代码，量产了很多小程序。
我觉得起码有 600 多个。现在它们还留在我的 GitHub 上。&lt;/p>
&lt;p>当时我并没有考虑过这么做的意义。
只是单纯地觉得“想做，所以就做”。仅此而已。&lt;/p>
&lt;p>但是现在，在开发 LogicPad 的过程中……&lt;/p>
&lt;p>&lt;strong>我感觉，那些散落的点终于连成了一条线。&lt;/strong>&lt;/p>
&lt;hr>
&lt;h2 id="简单易用但同时要功能强大把握平衡的难题">简单易用，但同时要功能强大。把握平衡的难题
&lt;/h2>&lt;p>在推进开发的过程中，我一直在思考的是：
&lt;strong>“如何打造一款既能直观使用，又真正强大的工具。”&lt;/strong>&lt;/p>
&lt;p>如果一味增加功能，能做的事情自然会变多，但工具也会变得难用。
如果为了追求极简，那谁都能上手，但这又满足不了部分进阶用户的需求。&lt;/p>
&lt;p>为了不让人说“低代码工具不过是玩具吧？”
同时，也为了不让人抱怨“到头来还不是得自己写代码。”&lt;/p>
&lt;p>&lt;strong>我一直在“直观性”与“表现力”这两者的极限边缘挣扎。&lt;/strong>&lt;/p>
&lt;p>我无数次推翻重做 UI，又无数次将其抛弃，
直到终于做出了让我觉得“这个方向能行”的雏形时，我真的非常开心。&lt;/p>
&lt;hr>
&lt;h2 id="第一个用户的一句话拯救了我">第一个“用户”的一句话拯救了我
&lt;/h2>&lt;p>我第一次把 LogicPad 交给别人试用，对象是我的一位前同事。
她不擅长 IT，对代码也感到恐惧。但是，她的逻辑思维很强。&lt;/p>
&lt;p>我稍微向她解释了一下，让她自己操作试试……几分钟后她说的那句话，我至今都无法忘记。&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>“如果用这个的话，感觉我也能做到了！”&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;p>那一刻，我真的快要哭出来了。
原来我想带给大家的，就是这种感觉。&lt;/p>
&lt;p>比起一款能运行的工具，&lt;strong>那种“我自己做出来了！”的成就感&lt;/strong>。
我深信，这才是 LogicPad 真正的价值所在。&lt;/p>
&lt;hr>
&lt;h2 id="当更多人能成为创造者社会将会变得更加有趣">当更多人能成为创造者，社会将会变得更加有趣
&lt;/h2>&lt;p>我坚信“技术的平民化”非常重要。&lt;/p>
&lt;p>技术拥有改变世界的力量。
但是，能够掌握技术的人却是有限的。&lt;/p>
&lt;p>如果只要“懂逻辑”就能开发应用呢？&lt;/p>
&lt;p>&lt;strong>就会有更多的人能够加入到“创造者”的行列中。&lt;/strong>
我相信，由此诞生出的事物，将会远远超出我们现在的想象。&lt;/p>
&lt;p>如果 LogicPad 能够成为进入那个世界的入口。
我希望它是一款能将“想做”转变为“能做”的工具。&lt;/p>
&lt;p>这就是我的愿望。&lt;/p>
&lt;hr>
&lt;h2 id="结语">结语
&lt;/h2>&lt;p>目前 LogicPad 还是测试版，并未完全成熟。
还有许多需要改进的地方，也有许多我想加入的功能。&lt;/p>
&lt;p>但是，我已经在这个工具上 &lt;strong>倾注了我人生的全部“点滴”。&lt;/strong>
现在，我可以挺起胸膛说了。&lt;/p>
&lt;p>&lt;strong>“这，是我自己开发的产品。”&lt;/strong>&lt;/p>
&lt;hr>
&lt;h3 id="彩蛋logicpad-能做什么">👇彩蛋：LogicPad 能做什么
&lt;/h3>&lt;ul>
&lt;li>通过拖拽构建处理流程&lt;/li>
&lt;li>可以通过 GUI 处理条件分支、变量等&lt;/li>
&lt;li>提供了多种 AI 协作节点&lt;/li>
&lt;li>支持插入脚本，满足进阶用户的扩展需求&lt;/li>
&lt;li>高精度的数学函数与数据处理（如无限精度的数值运算等）&lt;/li>
&lt;li>为进阶用户提供了丰富的快捷键&lt;/li>
&lt;li>支持 90 多个国家的语言&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="未来想做的事">未来想做的事
&lt;/h3>&lt;ul>
&lt;li>与 AI 结合，通过自然语言生成逻辑&lt;/li>
&lt;li>建立让用户可以自定义节点的机制&lt;/li>
&lt;li>搭建一个可以分享自制节点和逻辑的平台&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="后记">✍️后记
&lt;/h2>&lt;p>非常感谢您能阅读到这里。
这不仅是一次工具开发，更是我将自己的经验、热情以及人生的片段倾注其中的一次挑战。&lt;/p>
&lt;p>“虽然不会写代码，但我懂逻辑”
我希望通过 LogicPad，能让这些人凭借自己的力量，迎来一个 &lt;strong>“能够去创造”的未来&lt;/strong>。&lt;/p>
&lt;p>如果您哪怕只有一丝“想试试看”的想法，我都会感到无比欣慰。
如果您感兴趣，请务必去尝试一下 &lt;a class="link" href="https://logicpad.org" target="_blank" rel="noopener"
>LogicPad&lt;/a>。&lt;/p>
&lt;p>无论在使用后有什么感想，或是发现了什么问题，哪怕是再小的事情也没关系。
您的声音，将成为推动这款产品迈出下一步的巨大力量。&lt;/p>
&lt;p>今后也请多多关照。&lt;/p></description></item><item><title>AI开发的壁垒</title><link>http://kenji.blog/zh-cn/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/</link><pubDate>Sun, 20 Jul 2025 21:52:42 +0900</pubDate><guid>http://kenji.blog/zh-cn/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/</guid><description>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1.png" alt="Featured image of post AI开发的壁垒" />&lt;h1 id="ai开发的壁垒">AI开发的壁垒
&lt;/h1>&lt;p>&lt;strong>〜虽然到了八合目，但接下来的路才是地狱〜&lt;/strong>&lt;/p>
&lt;p>大家好，我是kenji。&lt;/p>
&lt;p>最近，经常听到有人说“拜托AI，结果连应用都做出来了！”这样的话。
我们已经越过了无代码(No-code)和低代码(Low-code)的时代，进入了“Vibe coding（凭感觉写代码）”之类的阶段。&lt;/p>
&lt;p>例如，如果你说“做一个可以编辑图片并发布到社交网络的应用”，AI就会为你输出代码甚至UI。
&lt;strong>很厉害吧，是不是觉得已经不需要人类了呢？&lt;/strong>&lt;/p>
&lt;p>但是呢，那 &lt;strong>就像穿着凉鞋降落在富士山的八合目一样&lt;/strong> 啊。&lt;/p>
&lt;hr>
&lt;h2 id="登到八合目之前看起来轻而易举">登到八合目之前看起来“轻而易举”
&lt;/h2>&lt;p>用AI进行开发，一开始真的非常轻松。
文件IO？反正能跑就行。
网络？嗯，能连上。
数据库？用JSON就够了吧。
UI？ChatGPT给我吐出了React代码。
支付？复制粘贴一下Stripe的API就行了。&lt;/p>
&lt;p>到了这里，你就会产生一种错觉：“我该不会已经是工程师了吧？”
但是，真正的地狱才刚刚开始。&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img.png"
width="1024"
height="1024"
srcset="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_huf56c5201f3b1d8f8800773fd39442f1f_2016892_480x0_resize_box_3.png 480w, http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_huf56c5201f3b1d8f8800773fd39442f1f_2016892_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p>
&lt;hr>
&lt;h2 id="为什么会陷入僵局">为什么会陷入僵局？
&lt;/h2>&lt;p>理由很简单，因为“AI做得有模有样，但最终的调整全都抛给了人类”。&lt;/p>
&lt;ul>
&lt;li>文件IO会导致数据丢失&lt;/li>
&lt;li>数据库缺乏规范化，搜索很慢&lt;/li>
&lt;li>UI不够直观&lt;/li>
&lt;li>没有做过压力测试，流量一集中就崩溃&lt;/li>
&lt;li>被Apple/Google的审核拒绝&lt;/li>
&lt;li>违反法律法规引发（差点引发）公关危机&lt;/li>
&lt;/ul>
&lt;p>也就是说，&lt;strong>AI很擅长制作“看起来像是完成了的原型”&lt;/strong>，
&lt;strong>但要把其打磨成“真正在世上行得通的产品”，至今依然是人类的工作&lt;/strong>。&lt;/p>
&lt;hr>
&lt;h2 id="但是存在一个悖论">但是，存在一个悖论
&lt;/h2>&lt;p>在这里我们会发现一个 &lt;strong>悖论&lt;/strong>。&lt;/p>
&lt;blockquote>
&lt;p>如果将来AI真的什么都能做到了呢？
也就是说，如果“安全性、支付、架构设计，全都能由AI完美处理”了呢？&lt;/p>
&lt;/blockquote>
&lt;p>到那时，&lt;strong>人类制作应用的需求本身可能就不存在了&lt;/strong>。&lt;/p>
&lt;p>因为，如果用户直接对AI说“我想做这种事”，
任务就会无需通过应用而被立刻执行。&lt;/p>
&lt;hr>
&lt;h3 id="举个例子">🌀举个例子
&lt;/h3>&lt;p>以前我们“为了计算而启动计算器应用”，
现在只要说“Hey Siri，12×32是多少？”就搞定了。&lt;/p>
&lt;p>同样地，
只要说一句“用AI把照片处理一下并分享出去”，可能不用经过应用的UI和API，处理就已经完成了。&lt;/p>
&lt;p>也就是说，
&lt;strong>当“用AI制作应用”的目标实现之时，可能就会迎来一个应用本身已不再需要的世界&lt;/strong>。&lt;/p>
&lt;hr>
&lt;h2 id="到底现在的我们能做些什么">到底，现在的我们能做些什么
&lt;/h2>&lt;p>那么，该怎么办呢。&lt;/p>
&lt;ul>
&lt;li>既然现在“八合目以上”依然是人类的领域，那就去磨练那部分技能&lt;/li>
&lt;li>专注于本质上的用户理解和服务设计&lt;/li>
&lt;li>思考“有价值的事情”，而不是“能做出来的事情”&lt;/li>
&lt;li>倒不如说，去探索“不局限于应用这种形式”的提供价值的方式&lt;/li>
&lt;/ul>
&lt;p>AI是工具、是上升的阶梯、有时也是竞争对手。
但是，&lt;strong>“要做什么”和“为什么要做”，依然是我们人类去提出的问题&lt;/strong>。&lt;/p>
&lt;hr>
&lt;h2 id="总结">总结：
&lt;/h2>&lt;p>&lt;strong>AI开发的壁垒，不是技术，而是结构的悖论&lt;/strong>&lt;/p>
&lt;p>这是一个谁都能登到富士山八合目的时代。
但从那往后的路才是动真格的。&lt;/p>
&lt;p>而且，等到终于登顶的时候，
也许等待着我们的将是重新发问：“这山，我们有必要登吗？”的未来。&lt;/p>
&lt;p>&lt;img src="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1.png"
width="1024"
height="1024"
srcset="http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1_hu929f602c53dcc1c0d00e8a53b025b29e_1978511_480x0_resize_box_3.png 480w, http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1_hu929f602c53dcc1c0d00e8a53b025b29e_1978511_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="img_1.png"
class="gallery-image"
data-flex-grow="100"
data-flex-basis="240px"
>&lt;/p></description></item><item><title>市场导向与产品导向</title><link>http://kenji.blog/zh-cn/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/</link><pubDate>Tue, 15 Jul 2025 20:18:22 +0900</pubDate><guid>http://kenji.blog/zh-cn/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/</guid><description>&lt;img src="http://kenji.blog/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/img.png" alt="Featured image of post 市场导向与产品导向" />&lt;h1 id="市场导向与产品导向">市场导向与产品导向
&lt;/h1>&lt;p>大家好，我是 kenji。&lt;/p>
&lt;p>偶尔在商业书籍或策划书里，&lt;/p>
&lt;blockquote>
&lt;p>“我们采用的是市场导向（Market-in）战略”
“这是产品导向（Product-out）型呢”&lt;/p>
&lt;/blockquote>
&lt;p>会看到类似这样的话……。&lt;/p>
&lt;p>&lt;strong>但是，市场导向？产品导向？到底哪个更厉害？？？&lt;/strong>&lt;/p>
&lt;p>大家会不会有这样的疑问呢？&lt;/p>
&lt;p>所以这次，关于“市场导向”和“产品导向”这两个概念，
我想尽量用通俗易懂的方式，带点辛辣地来聊一聊。&lt;/p>
&lt;hr>
&lt;h2 id="简单来说就是">简单来说就是…
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>市场导向（Market-in）&lt;/strong>：倾听市场（Market）的声音，然后配合需求去制造商品&lt;/li>
&lt;li>&lt;strong>产品导向（Product-out）&lt;/strong>：把自己认为好的东西（Product）造出来，推向世界&lt;/li>
&lt;/ul>
&lt;p>就这么简单。非常纯粹。&lt;/p>
&lt;hr>
&lt;h2 id="比如用拉面店来打比方">比如用拉面店来打比方…
&lt;/h2>&lt;p>市场导向的拉面店，
感觉就像是：“最近家系拉面很流行啊。好，我们就多放点油脂和大蒜吧！”&lt;/p>
&lt;p>产品导向的拉面店，
感觉就像是：“我做的这个豆乳罗勒盐味拉面，简直最棒了，你们快来吃吧。”&lt;/p>
&lt;hr>
&lt;h2 id="要说哪个才是正确答案的话其实都对">要说哪个才是正确答案的话…其实都对
&lt;/h2>&lt;p>市场导向因为迎合了顾客的需求，所以“畅销的概率很高”，
但很难诞生出突破性的想法或创新。&lt;/p>
&lt;p>产品导向则是“将自己坚信的正义具象化”，所以非常尖锐且充满魅力，
但一旦没对上电波，就不会引起任何人的共鸣。&lt;/p>
&lt;hr>
&lt;h2 id="iphone-就像是产品导向">iPhone 就像是产品导向
&lt;/h2>&lt;p>在大家都说“智能手机根本不需要”的时代，Apple 推出了 iPhone。&lt;/p>
&lt;p>这已经 &lt;strong>完全是产品导向&lt;/strong> 的成功案例了。&lt;/p>
&lt;p>如果听取用户的声音，肯定会被说“没有键盘的手机？不可能不可能”，然后就此结束。&lt;/p>
&lt;hr>
&lt;h2 id="但是产品导向很容易变成自我满足">但是产品导向很容易变成“自我满足”
&lt;/h2>&lt;p>偶尔会有企业或个人说“我们是产品导向型的”，&lt;/p>
&lt;blockquote>
&lt;p>哎，那不就是单纯的无视用户吗？&lt;/p>
&lt;/blockquote>
&lt;p>有时候我也会这么想。&lt;/p>
&lt;p>“因为想做就做了。但是没卖出去”，
这不叫产品导向，而是“孤芳自赏”了。&lt;/p>
&lt;hr>
&lt;h2 id="市场导向也有陷阱">市场导向也有陷阱
&lt;/h2>&lt;p>另一方面，市场导向也不是万能的。&lt;/p>
&lt;p>如果说“只要用户有需求我们就全做！”，
那么产品的核心就会动摇，最终谁也打动不了。&lt;/p>
&lt;p>不断地添加功能，回过神来发现已经变成了一个混沌的工具，就是这种情况。&lt;/p>
&lt;hr>
&lt;h2 id="真正厉害的是两者兼顾的人">真正厉害的是，“两者兼顾的人”
&lt;/h2>&lt;p>优秀的产品，能够精准地把“用户真正想要，却无法用语言表达出来的东西”
呈现出来。&lt;/p>
&lt;p>也就是说，“用产品导向的思维，去获得市场导向的共鸣”。&lt;/p>
&lt;p>这话说起来简单，做起来却极其困难。
但如果能做到这一点，就能一跃成为“神级产品”。&lt;/p>
&lt;hr>
&lt;h2 id="结论比起词汇用户的反应才是一切">结论：比起词汇，用户的反应才是一切
&lt;/h2>&lt;p>是市场导向，还是产品导向。
到底哪个才是正确的，这种问题其实没多大意义。&lt;/p>
&lt;p>我认为，&lt;strong>“有没有真正触达用户的心？”这才是全部&lt;/strong>。&lt;/p>
&lt;p>至于“我们走的是偏向哪种的战略”，
这种话只要事后能写在营销资料上就可以了。&lt;/p>
&lt;hr>
&lt;p>这就是关于市场导向和产品导向的话题啦！&lt;/p>
&lt;p>不要被奇怪的外来语迷惑，思考“到底怎么做才能让人高兴？”
我觉得这才是最健康的心态。&lt;/p>
&lt;p>那么，下次见啦～。&lt;/p></description></item><item><title>如何在 Windows 环境下安装 Gemini CLI</title><link>http://kenji.blog/zh-cn/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/</link><pubDate>Sun, 13 Jul 2025 23:49:56 +0900</pubDate><guid>http://kenji.blog/zh-cn/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/</guid><description>&lt;img src="http://kenji.blog/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img.png" alt="Featured image of post 如何在 Windows 环境下安装 Gemini CLI" />&lt;h1 id="适合初学者在-windows-上安装-gemini-cli-的方法">【适合初学者】在 Windows 上安装 Gemini CLI 的方法
&lt;/h1>&lt;p>让您能够在命令行中使用 Google 的生成式 AI“Gemini”的工具“Gemini CLI”。
在本文中，我们将尽可能以通俗易懂的方式，为您讲解在 Windows 环境下安装 Gemini CLI 的步骤。&lt;/p>
&lt;hr>
&lt;h2 id="1-准备工作安装-nodejs-和-npm">1. 准备工作：安装 Node.js 和 npm
&lt;/h2>&lt;p>首先，由于 Gemini CLI 是在“Node.js”环境下运行的，因此您需要事先安装以下组件。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Node.js&lt;/strong>&lt;/li>
&lt;li>&lt;strong>npm（Node.js 附带的包管理工具）&lt;/strong>&lt;/li>
&lt;li>&lt;strong>npx（包含在 npm 中的命令执行工具）&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>请从以下官方网站下载 Windows 版的 Node.js（推荐使用 LTS 版本）：&lt;/p>
&lt;p>👉 &lt;a class="link" href="https://nodejs.org/" target="_blank" rel="noopener"
>Node.js 官方网站&lt;/a>&lt;/p>
&lt;p>安装完成后，请使用以下命令确认是否已正确安装。&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-powershell" data-lang="powershell">&lt;span class="line">&lt;span class="cl">&lt;span class="n">node&lt;/span> &lt;span class="n">-v&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">npm&lt;/span> &lt;span class="n">-v&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="2-启动-powershell">2. 启动 PowerShell
&lt;/h2>&lt;p>在 Windows 上使用 Gemini CLI 时，通常会使用 PowerShell 进行操作。
请从开始菜单中输入“PowerShell”并启动它。&lt;/p>
&lt;hr>
&lt;h2 id="3-安装-gemini-cli">3. 安装 Gemini CLI
&lt;/h2>&lt;p>将以下命令复制并粘贴到 PowerShell 中执行：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">npx @google/gemini-cli
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>此命令旨在临时运行 Google 发布的 Gemini CLI 包。
有时可能会要求您进行初始设置或登录。&lt;/p>
&lt;p>※ 首次运行可能需要几分钟。如果出现错误，请仔细检查您的 Node.js 和网络环境。&lt;/p>
&lt;hr>
&lt;h2 id="4-安装完成下一步要做什么">4. 安装完成！下一步要做什么
&lt;/h2>&lt;p>至此，Windows 上的 Gemini CLI 就安装完成了。
今后，您就可以通过命令行使用 Gemini 来进行文本生成、代码补全等各种操作了。&lt;/p>
&lt;p>如果您想查看官方文档或帮助，也可以使用以下命令：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">npx @google/gemini-cli --help
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h2 id="总结">总结
&lt;/h2>&lt;p>让我们复习一下在 Windows 上安装 Gemini CLI 的步骤：&lt;/p>
&lt;ol>
&lt;li>安装 Node.js 和 npm&lt;/li>
&lt;li>启动 PowerShell&lt;/li>
&lt;li>执行 &lt;code>npx @google/gemini-cli&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>这样准备工作就完成了！
想要在本地使用生成式 AI 的朋友，请务必参考本文中的步骤进行尝试。&lt;/p></description></item><item><title>使用 Win32API + C++ 编写程序的优缺点</title><link>http://kenji.blog/zh-cn/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/zh-cn/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 使用 Win32API + C++ 编写程序的优缺点" />&lt;h1 id="使用-win32api--c-开发的魅力与挑战">使用 Win32API + C++ 开发的魅力与挑战
&lt;/h1>&lt;p>对于想要深入 Windows 应用开发的人来说，&lt;strong>Win32API + C++&lt;/strong> 至今依然是一个强大的选择。
这种组合能够以最近的距离与操作系统交互，兼具高速性与灵活性。&lt;/p>
&lt;p>另一方面，由于其与现代的开发风格大相径庭，因此在学习上需要做好心理准备。&lt;/p>
&lt;p>本文将从 &lt;strong>现役 Windows 应用开发者的视角&lt;/strong>，浅显易懂地解说其优点与缺点。&lt;/p>
&lt;hr>
&lt;h2 id="优点">优点
&lt;/h2>&lt;h3 id="超高速的原生执行">超高速的原生执行
&lt;/h3>&lt;p>C++ 和 Win32API 在最靠近操作系统的层级上运行，因此几乎没有多余的开销。
其 CPU 和内存的使用效率极高，拥有 &lt;strong>压倒性的执行速度&lt;/strong>。&lt;/p>
&lt;h3 id="极高的灵活性和自由度">极高的灵活性和自由度
&lt;/h3>&lt;p>无论是窗口控制、异步处理、COM 协作还是进程管理等，应用的任何行为都可以 &lt;strong>自行进行精细控制&lt;/strong>。
你也可以构建专用于特定目的的工具，或自制独有的框架等。&lt;/p>
&lt;h3 id="无需运行时便于分发">无需运行时，便于分发
&lt;/h3>&lt;p>无需像 .NET 或 Java 那样的外部运行时，&lt;strong>只需一个可执行文件即可分发&lt;/strong>。
在再分发时不易出现问题，无需安装程序也能轻松运行，这是其魅力所在。&lt;/p>
&lt;h3 id="能够制作轻量级应用">能够制作轻量级应用
&lt;/h3>&lt;p>由于只需最小限度的配置即可，其特征是 &lt;strong>内存占用非常小&lt;/strong>。
即使在低配置的 PC 或虚拟机环境中也能流畅运行。&lt;/p>
&lt;h3 id="支持操作系统级别的高级控制">支持操作系统级别的高级控制
&lt;/h3>&lt;p>鼠标与键盘的全局钩子、窗口样式的微调、系统菜单操作等，
也能实现 &lt;strong>在普通语言或库中难以完成的控制&lt;/strong>。&lt;/p>
&lt;hr>
&lt;h2 id="缺点">缺点
&lt;/h2>&lt;h3 id="开发效率低">开发效率低
&lt;/h3>&lt;p>GUI 的构建也完全需要通过代码来实现，有时 &lt;strong>仅制作一个按钮就需要几十行代码&lt;/strong>。
更改设计时的修改也很繁琐，与使用 UI 框架的开发相比，生产力较低。&lt;/p>
&lt;h3 id="维护性容易下降">维护性容易下降
&lt;/h3>&lt;p>消息循环和窗口过程等 &lt;strong>结构特殊的代码&lt;/strong> 很多，在可读性和可重用性上存在困难。
也有不适合团队开发或长期维护的一面。&lt;/p>
&lt;h3 id="适配现代-ui-很麻烦">适配现代 UI 很麻烦
&lt;/h3>&lt;p>高 DPI 适配、触摸界面、无障碍功能、深色模式等，&lt;strong>很难应对近年来对 UX（用户体验）的要求&lt;/strong>。
必须逐一手动进行适配，非常费力。&lt;/p>
&lt;h3 id="不支持跨平台">不支持跨平台
&lt;/h3>&lt;p>因为完全是 Windows 专用的 API，&lt;strong>无法移植到 macOS 或 Linux&lt;/strong>。
如果考虑到多平台部署，则需要选择其他技术。&lt;/p>
&lt;h3 id="学习成本极高">学习成本极高
&lt;/h3>&lt;p>必须理解句柄、GDI、COM、OLE 等 &lt;strong>在现代已经不太使用的概念和机制&lt;/strong>。
文档也有很多是旧的，学习需要时间和毅力。&lt;/p>
&lt;hr>
&lt;h2 id="适合的用途">适合的用途
&lt;/h2>&lt;ul>
&lt;li>文件启动器或快捷键辅助等 &lt;strong>轻量级工具&lt;/strong>&lt;/li>
&lt;li>剪贴板操作或 IME 控制等 &lt;strong>系统实用程序&lt;/strong>&lt;/li>
&lt;li>全局钩子或窗口捕获等 &lt;strong>原生控制系应用&lt;/strong>&lt;/li>
&lt;li>与硬件紧密协作的 &lt;strong>驱动辅助工具&lt;/strong>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="不适合的用途">不适合的用途
&lt;/h2>&lt;ul>
&lt;li>重视现代 UI/UX 的 &lt;strong>面向普通消费者的应用&lt;/strong>&lt;/li>
&lt;li>速度优先的 &lt;strong>原型制作或 MVP 开发&lt;/strong>&lt;/li>
&lt;li>以长期运营或团队开发为前提的 &lt;strong>大规模项目&lt;/strong>&lt;/li>
&lt;li>需要支持多个操作系统的 &lt;strong>跨平台产品&lt;/strong>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="评价总结">评价总结
&lt;/h2>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>维度&lt;/th>
&lt;th>评价&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>执行速度&lt;/td>
&lt;td>◎ 非常快&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内存效率&lt;/td>
&lt;td>◎ 优秀&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>开发速度&lt;/td>
&lt;td>× 慢&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>维护性&lt;/td>
&lt;td>× 低&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>跨平台支持&lt;/td>
&lt;td>× 不支持&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>现代 UI 支持&lt;/td>
&lt;td>× 弱&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>OS 控制自由度&lt;/td>
&lt;td>◎ 压倒性地高&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="结论">结论
&lt;/h2>&lt;p>&lt;strong>Win32API + C++ 是适合“想要自己处理操作系统的一切”的开发者的工具。&lt;/strong>
虽然它的力量非常强大，但在学习和运用上也需要相应的心理准备。&lt;/p>
&lt;blockquote>
&lt;p>是否有“特意去选择”的价值，取决于你目标应用的性质。&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;p>不依赖 GUI 框架或现代语言，跃入 &lt;code>#include &amp;lt;windows.h&amp;gt;&lt;/code> 的世界——
这种选择，至今依然是有意义的。&lt;/p></description></item></channel></rss>