<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>杂谈 on 雪狼的书斋</title>
    <link>/%E6%9D%82%E8%B0%88/</link>
    <description>Recent content in 杂谈 on 雪狼的书斋</description>
    <generator>Hugo</generator>
    <language>zh-hans</language>
    <atom:link href="/%E6%9D%82%E8%B0%88/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>1.君子不器</title>
      <link>/%E6%9D%82%E8%B0%88/010-%E5%90%9B%E5%AD%90%E4%B8%8D%E5%99%A8/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9D%82%E8%B0%88/010-%E5%90%9B%E5%AD%90%E4%B8%8D%E5%99%A8/</guid>
      <description>&lt;h2 id=&#34;器的悲哀你正在被定义为一颗螺丝钉吗&#34;&gt;「器」的悲哀：你正在被定义为一颗螺丝钉吗？&lt;a class=&#34;anchor&#34; href=&#34;#%e5%99%a8%e7%9a%84%e6%82%b2%e5%93%80%e4%bd%a0%e6%ad%a3%e5%9c%a8%e8%a2%ab%e5%ae%9a%e4%b9%89%e4%b8%ba%e4%b8%80%e9%a2%97%e8%9e%ba%e4%b8%9d%e9%92%89%e5%90%97&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;孔子在《论语·为政》中说：「&lt;strong&gt;君子不器&lt;/strong&gt;。」&lt;/p&gt;&#xA;&lt;p&gt;这句话流传了两千多年，在当下这个剧烈变化的时代，更显真谛。孔老夫子的意思是：&lt;strong&gt;君子不应该像器皿一样，只有单一的用途。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;一个杯子，只能盛水；一把锤子，只能敲钉子。如果你把自己仅仅定义为「切图仔」、「Java 后端」、「测试工程师」，那么你就把自己变成了一个「器」 —— 一颗随时可能被替代的&lt;strong&gt;螺丝钉&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;在工业时代，流水线需要的是标准的&lt;strong&gt;螺丝钉&lt;/strong&gt;。但在 &lt;strong&gt;AI 时代&lt;/strong&gt;，做一个「器」是极其危险的。因为所有的单一技能，最终都会被 AI 以极低的成本替代，甚至淘汰。那么，我们该如何避免这种「器的悲哀」？&lt;/p&gt;&#xA;&lt;h2 id=&#34;打破边界从我到我们&#34;&gt;打破边界：从「我」到「我们」&lt;a class=&#34;anchor&#34; href=&#34;#%e6%89%93%e7%a0%b4%e8%be%b9%e7%95%8c%e4%bb%8e%e6%88%91%e5%88%b0%e6%88%91%e4%bb%ac&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;很多程序员的职业天花板，往往不是技术能力，而是&lt;strong&gt;角色认知的局限&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;前端说：「接口报 500 了，那是后端的事，别找我。」&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;后端说：「页面样式乱了，那是前端的事，我只管数据。」&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;开发说：「上线挂了，那是运维的事，我的代码在本地是好的。」&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这种画地为牢的心态，就是典型的「&lt;strong&gt;器&lt;/strong&gt;」 思维。它让你把自己局限在一个狭小的舒适区里，看不见系统的全貌。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;君子不器&lt;/strong&gt;，意味着你要打破这些人为设定的边界。&lt;/p&gt;&#xA;&lt;p&gt;当你是一个前端时，你应该去了解后端是怎么工作的，数据库是怎么设计的。当你是一个开发时，你应该去了解产品是怎么规划的，运维是怎么部署的。&lt;/p&gt;&#xA;&lt;p&gt;这不是让你一个人干完所有人的活，而是让你拥有&lt;strong&gt;全局视角（Holistic View）&lt;/strong&gt;。当你拥有了全局视角，你写的代码就会更健壮，你的沟通就会更顺畅，你的价值就会成倍增长。&lt;/p&gt;&#xA;&lt;h2 id=&#34;全栈不是样样稀松而是触类旁通&#34;&gt;全栈：不是样样稀松，而是触类旁通&lt;a class=&#34;anchor&#34; href=&#34;#%e5%85%a8%e6%a0%88%e4%b8%8d%e6%98%af%e6%a0%b7%e6%a0%b7%e7%a8%80%e6%9d%be%e8%80%8c%e6%98%af%e8%a7%a6%e7%b1%bb%e6%97%81%e9%80%9a&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;「&lt;strong&gt;全栈工程师&lt;/strong&gt;」 （Full Stack Engineer）这个词曾经很火，后来又被很多人诟病，说全栈就是「样样通，样样松」。&lt;/p&gt;&#xA;&lt;p&gt;真正的&lt;strong&gt;全栈&lt;/strong&gt;，并不是要求你精通每一门技术。人的精力是有限的，你不可能既是顶级的 DBA，又是顶级的后端架构师，还是顶级的算法专家。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;全栈的本质，是解决问题的能力不被技术栈所限制。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;当项目需要一个管理后台时，你可以用 Angular + NestJS 快速搞定；当需要做数据分析时，你可以捡起 Python 跑几个脚本；当需要优化性能时，你可以去研究 Nginx 的配置。&lt;/p&gt;&#xA;&lt;p&gt;你可能不是每个领域的专家，但你拥有&lt;strong&gt;快速学习并解决问题&lt;/strong&gt;的能力。这才是 &lt;strong&gt;AI 时代&lt;/strong&gt;最核心的竞争力。&lt;/p&gt;&#xA;&lt;h2 id=&#34;产品思维技术人的终极进化&#34;&gt;产品思维：技术人的终极进化&lt;a class=&#34;anchor&#34; href=&#34;#%e4%ba%a7%e5%93%81%e6%80%9d%e7%bb%b4%e6%8a%80%e6%9c%af%e4%ba%ba%e7%9a%84%e7%bb%88%e6%9e%81%e8%bf%9b%e5%8c%96&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;比技术全栈更重要的，是&lt;strong&gt;思维全栈&lt;/strong&gt;。也就是拥有&lt;strong&gt;产品思维&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;很多技术人容易陷入「自嗨」模式：为了用新技术而重构，为了追求极致性能而过度优化。却忘了问一个最根本的问题：&lt;strong&gt;这能给用户带来什么价值？&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;拥有&lt;strong&gt;产品思维&lt;/strong&gt;的技术人，会思考：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;这个功能真的是用户需要的吗？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;有没有更简单的低成本方案能达到同样的效果？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;这个技术决策会如何影响产品的上市时间（TTM）？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;当你开始用商业价值来衡量技术决策时，你就完成了从「码农」到「工程师」，再到「&lt;strong&gt;技术合伙人&lt;/strong&gt;」 的蜕变。&lt;/p&gt;&#xA;&lt;h2 id=&#34;结语&#34;&gt;结语&lt;a class=&#34;anchor&#34; href=&#34;#%e7%bb%93%e8%af%ad&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;不要做一把只能敲钉子的锤子，要做一只拥有无限可能的&lt;strong&gt;瑞士军刀&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;在这个技术日新月异的时代，唯一的铁饭碗，就是你&lt;strong&gt;不断打破边界、重塑自我的能力&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;君子不器，周行天下。&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>2.直言不讳</title>
      <link>/%E6%9D%82%E8%B0%88/020-%E7%9B%B4%E8%A8%80%E4%B8%8D%E8%AE%B3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9D%82%E8%B0%88/020-%E7%9B%B4%E8%A8%80%E4%B8%8D%E8%AE%B3/</guid>
      <description>&lt;h2 id=&#34;为什么我们害怕说真话&#34;&gt;为什么我们害怕说真话？&lt;a class=&#34;anchor&#34; href=&#34;#%e4%b8%ba%e4%bb%80%e4%b9%88%e6%88%91%e4%bb%ac%e5%ae%b3%e6%80%95%e8%af%b4%e7%9c%9f%e8%af%9d&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;在东方的职场文化中，「&lt;strong&gt;和为贵&lt;/strong&gt;」 的思想根深蒂固。我们害怕冲突，害怕得罪人，害怕因为一句批评而破坏了同事关系。&lt;/p&gt;&#xA;&lt;p&gt;于是，在 &lt;strong&gt;Code Review&lt;/strong&gt; 时，我们明明看到了一坨「&lt;strong&gt;屎山&lt;/strong&gt;」 ，却委婉地说：「这个逻辑是不是可以再优化一下？」在需求评审时，我们明明觉得这个功能毫无价值，却沉默不语，心里想着：「反正产品经理让做就做呗，到时候没人用也不关我事。」&lt;/p&gt;&#xA;&lt;p&gt;这种「一团和气」的背后，是对产品、对团队、对公司最大的不负责任。这是一种&lt;strong&gt;伪善&lt;/strong&gt;。我们是否真的能做到在&lt;strong&gt;关怀&lt;/strong&gt;与&lt;strong&gt;挑战&lt;/strong&gt;之间找到平衡，让团队敢于&lt;strong&gt;直言不讳&lt;/strong&gt;，共同成长？&lt;/p&gt;&#xA;&lt;h2 id=&#34;什么是直言不讳&#34;&gt;什么是「直言不讳」？&lt;a class=&#34;anchor&#34; href=&#34;#%e4%bb%80%e4%b9%88%e6%98%af%e7%9b%b4%e8%a8%80%e4%b8%8d%e8%ae%b3&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;「&lt;strong&gt;直言不讳&lt;/strong&gt;」 （Radical Candor）不是让你做一个只会喷人的「杠精」，也不是让你进行人身攻击。它包含两个核心要素：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;个人关怀（Care Personally）&lt;/strong&gt;：你必须发自内心地关心对方，希望对方成长，希望项目成功。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;直接挑战（Challenge Directly）&lt;/strong&gt;：在关怀的基础上，直接指出问题，不拐弯抹角，不留情面。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;这两者&lt;strong&gt;缺一不可&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;只有&lt;strong&gt;直接挑战&lt;/strong&gt;没有&lt;strong&gt;个人关怀&lt;/strong&gt;，那是&lt;strong&gt;恶意攻击&lt;/strong&gt;（Obnoxious Aggression）。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;只有&lt;strong&gt;个人关怀&lt;/strong&gt;没有&lt;strong&gt;直接挑战&lt;/strong&gt;，那是&lt;strong&gt;滥用同情&lt;/strong&gt;（Ruinous Empathy），这是最常见的职场烂好人，最终会害了对方。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;既没有&lt;strong&gt;关怀&lt;/strong&gt;也没有&lt;strong&gt;挑战&lt;/strong&gt;，那是&lt;strong&gt;虚伪操纵&lt;/strong&gt;（Manipulative Insincerity），纯粹的职场厚黑学。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;为什么产品研发需要直言不讳&#34;&gt;为什么产品研发需要「直言不讳」？&lt;a class=&#34;anchor&#34; href=&#34;#%e4%b8%ba%e4%bb%80%e4%b9%88%e4%ba%a7%e5%93%81%e7%a0%94%e5%8f%91%e9%9c%80%e8%a6%81%e7%9b%b4%e8%a8%80%e4%b8%8d%e8%ae%b3&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;软件工程是一个极其复杂的智力活动，没有人是全知全能的。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;纠错成本&lt;/strong&gt;：一个架构设计的缺陷，如果在设计评审阶段被指出，改动成本可能只是几句话；如果在代码写完后被指出，成本是几天；如果在上线后才暴露，成本可能是巨大的经济损失和品牌信誉。&lt;strong&gt;直言不讳&lt;/strong&gt;能将纠错点尽可能前移。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;激发创意&lt;/strong&gt;：最好的创意往往是在激烈的思想碰撞中产生的。如果大家都唯唯诺诺，只会产出平庸的产品。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;建立信任&lt;/strong&gt;：这听起来很反直觉，但真正的信任不是建立在客客气气上，而是建立在「我知道你会为了我好而告诉我真相」上。当你可以放心地把后背交给战友，相信他会在你犯错时第一时间拉你一把，这才是最坚固的&lt;strong&gt;信任&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;如何践行直言不讳&#34;&gt;如何践行「直言不讳」？&lt;a class=&#34;anchor&#34; href=&#34;#%e5%a6%82%e4%bd%95%e8%b7%b5%e8%a1%8c%e7%9b%b4%e8%a8%80%e4%b8%8d%e8%ae%b3&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-对事不对人&#34;&gt;1. 对事不对人&lt;a class=&#34;anchor&#34; href=&#34;#1-%e5%af%b9%e4%ba%8b%e4%b8%8d%e5%af%b9%e4%ba%ba&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;这是老生常谈，但很难做到。批评时，请聚焦于&lt;strong&gt;具体的行为和结果&lt;/strong&gt;，而不是对方的性格或能力。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;错误示范&lt;/strong&gt;：「你写的代码太烂了，你是不是没带脑子？」（攻击人）&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;正确示范&lt;/strong&gt;：「这个函数的复杂度太高了，嵌套了五层，导致可读性很差，且难以测试。建议拆分成几个子函数。」（讨论事）&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;2-接受被怼的雅量&#34;&gt;2. 接受被怼的雅量&lt;a class=&#34;anchor&#34; href=&#34;#2-%e6%8e%a5%e5%8f%97%e8%a2%ab%e6%80%bc%e7%9a%84%e9%9b%85%e9%87%8f&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;作为团队的 Leader 或资深员工，你要带头接受批评。当新人指出你的错误时，不要急着辩解，先听完，如果是对的，公开承认并感谢他。&lt;/p&gt;&#xA;&lt;p&gt;在 ThoughtWorks，我们有一种文化叫「&lt;strong&gt;No VIP&lt;/strong&gt;」 。无论你是刚刚入职的毕业生，还是工作二十年的总监，在技术真理面前，人人平等。如果架构师的设计有漏洞，应届生完全可以跳起来反对。&lt;/p&gt;&#xA;&lt;h3 id=&#34;3-赞美要公开批评要私下不一定&#34;&gt;3. 赞美要公开，批评要私下？不一定。&lt;a class=&#34;anchor&#34; href=&#34;#3-%e8%b5%9e%e7%be%8e%e8%a6%81%e5%85%ac%e5%bc%80%e6%89%b9%e8%af%84%e8%a6%81%e7%a7%81%e4%b8%8b%e4%b8%8d%e4%b8%80%e5%ae%9a&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;传统的管理学建议「公开赞美，私下批评」。但在高绩效的技术团队中，对于技术问题、设计方案的批评，&lt;strong&gt;公开进行&lt;/strong&gt;往往更有效。因为这不仅仅是纠正一个人的错误，更是一次全员学习的机会，也是树立技术标准的时刻。&lt;/p&gt;&#xA;&lt;p&gt;当然，如果涉及到个人态度、职业素养等敏感问题，仍然建议私下沟通。&lt;/p&gt;&#xA;&lt;h2 id=&#34;结语良药苦口&#34;&gt;结语：良药苦口&lt;a class=&#34;anchor&#34; href=&#34;#%e7%bb%93%e8%af%ad%e8%89%af%e8%8d%af%e8%8b%a6%e5%8f%a3&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;直言不讳&lt;/strong&gt;就像是一剂中药，入口虽苦，却能治病救人。&lt;/p&gt;&#xA;&lt;p&gt;在一个充满不确定性的商业世界里，我们就像是一群在迷雾中探险的旅人。只有每个人都敢于大声喊出自己看到的悬崖和陷阱，我们这支队伍才能走得更远。&lt;/p&gt;&#xA;&lt;p&gt;别做那个为了「面子」而眼睁睁看着船沉没的&lt;strong&gt;水手&lt;/strong&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>3.自律即自由</title>
      <link>/%E6%9D%82%E8%B0%88/030-%E8%87%AA%E5%BE%8B%E5%8D%B3%E8%87%AA%E7%94%B1/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9D%82%E8%B0%88/030-%E8%87%AA%E5%BE%8B%E5%8D%B3%E8%87%AA%E7%94%B1/</guid>
      <description>&lt;p&gt;「七十而从心所欲，不逾矩。」这是孔子对自己人生最高境界的总结。一个「从心所欲」，道尽了极致的&lt;strong&gt;自由&lt;/strong&gt;；一个「不逾矩」，又暗含着深刻的&lt;strong&gt;自律&lt;/strong&gt;。这看似矛盾的二者，究竟如何在一个人身上达到完美的统一？这，或许正是我们每个人，尤其是技术人，在追求自我修养时所面临的终极拷问。&lt;/p&gt;&#xA;&lt;p&gt;我们渴望真正的自由 —— 那种不装在套子里、不为世俗所累、不刻意特立独行的&lt;strong&gt;深刻自由&lt;/strong&gt;。它意味着想我所想、做我想做、说我想说，达到立德立功立言的境界。然而，这份自由并非没有边界，它需要我们不断探索世界的规律、社会的规矩，并在对人性的深刻思考中，构建起一个统一的思想体系。&lt;/p&gt;&#xA;&lt;p&gt;在成长过程中，我们总是在「他律」中被磨平棱角，学会适应规则。但这是否意味着我们必须牺牲内心的原则与自由的灵魂？当我们为了发泄而伤害他人，或为了「不逾矩」而委屈自己时，这两种损失都同样可惜。&lt;/p&gt;&#xA;&lt;p&gt;那么，如何才能找到那条既能「从心所欲」，又能「不逾矩」的通途？答案，或许就在于&lt;strong&gt;自律&lt;/strong&gt;。它并非束缚，而是通向更高层次自由的唯一桥梁。&lt;/p&gt;&#xA;&lt;p&gt;在成长过程中，你会不断的探索世界的规律、社会的规矩，并且在对人性的不断思考和理解中，将其构建成一个统一的思想体系。而你自己，在这个思想体系的指导下，做任何一件事，都不会引发自己的逻辑冲突。如果你这个思想体系的边界，能做到与社会的普遍规律相一致，那么这个世界便是你的天地。在你的天地中，便意味着无限的空间，不再有碰壁的可能。&lt;/p&gt;&#xA;&lt;p&gt;在中国文化中，这种自由与自律的平衡与统一，固然没有几个人能做到，但是却渗透在我们的诗词歌赋中，渗透在我们的历史典故和民间传说中，渗透在父亲的责骂和母亲的哭泣中，永远难忘记。我们今天觉得每一句「子曰」都仿佛平淡无奇，其实是因为「子曰」是水，我们是鱼，而鱼是看不见水的。&lt;/p&gt;&#xA;&lt;p&gt;当新冠来袭，很多中国人都默默地收起了旅行计划，准备把一场携天地之威而来的大洪水消弭于无形。我们不逃避，我们不求神，我们不拜佛，只想沉默地进行一场战斗，在打出「全剧终」之前，不言败。&lt;/p&gt;&#xA;&lt;p&gt;我们没有斩天的刀，我们没有筑坝的息壤，但我们有人间最好的武器，那便是&lt;strong&gt;自律&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;当武汉宣布封城，一千多万武汉人民速冻了自己的生活。没有打砸抢烧，没有哭天喊地，只有沉默的坚守，只有默默地承受、默默地牺牲。即使在痛苦中承受着别人的错误，也要让这种牺牲止于自己。他们，就是上甘岭上一动不动的英雄。中国，要给武汉人民一句感谢；世界，也要给武汉人民一句感谢。&lt;/p&gt;&#xA;&lt;p&gt;中国其他地区能够得以复工复产的&lt;strong&gt;自由&lt;/strong&gt;，来自武汉人民的&lt;strong&gt;自律&lt;/strong&gt;，也来自全国人民的&lt;strong&gt;自律&lt;/strong&gt;。一场《流浪地球》般的饱和式救援，在现实中上演。谁能想到在一个办公室中尚且内斗不止的中国人，竟然自发组织出了无数支大大小小的救援队伍，用人员、用物资、用难以想象的速度，硬生生把一条指数增长曲线给砸成了指数式衰减曲线？就连中国自己的防疫专家建立的计算机模型都脱靶了。把无数陌生人组织成战役小分队，并最终汇合成一场大会战的原力，除了「我们是中国人」的认同感之外，首推便是&lt;strong&gt;自律&lt;/strong&gt;的力量。&lt;/p&gt;&#xA;&lt;h1 id=&#34;展望&#34;&gt;展望&lt;a class=&#34;anchor&#34; href=&#34;#%e5%b1%95%e6%9c%9b&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;自律&lt;/strong&gt;，并非只在灾难中才能展现。生活中，我们也处处体现着&lt;strong&gt;自律&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;在&lt;strong&gt;自律&lt;/strong&gt;中，我们不断探索&lt;strong&gt;自由&lt;/strong&gt;的边界。即使还有很多无奈，但只要一点点去争取、去改变，我们的&lt;strong&gt;自由&lt;/strong&gt;总会扩展到让每个人都尽可能舒适的程度。当每个人的&lt;strong&gt;自由&lt;/strong&gt;与&lt;strong&gt;自律&lt;/strong&gt;都能合一的时候，那便是乐土。&lt;/p&gt;&#xA;&lt;p&gt;世外没有天堂，&lt;strong&gt;乐土就在人间&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;谨以此文，纪念我们的 2020 魔幻式开局，以及预期中的魔幻式结局。&lt;/p&gt;</description>
    </item>
    <item>
      <title>4.Github 的用法与礼仪</title>
      <link>/%E6%9D%82%E8%B0%88/040-github-%E7%9A%84%E7%94%A8%E6%B3%95%E4%B8%8E%E7%A4%BC%E4%BB%AA/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9D%82%E8%B0%88/040-github-%E7%9A%84%E7%94%A8%E6%B3%95%E4%B8%8E%E7%A4%BC%E4%BB%AA/</guid>
      <description>&lt;p&gt;你是否也曾想为心仪的开源项目贡献一份力量，却又担心「姿势不对」？抑或是初次接触 GitHub，面对 Watch、Star、Fork 等按钮感到一头雾水？前一阵国内用户滥用 Issue 的风波，更是引发了我们对全球开源社区协作规范的深思。&lt;/p&gt;&#xA;&lt;p&gt;作为一名在 GitHub &lt;strong&gt;浪迹多年&lt;/strong&gt;的老兵，雪狼今天就来和你聊聊，如何在这片充满活力的数字土地上，游刃有余地穿梭，并成为一名受人尊敬的&lt;strong&gt;贡献者&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;作为游客&#34;&gt;作为游客&lt;a class=&#34;anchor&#34; href=&#34;#%e4%bd%9c%e4%b8%ba%e6%b8%b8%e5%ae%a2&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;当你访问一个仓库的时候，会遇到三个按钮：&lt;strong&gt;Watch&lt;/strong&gt;（关注） / &lt;strong&gt;Star&lt;/strong&gt;（星标） / &lt;strong&gt;Fork&lt;/strong&gt;（分叉）。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Watch&lt;/strong&gt; 表示你对这个仓库中发生的事件感兴趣，比如出现了新的 issue 等。当这些事件发生时，GitHub 就会自动给你一个页面通知，并往你的注册邮箱发送一封邮件。当然，你也可以在通知设置界面禁止这些通知。当你 &lt;strong&gt;Watch&lt;/strong&gt; 很多仓库的时候，通知邮件可能会把你的邮箱塞满。这时候，除了在自己的邮箱设置规则之外，也可以在这里禁用通知。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Star&lt;/strong&gt; 表示特别标记这个仓库，这和邮箱中的 Star 是一样的。严格意义上，它只是你个人需要经常访问它而进行的快捷标注，这样你就能通过 Your stars 页面（比如我 Star 过的项目）来快速找到这些项目了。它经常被用作表达支持的投票，官方也提倡如此，不过我很少会这么做。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Fork&lt;/strong&gt; 有两种用途：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;你要参与它，为它提交代码，这部分我会在稍后的【作为贡献者】部分细讲。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;觉得这个仓库可能会被原作者删掉，因此 &lt;strong&gt;Fork&lt;/strong&gt; 出来一份。这样即使作者删掉了，你这里也有一个 &lt;strong&gt;Fork&lt;/strong&gt; 那个时间点的版本的快照。不过要注意，&lt;strong&gt;Fork&lt;/strong&gt; 出来的版本是不会随着原始仓库而自动更新的。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;理想情况下，后一种情况该算误用，因为已经开源出来的代码原作者是不应该删除的。但是确实有过被删除的情况。所以有时候我会把 &lt;strong&gt;Fork&lt;/strong&gt; 但不打算发 PR 的行为看作是对库作者的「不信任投票」。当然，大多数的仓库作者可能不会这么想。&lt;/p&gt;&#xA;&lt;h2 id=&#34;作为贡献者&#34;&gt;作为贡献者&lt;a class=&#34;anchor&#34; href=&#34;#%e4%bd%9c%e4%b8%ba%e8%b4%a1%e7%8c%ae%e8%80%85&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;贡献的形式有两种：提 &lt;strong&gt;issue&lt;/strong&gt; 和 提 &lt;strong&gt;pull request&lt;/strong&gt;（简称 &lt;strong&gt;PR&lt;/strong&gt;）。这两者有一些共同的要求，包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;认真看并遵循对方给出的 &lt;strong&gt;issue 模板&lt;/strong&gt; / &lt;strong&gt;PR 模板&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;及时跟进，当对方有回复时，应该尽早给出足够明确的回答。如果觉得对方的答复已经解决了你的问题，或者这个确实不是问题，就及时关闭，不要等作者动手。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;大多数仓库都要用英语提，但专门面向中文用户的仓库是例外。其实这一点并没有想象中的那么难，现在的 Google Translate 已经非常强大了，而且 &lt;a href=&#34;https://translate.google.cn&#34;&gt;https://translate.google.cn&lt;/a&gt; 不用翻墙也能访问。只要写好中文，然后在里面翻译成英文，再修正一下英文翻译就可以了。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;接下来我再分别细说一下它们。&lt;/p&gt;&#xA;&lt;p&gt;提 &lt;strong&gt;issue&lt;/strong&gt; 也就是提问题，可以再细分为两种：提 &lt;strong&gt;BUG&lt;/strong&gt; 和 提&lt;strong&gt;需求&lt;/strong&gt;（Feature Request / Proposal）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>5.开发人员要掌握的十八条 Docker 知识</title>
      <link>/%E6%9D%82%E8%B0%88/050-%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E8%A6%81%E6%8E%8C%E6%8F%A1%E7%9A%84%E5%8D%81%E5%85%AB%E6%9D%A1-docker-%E7%9F%A5%E8%AF%86/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9D%82%E8%B0%88/050-%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E8%A6%81%E6%8E%8C%E6%8F%A1%E7%9A%84%E5%8D%81%E5%85%AB%E6%9D%A1-docker-%E7%9F%A5%E8%AF%86/</guid>
      <description>&lt;h2 id=&#34;为什么说-docker-是轻量级虚拟技术&#34;&gt;为什么说 Docker 是轻量级虚拟技术？&lt;a class=&#34;anchor&#34; href=&#34;#%e4%b8%ba%e4%bb%80%e4%b9%88%e8%af%b4-docker-%e6%98%af%e8%bd%bb%e9%87%8f%e7%ba%a7%e8%99%9a%e6%8b%9f%e6%8a%80%e6%9c%af&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;虚拟技术按照重量级大致可分为如下几种（从重到轻）：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;硬件仿真&lt;/p&gt;&#xA;&lt;p&gt;典型的有 QEMU 、Android 模拟器以及各种街机模拟器。它们会在宿主机上运行一个 CPU 指令的解释器，因此可以运行不同 CPU&lt;/p&gt;&#xA;&lt;p&gt;指令集下的应用。硬件仿真方式的额外运行开销极大，限制了其应用场景，但是只是有些场景下只有这种方式可以解决。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;设备虚拟化&lt;/p&gt;&#xA;&lt;p&gt;典型的有 VMWare Workstation、Virtual Box 等。与硬件仿真不同，它们只负责把客户机对设备的请求，转发给宿主机，因此无法跨 CPU&lt;/p&gt;&#xA;&lt;p&gt;指令集。相应的，其额外开销也小得多。根据是否需要修改宿主操作系统以配合客户机，它又可分为全虚拟化和半虚拟化。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;容器技术&lt;/p&gt;&#xA;&lt;p&gt;典型的有 Docker、LXD 等。它们的内核都是 LXC，这是 Linux&lt;/p&gt;&#xA;&lt;p&gt;操作系统提供的容器化技术，它不会虚拟化任何设备，只会利用命名空间对系统资源进行隔离。显然，这种方式的开销是极小的，和原生应用几乎没有差别。&lt;/p&gt;&#xA;&lt;p&gt;这样一来，每个容器中的进程都只能访问所属命名空间中的资源，不同容器中的资源彼此独立，它们可以使用相同的端口、文件名而不会互相干扰。这种特性，让应用在部署时不需要考虑所在的环境，从而显著简化了运维工作。这促成了&lt;/p&gt;&#xA;&lt;p&gt;Docker 的流行。&lt;/p&gt;&#xA;&lt;p&gt;值得注意的是，Docker 自己实现了一个特殊的文件系统，这个文件系统的思维模型类似于 Git 或&lt;/p&gt;&#xA;&lt;p&gt;CSS，其最终结果是由一系列单层镜像叠加而成的。镜像（image）中包含的层都是只读的，而容器（container）则会在镜像层之上叠加一个读写层，所有你在容器中进行的修改都会保存在读写层中。当你用 &lt;code&gt;docker commit&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;命令提交这个容器时，这个读写层就会变成只读层，并连同其基础镜像的只读层一起变成一个新的镜像。&lt;/p&gt;&#xA;&lt;p&gt;先对这个文件系统有个印象，后面的很多内容都与此相关。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;专用子系统&lt;/p&gt;&#xA;&lt;p&gt;典型的是 Windows 10 下的 WSL，它可以让你在 Windows 上运行绝大多数 Linux 程序。事实上，Windows 10&lt;/p&gt;&#xA;&lt;p&gt;中和我们打交道的那部分叫做 &amp;ldquo;Win32 子系统&amp;rdquo;，而 WSL 的全称则是 &amp;ldquo;Windows Subsystem for Linux&amp;rdquo;。顾名思义，WSL 是个跟 &amp;ldquo;Win32&lt;/p&gt;&#xA;&lt;p&gt;子系统&amp;rdquo; 平等的专用 API 层。在这种模式下 WSL 中的文件、端口等资源都是共享的，因为这些都是属于 Windows 内核的一部分，而&lt;/p&gt;&#xA;&lt;p&gt;Win32 子系统和 WSL 子系统都共享同一个内核。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
