<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>且听书吟</title>
        <link>https://yufan.me</link>
        <description>诗与梦想的远方</description>
        <lastBuildDate>Wed, 06 May 2026 22:50:56 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>WordPress 3.2.1</generator>
        <language>zh-CN</language>
        <image>
            <title>且听书吟</title>
            <url>https://yufan.me/logo.svg</url>
            <link>https://yufan.me</link>
        </image>
        <copyright>All rights reserved 2011, 雨帆</copyright>
        <category>文章</category>
        <category>杂谈</category>
        <category>杂思</category>
        <category>编程</category>
        <category>笔记</category>
        <category>小说</category>
        <atom:link href="https://yufan.me/tags/random-thoughts/feed" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[不要总是走在准备的路上]]></title>
            <link>https://yufan.me/posts/just-try</link>
            <guid isPermaLink="false">https://yufan.me/posts/just-try</guid>
            <pubDate>Mon, 04 Apr 2016 04:45:43 GMT</pubDate>
            <description><![CDATA[上周和一个即将毕业的大学生聊天，他很厉害，学了很多，抱怨到很多人学了很多编程语言，但最后都只是会写一个“Hello World”的程度。]]></description>
            <content:encoded><![CDATA[<link rel="preload" as="image" href="https://cat.yufan.me/images/2020/09/2020090419493263.jpg"/><link rel="preload" as="image" href="https://cat.yufan.me/images/2020/09/2020090419530721.jpg"/><img src="https://cat.yufan.me/images/2020/09/2020090419493263.jpg" alt="9692 - 「中身が無い」"/>
<div class="tw:max-w-87.5 tw:mt-5 tw:mb-5.5 tw:max-xl:mx-auto tw:max-md:max-w-full tw:max-md:mt-0 tw:max-md:mx-0 tw:max-md:mb-5"><div class="aplayer" data-id="5047858"></div></div>
<p>上周和一位即将毕业的大学生聊天。他很厉害，学了很多东西，却感叹道：“很多人学了好多编程语言，但最后也只停留在能写一个 ‘Hello World’<sup><a href="#user-content-fn-1" id="user-content-fnref-1" data-footnote-ref="true" aria-describedby="footnote-label">1</a></sup> 的程度。”
我笑了笑，说：“那是因为他们大多一直在<strong>准备</strong>学习，往往刚刚开始，就放弃了。”</p>
<p style="text-align:right">——题记</p>
<p>我叫雨帆。所有汉字中，我最喜欢、也最擅长写的就是“雨”和“帆”这两个字。并不是因为我字写得好，而是因为我专门练过。</p>
<p>这句话，其实可以套在很多事情上。无论是技能还是兴趣，想要掌握，都不是一蹴而就的，而是反复练习、持续积累的结果。没有人能一开始就成长为参天大树，即使是天才，也有常人难以想象的汗水与努力。</p>
<p>所以一直以来，我都很认同一句话：<a href="/posts/intimate-in-mind/">信念永远不能达到目的地</a>。每个人都有自己的梦想，但如果只是停留在“梦想”，不去行动，那么它也仅仅是一个梦。</p>
<p>记得三年前，有一位叫 <a href="/posts/meeting/">谢钦</a> 的网友给我发邮件，问了很多关于独立博客的问题。那一刻我就像在茫茫大海中看见了一束光。因为长期以来，我总以为只有我一个人在做这件事，身边无人理解。而突然有人懂你、与你共鸣的感觉，真的让人感动。</p>
<p>然而三年过去，他的博客主页上依然写着那句话：“未命名博客更新中……”</p>
<p>我并不是要刻意嘲讽这位朋友，而是觉得有些遗憾。因为，建立一个独立博客的准备过程真的很麻烦——尤其是在国内，还得经历繁琐的备案流程。若不是出于热爱，很多人一开始就会选择放弃。可惜的是，即便准备好了域名、服务器、系统、模板，却在最关键的一步——“开始写作”——上放弃了。</p>
<hr/>
<p>写代码的时候，老大会经常提醒我们一句话：**不要过度设计。**所谓过度设计，就是和业务无关的东西写了一大堆，但真正关键的业务逻辑却很少。</p>
<p>说到这儿，不得不提知乎上那个很火的问题：<a href="https://www.zhihu.com/question/32039226/answer/76059969" rel="nofollow" target="_blank">为什么有些大公司技术弱爆了？</a>看到这个问题时，我就想起前老大常说的一句话——<strong>“满足业务需求的代码，就是好代码。”</strong></p>
<p>对于很多还没毕业的计算机专业学生来说，这句话可能难以理解。毕竟当他们看到一些外表光鲜的项目，却发现底层代码简直糟糕透顶，甚至数据库设计都违反教科书级规范时，往往会感到震惊。但事实是，这些项目之所以存在、盈利，正是因为它们最起码做对了一件事：<strong>满足了业务需求。</strong></p>
<p>当然，我并不是在为“烂代码”洗地。对于互联网公司而言，快速上线、持续迭代，才是维持竞争力的关键。尤其是智能手机用户可能最有体会——许多 APP 一周能更新好几次。那为什么不一开始就把设计定好呢？</p>
<p>从产品角度来看，**需求是不断变化的。**以输入法为例：最初用户只想打字时少选字，于是有了词库；后来又有了按词频排序的候选词；再后来，因网络聊天的普及，出现了 Emoji、字符画等功能……这些需求的出现，谁也无法在最初设计阶段预料到。如果你一开始就想面面俱到，潜心打磨几个月甚至几年，结果很可能是：要么市场早被别人抢走，要么你自己被耗死在设计阶段。</p>
<p>所以，很多事情一开始不可能就做到完美。如果只是一味思考“怎么做好”，而迟迟不动手，那永远也做不出来。你必须先动手——哪怕只是写个 demo，先跑通主流程，再一点点打磨细节。如果一开始就追求完美，要么累到想放弃，要么根本等不到成果。</p>
<hr/>
<p>上周参加 OpenResty Meetup 时，我和一位架构师聊到“架构设计”。在他看来，<strong>架构的存在，是公司业务达到一定规模后的自然产物。<strong>对初创公司来说，架构往往不是必需品，因为业务量还没到那个程度。套用</strong>安迪·比尔定律</strong>，当你的业务规模还很小，再精致的架构设计都不如一个能跑的主流程。按照业内的常见标准，只有当业务量上升到百万级，才真正需要系统性的架构与设计。</p>
<p>当然，这种观点或许有些偏激，我保留意见。但如果回到“写代码”这件事上，我觉得成长路径大概是这样的：</p>
<blockquote>
<p><code>能写出代码</code> → <code>能写出满足业务需求的代码</code> → <code>能优化满足业务需求的代码</code> → <code>能为未来的需求变化预留接口</code> →<br/>
<code>能将可变行为参数化</code> → <code>能在现有语言体系中持续演进</code> →<br/>
<code>不再为设计模式而设计模式</code> → <code>理解并践行 Clean Code 准则</code> → <code>拥抱 TDD，不断重构与测试驱动。</code></p>
</blockquote>
<p>换句话说：
<strong>不要为了设计模式而设计模式，不要提前优化，不要过度封装，不要一味追新技术。</strong></p>
<p>很多经验丰富的程序员写的代码，往往小而精，恰到好处。当年我在写公司开放平台时，整整半个月几乎毫无进展。后来带我的师兄对我说了一句让我醍醐灌顶的话：</p>
<blockquote>
<p>“先理解需求，构建抽象实体，打通主流程。”</p>
</blockquote>
<p>如果我一直纠结“用什么框架”“怎么写才优雅”，那今天可能还没写出任何成果。</p>
<p>完美主义是很多人的通病。我们希望一开始就把事情做到最好，于是花大量时间准备、思考、权衡。等真正动手时，却发现别人早已领先几步。</p>
<p>当然，<strong>准备</strong>是必要的，但<strong>行动</strong>才是关键。只准备、不实践，再好的计划也只是纸上谈兵。</p>
<img src="https://cat.yufan.me/images/2020/09/2020090419530721.jpg" alt="9692 - bleu ciel"/>
<section data-footnotes="true" class="footnotes"><h2 class="sr-only" id="footnote-label">Footnotes<a href="#footnote-label"><span class="icon icon-link"></span></a></h2>
<ol>
<li id="user-content-fn-1">
<p>Hello World：基本上任何编程语言的教科书，一开始都是教大家如何写一个Hello World，久而久之成为一个梗。 <a href="#user-content-fnref-1" data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref">↩</a></p>
</li>
</ol>
</section>]]></content:encoded>
            <author>syhily@gmail.com (雨帆)</author>
            <category domain="https://yufan.me/tags/random-thoughts">随笔</category>
            <category domain="https://yufan.me/cats/coding">编程</category>
            <enclosure url="https://yufan.me/images/og/just-try.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[优雅的旧时光]]></title>
            <link>https://yufan.me/posts/the-elegant-past</link>
            <guid isPermaLink="false">https://yufan.me/posts/the-elegant-past</guid>
            <pubDate>Wed, 14 Nov 2012 18:18:45 GMT</pubDate>
            <description><![CDATA[周一晚上，考完经济双学位考试后，我在回软件园的公交车上睡着了。被雨帆的电话吵醒时，正好眼睁睁地看着错过了要下车的站点，坐到了齐鲁软件园站。想来长达半个小时的车程，怎么每次都睡得这么深沉呢？]]></description>
            <content:encoded><![CDATA[<link rel="preload" as="image" href="https://cat.yufan.me/images/2012/11/2012111521361800.jpg"/><link rel="preload" as="image" href="https://cat.yufan.me/images/2012/11/2012111521362300.jpg"/><img src="https://cat.yufan.me/images/2012/11/2012111521361800.jpg" alt="届け - mocha@新刊委託中"/>
<div class="tw:max-w-87.5 tw:mt-5 tw:mb-5.5 tw:max-xl:mx-auto tw:max-md:max-w-full tw:max-md:mt-0 tw:max-md:mx-0 tw:max-md:mb-5"><div class="aplayer" data-id="1904723155"></div></div>
<p>周一晚上，考完经济双学位考试后，我在回软件园的公交车上睡着了。</p>
<p>被雨帆的电话吵醒时，正好眼睁睁地看着错过了要下车的站点，坐到了齐鲁软件园站。想来长达半个小时的车程，怎么每次都睡得这么深沉呢？下车的时候已经是夜里九点，但幸好只错过一站。思前想后，决定走回去。深秋的济南才下了一场雨，夜里独自走在人烟稀少的人行道上，总感觉空气那么湿冷。身边偶尔擦身而过的情侣提醒着我的孤单，让我不由得回想起刚刚过去的夏天，一如既往的思念弥漫的季节。我想，那时的你也许和我一样，一个人走在回家的路上，怀念着我们在一起的旧时光。又或许，不会……</p>
<p>一个人的时候，总是羡慕那些在风雨中相伴漫步的情侣，羡慕那些在长椅上温柔依偎的恋人，更羡慕像父母一样提篮买菜的老夫老妻。在当今通信如此便捷的年代，我不知道为什么总是满怀这么多的想念。</p>
<p>曾几何时，我也做过那柔情的人儿，为花开低眉，为云朵驻足，为萌芽而感动。我将一切的思绪埋藏在阁楼的笔记本里，用满是华丽的词藻去替代细腻的感触。这世间的女子，我想都有过相似的优雅，素然却令人心动，回首间让人有了一种不敢轻触的美好。</p>
<p>周三的上午没有课，一个人在寝室听了一个早上的广播剧《致我们终将逝去的青春》。辛夷坞用满怀温情的笔触写着：“青春就是用来追忆的。当你怀揣着它时，它一文不值。只有将它耗尽后，再回过头看，一切才有意义。爱过我们和伤害过我们的人都是我们青春存在的意义。”想起某次在淘宝上看到一位同龄人将自己二十岁的身体拍照做成明信片纪念，似乎年轻的美好在那个时候统统凝结——永远年轻的二十岁。</p>
<p>听着广播剧，看着人人网大家的状态，发现失恋很久的闺蜜写道：“越来越爱。”我替她高兴，因为她终于找到了自己喜欢的人。我一直坚信着，善良美好的孩子，怎么会不幸福？</p>
<p>妈妈说过，女孩子要开朗、要坚强、要温柔、要活泼，要相信美好，要带着一点纯真而活。仰起头看着阳台外枯萎的梧桐叶摇摇欲坠，细碎的阳光透过叶隙散落在我的眉角，我习惯性地打了一个大大的喷嚏。时间素淡如水地流逝，简单就是最好的日子。就像现在，一个人在宿舍，听着 QQ 语音里雨帆的絮叨声，写下这些字，回忆才刚刚过去的些许小事。内心淡然安稳，但还没到万事波澜不惊的境地，只是这样也没关系。活着，何必费心于计较心情，想着天天可以遇到好事情。</p>
<p>但其实每个人都明白，人生没有绝对的一帆风顺。既然我们都只是过客，为何不携一颗从容恬淡的心，走过山重水复的似水年华，笑看风起尘落的人间，许一世安然。淡淡红尘，淡淡心境，淡淡而来，淡淡而走。</p>
<p>优雅的旧时光里，浅笑嫣然。</p>
<img src="https://cat.yufan.me/images/2012/11/2012111521362300.jpg" alt="シークレットライブ - mocha@新刊委託中"/>]]></content:encoded>
            <author>syhily@gmail.com (雨帆)</author>
            <category domain="https://yufan.me/tags/random-thoughts">随笔</category>
            <category domain="https://yufan.me/cats/article">文章</category>
            <enclosure url="https://yufan.me/images/og/the-elegant-past.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>