<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>u1411001432 (谢一面)</title>
    <link>https://ruby-china.org/u1411001432</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>可能是国内最性感的开发者社区诚邀内测，来为你心爱的作品建立一个社区吧！</title>
      <description>&lt;h4 id="体验地址"&gt;体验地址&lt;/h4&gt;
&lt;p&gt;主页：&lt;a href="https://coderplanets.com" rel="nofollow" target="_blank"&gt;https://coderplanets.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;github: &lt;a href="https://github.com/coderplanets" rel="nofollow" target="_blank"&gt;https://github.com/coderplanets&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;原文地址：&lt;a href="https://coderplanets/works/5" rel="nofollow" target="_blank"&gt;https://coderplanets/works/5&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="关于产品"&gt;关于产品&lt;/h4&gt;
&lt;p&gt;CoderPlanets 是一个面向  IT 垂直领域的中文社区平台，提供类似于 Reddit 社区，ProductHunt 作品发布，Medium 博客平台以及各种自以为是的、奇奇怪怪的服务。&lt;/p&gt;
&lt;h4 id="关于为什么"&gt;关于为什么&lt;/h4&gt;&lt;h5 id="1. 为什么是社区？"&gt;1. 为什么是社区？&lt;/h5&gt;
&lt;p&gt;中文社区，尤其是技术社区的现状和一些平台各种让人窒息的骚操作我就不赘述了，这几年关注产品多一些，心中渐渐升起一轮疑问：中国的 Reddit, ProductHunt, Medium 们怎么都没有做起来（如果曾经有的话）？&lt;/p&gt;

&lt;p&gt;我平时喜欢踢球，有时候觉得中文社区很多现象和中国足球还挺像的 — 足协监管不行，教练不行，草皮不行，球迷文化不行，市场环境不行，日韩崛起之前黄种人也不行，总之各种大字报式的不得行，就是没人说技战术本身，时至今日国足都被越南按着摩擦了，不缺技术缺的是 xx（可能是钙？）的论调依然充斥耳边。&lt;/p&gt;

&lt;p&gt;纯主观感受，Github, StackOverflow, HN, Reddit, Medium, ProductHunt, IndieHackers, Dev.to, Discord 哪怕是 Discourse / Flarum , 这些外网常见的开发者交流平台，在国内真的很少有在产品力和情怀上能与之接近的产品。除了足协和草皮之外，有没有可能，我只是说有可能（音量 0.5%），&lt;strong&gt;我们本身的产品力不够好？&lt;/strong&gt; Github 不仅只是一个简单的托管平台，他本身优秀的设计就大大促进了开源运动的推广和发展，更像是一种共生关系。&lt;/p&gt;

&lt;p&gt;产品力不够的情况下一味去“运营推广”，我不否认这很重要，但这总会让我联想起国足明明技战术水平不行，总爱强调个精神意志力一样，挨打不立正，[不能说没道理，但就是怪怪的].jpg。&lt;/p&gt;

&lt;p&gt;所以为什么是社区？我想尝试一个最朴素而真诚的想法：通过认真把社区产品本身打磨好（当然目前还差的很远），剧情的发展会不会有一些不同？ &lt;/p&gt;

&lt;p&gt;退两步从现实角度来说，根据上个月 Github 公布的数据，仅来自国内的注册用户就已经超过了 755 万，如此庞大的开发者群体，口味一定是多种多样的，参差多态乃幸福本源，谁也不希望出去外面吃饭，街上只有一两家餐厅可供选择吧？&lt;/p&gt;
&lt;h5 id="2. 为什么是中文?"&gt;2. 为什么是中文？&lt;/h5&gt;
&lt;p&gt;因为是母语啊。文字之间，很多时候是很难用非母语去交流的，这里语境的交流，不是指能看懂文档、README，能提 issue 或者参与 StackOverflow 之类说明书式的、功能性的交流，而是指那种能浸润情感的，见梗会意一目 n 行的，有幽默感的那种，哦，正常交流。。不长期浸淫双方的文化背景，这其实是非常困难的。很多时候我们只是单向的被辐射。&lt;/p&gt;

&lt;p&gt;国内技术圈子时不时有种莫名其妙的、动辄鄙视用中文交流的政治正确，有些人，那确实是猛龙过江学贯中西咱服了，但也有些人，等慕名顺着网线去拜读他们在外网的 Post，会发现很多就停留在手语比划的层面，整个感觉和商场里那种导航机器人差不多，其实挺没劲的，无聊的要死。&lt;/p&gt;

&lt;p&gt;往狭义上杠，这些叫沟通，不是交流。语言文字远不仅仅只是所谓的“沟通的工具”，这种不知道哪儿冒出来的言论实在是太过贬低了。&lt;/p&gt;

&lt;p&gt;隔行不隔理。自己的联赛、青训拉跨，整体上竞技水平是不可能高的，这是普世性的基础共识，不是简单的请进派出几个大 V 就能解决，更不是谩骂抱怨能改善的。自嘲自黑无法赢得尊重。环境的改变不能只靠羊教练，大头还得是基层的组织参与，训练比赛的日常点滴等等。当然这跑题了。。&lt;/p&gt;
&lt;h4 id="关于域名"&gt;关于域名&lt;/h4&gt;
&lt;p&gt;我是一个三体迷，对宇宙中的各种都市传说感兴趣。planets 这个域名是我在 N 刷《星际穿越》的间隙阴差阳错捡来的（虽然后来我确实花了很多心思在网站上加入了&lt;a href="https://coderplanets/post/254" rel="nofollow" target="_blank" title=""&gt;各种宇宙元素&lt;/a&gt;），并没有什么深思熟虑，也不是要模仿谁。&lt;/p&gt;

&lt;p&gt;域名，尤其是有意义的短域名，是非常稀缺的资源，选择一个两个单词组合的长域名也确实存在客观条件的限制。所以为了方便各位“懒人”，也同时启用了一个好记的短域名：&lt;a href="http://cper.co" rel="nofollow" target="_blank" title=""&gt;cper.co&lt;/a&gt; ，目前用在站内文章的分享模块。&lt;/p&gt;
&lt;h4 id="关于合规"&gt;关于合规&lt;/h4&gt;
&lt;p&gt;社区平台模式在国内几乎是个“伏地魔”一般的话题，说起来都是闻风丧胆，但实际见过做过的人却又少的可怜，问就是有个朋友语焉不详。真正的参与者因为某些原因似乎也比较避讳这个话题 -- 至少我发给各大社区的咨询邮件都石沉大海了。。&lt;/p&gt;

&lt;p&gt;言论的管制当然会降低讨论话题的多样性和深度，就好比在路上开车，谁也不会到红灯底下才瞬间停止，都是老远就踩了刹车。但是随着年龄和阅历的增长，我也能渐渐理解这种做法，这并不是简单的非黑即白的事情，有各方面的因素。&lt;/p&gt;

&lt;p&gt;垂直领域的社区情况要好一些，公司、ICP 备案、敏感词检测该有的都有，其他证件资质在目前还不需要，需要我也会尽快补齐，这其中的经验过程都会同步到社区中以供参考，就不展开了。&lt;/p&gt;
&lt;h4 id="关于盈利"&gt;关于盈利&lt;/h4&gt;
&lt;p&gt;CP 从产品形态上借鉴了很多 Reddit 的元素，但在盈利模式上更向往“Medium”的 membership / SaaS、或“Shopify”那种工具文化的模式。&lt;/p&gt;

&lt;p&gt;传统的外挂式自动化广告对于文字类网站的体验降维是灾难性的 — 想象一下你在一家装修精美的餐厅（比如 Medium）正在享受晚餐（阅读技术资料），旁边突然有个油嘴滑舌的房产中介向你喋喋不休（侧边栏设计拙劣的双十一服务器广告传单）是什么体验？是，你可以选择带上降噪耳机（AdBlock）不去看 Ta，继续用餐，但问题的源头是，这家餐厅为什么要允许这些人进来发传单？我又为什么要忍受这样糟糕的服务？ &lt;/p&gt;

&lt;p&gt;p.s: 我对房产中介没有不敬的意思，只是打个比喻。也顺便说一下 AdBlock 不违法，但是很不道德。至于说餐厅是收费的网站是免费的，你可以把餐厅的比喻换成书店之类的场所，这就不重复了，不是重点。&lt;/p&gt;

&lt;p&gt;Medium 作为北美流量前 20 的网站，你很难在上面看到像国内网站那种塞满屏幕的传单式广告，相反它排版优雅大量留白、专注阅读本身的体验，Shopify 那种美好的工具文化的产物就更不用说了。&lt;/p&gt;

&lt;p&gt;我想表达的是，盈利模式在很大程度上会影响产品形态和用户体验。广告模式是广泛存在，但它未必是合理的、适合所有场景的，互联网并不是只有靠广告收益才能生存，至少 Medium 和 Shopify 证明了还有其他的被主流市场验证过的路可以尝试。&lt;/p&gt;

&lt;p&gt;CoderPlanets 既是提供社区服务的平台，本身也是建立社区的工具。&lt;/p&gt;
&lt;h4 id="关于团队"&gt;关于团队&lt;/h4&gt;
&lt;p&gt;目前团队在产品开发上只有我一人。不过得益于现在基础设施、开发工具和资源的成熟丰富，对于 CRUD 层面的工作，一个人也可以做到所谓的“全栈”，具体到社区这种周期很长的项目上，前期人少倒也不是坏事 — 回头来看，很多想法初期其实是非常模糊的，是在做的过程中才慢慢连点成线，逐渐变的清晰起来，这个过程需要时间反复的打磨，通常还伴随着破坏性的重构，用传统的产品 - 设计 - 开发那种“下周发版”的流水线搞法，几乎注定扑街，沟通成本真的是非常大的成本。缺点就是慢，望山跑死马，需要足够的耐心、体力和相信自己的直觉。。&lt;/p&gt;

&lt;p&gt;目前项目已经度过前期从 0 到 1，虽然技术产品等各方面框架趋于清晰，但各种细节，内容和管理后勤支撑等方面还有大量工作量，如果你对社区的产品形态，技术，设计，维护治理等方面感兴趣，欢迎各种形式的参与。&lt;/p&gt;
&lt;h4 id="开放透明"&gt;开放透明&lt;/h4&gt;
&lt;p&gt;本站除源代码开源在 &lt;a href="https://github.com/coderplanets" rel="nofollow" target="_blank" title=""&gt;Github&lt;/a&gt; 上以外，&lt;a href="https://plausible.io/coderplanets.com" rel="nofollow" target="_blank" title=""&gt;流量统计数据&lt;/a&gt;也是完全公开的。同时，借鉴真实世界的运行模式，每个子社区都采用志愿者协助的自治模式 -- 细节很多，这里就不展开了。&lt;/p&gt;

&lt;p&gt;p.s: 流量统计采用的服务商是开源的，对隐私友好的 &lt;a href="https://plausible.io/" rel="nofollow" target="_blank" title=""&gt;Plausible&lt;/a&gt; ，它同样使用了小众的 Elixir 开发，我在项目上借鉴过它的一些写法。&lt;/p&gt;
&lt;h4 id="发展规划"&gt;发展规划&lt;/h4&gt;
&lt;p&gt;最迫切的就是收集各位用户的反馈建议，大的方向是社区的 SaaS 化和工具化。需要说明的是，所有的产品设计都是围绕专业的垂直领域需求而展开的，过去现在和未来都不会面向所有人，我没有那个技术、资源以及意愿。&lt;/p&gt;

&lt;p&gt;目前这个项目有很多部分还是半成品，TodoList 上更是有接近 4 位数的细节条目等待完成，因此至少到年前，都会处于一个忙碌的修修补补的状态。&lt;/p&gt;

&lt;p&gt;最后，Designing a product from scratch is always hard. 也许再挺不了几年，也许经常会被打脸，但这就是我此时此刻，作为基层代码工人，近年来对社区论坛这个”古董概念”的一些不成熟的想法、摸索和实践。项目中未完成和闭门造车的地方一言难尽，期待能和大家一起讨论完善。&lt;/p&gt;</description>
      <author>u1411001432</author>
      <pubDate>Thu, 16 Dec 2021 13:07:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/41993</link>
      <guid>https://ruby-china.org/topics/41993</guid>
    </item>
    <item>
      <title>专注于小众编程语言和框架的 coderplanets 社区 1.0 版正式上线了</title>
      <description>&lt;p&gt;各位 Ruby-China 的朋友大家猪年好  : )&lt;/p&gt;

&lt;p&gt;年前 &lt;a href="https://ruby-china.org/topics/38052" title=""&gt;0.1 版本&lt;/a&gt;在这里发布后，得到了各路朋友真诚的鼓励和反馈，心中暖流涌动感激不尽。经过跨年打磨，今天正式把版本提升到了 v1.0。&lt;/p&gt;

&lt;p&gt;主要变化有。。。。不少。。 (主要是大幅优化了手机/宽屏下的体验，改善消息系统，若干 bug 修复以及少许 feature 等等)。&lt;/p&gt;

&lt;p&gt;为了照顾之前错过直播的小伙伴们，这里重播一下： &lt;/p&gt;
&lt;h2 id="什么是 coderplanets?"&gt;什么是 coderplanets?&lt;/h2&gt;
&lt;p&gt;coderplanets.com 是一个开源的，&lt;strong&gt;专注于小众编程语言和框架的社区平台&lt;/strong&gt;,  不论你是 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;小众编程语言 (框架) 初学者 &lt;/li&gt;
&lt;li&gt;小众编程语言 (框架) 有经验者&lt;/li&gt;
&lt;li&gt;各种小众编程语言 (框架，工具) 收集癖&lt;/li&gt;
&lt;li&gt;小众编程语言/框架的爱好者，关注者... 等等&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;都能在这里找到归属和志同道合的人，简而言之，只要你掉进了&lt;strong&gt;小众编程语言或框架&lt;/strong&gt;的坑，顺路来这里就对了 : 0。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;社区地址： &lt;a href="https://coderplanets.com" rel="nofollow" target="_blank"&gt;https://coderplanets.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;社区使用指南：&lt;a href="https://coderplanets.com/cps-support" rel="nofollow" target="_blank"&gt;https://coderplanets.com/cps-support&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;源代码： &lt;a href="https://github.com/coderplanets" rel="nofollow" target="_blank"&gt;https://github.com/coderplanets&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;coderplanets 目前还闭着眼躺在新生的襁褓之中，内容和注册用户都不多，因此您的每一次 &lt;strong&gt;创作、反馈建议、推广、star、pr、打赏、赞助&lt;/strong&gt;等等，都是对她莫大的支持和保护，在此先谢过 : )。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;联系我 (们): &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;邮件：hello@group.coderplanets.com&lt;/li&gt;
&lt;li&gt;github: &lt;a href="https://github.com/mydearxym" rel="nofollow" target="_blank"&gt;https://github.com/mydearxym&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;知乎专栏：  &lt;a href="https://zhuanlan.zhihu.com/coderplanets" rel="nofollow" target="_blank"&gt;https://zhuanlan.zhihu.com/coderplanets&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;QQ: 955466153 (群)&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>u1411001432</author>
      <pubDate>Thu, 14 Feb 2019 13:35:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/38105</link>
      <guid>https://ruby-china.org/topics/38105</guid>
    </item>
    <item>
      <title>[技术交流] 基于 Elixir-GraphQL-React 的新一代社区系统设计雏形</title>
      <description>&lt;p&gt;尊敬的各位 Ruby-China 的观众朋友们大家好，非常抱歉将非 Ruby 相关的 Elixir、甚至部分偏前端的内容悍然插入到这里，但是鉴于 Elixir 和 Ruby 的特殊关系以及国内 Elixir 社区悲惨凄凉的现状，更考虑到 ruby-china 社区一贯开放包容的优雅气质，还望各位管理员网开一面。。&lt;/p&gt;

&lt;p&gt;在开始各种流水账之前，先附上我一年来细心打磨的项目：coderplanets (为省电以下简称 CPS)&lt;/p&gt;

&lt;p&gt;网站地址：&lt;a href="https://coderplanets.com" rel="nofollow" target="_blank"&gt;https://coderplanets.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Github 源码： &lt;a href="https://github.com/coderplanets/coderplanets_web" rel="nofollow" target="_blank" title=""&gt;前端&lt;/a&gt;， &lt;a href="https://github.com/coderplanets/coderplanets_server" rel="nofollow" target="_blank" title=""&gt;后端&lt;/a&gt;， &lt;a href="https://github.com/coderplanets/coderplanets_admin" rel="nofollow" target="_blank" title=""&gt;管理端&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://user-images.githubusercontent.com/6184465/51951575-278d0080-2470-11e9-8d2a-3c6ec42f2b51.png" title="" alt="image"&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://user-images.githubusercontent.com/6184465/51951610-4390a200-2470-11e9-8c9f-e712f7647d7e.png" title="" alt="image"&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://user-images.githubusercontent.com/6184465/51784915-2ff0ed00-218b-11e9-8bfd-2c11a5966603.png" title="" alt="image"&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://user-images.githubusercontent.com/6184465/51785962-c11a9080-2198-11e9-89ef-f2d5d874c490.gif" title="" alt="demo"&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://user-images.githubusercontent.com/6184465/51785972-d55e8d80-2198-11e9-8b63-74b3736919bb.gif" title="" alt="demo2"&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;如标题所示，网站目前还是雏形且处于内侧阶段，因此各种小问题难以避免，若您不幸踩雷恳请&lt;a href="https://github.com/coderplanets/coderplanets_web/issues/new" rel="nofollow" target="_blank" title=""&gt;提交 issue&lt;/a&gt;, 我会第一时间修复。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="coderplanets 是什么?"&gt;coderplanets 是什么？&lt;/h2&gt;
&lt;p&gt;coderplanets.com 是一个主要面向 IT 从业者的聚合社区，灵感来源于 &lt;a href="https://feedly.com" rel="nofollow" target="_blank" title=""&gt;feedly&lt;/a&gt;、&lt;a href="https://www.reddit.com" rel="nofollow" target="_blank" title=""&gt;reddit&lt;/a&gt; 、&lt;a href="https://frame.io/" rel="nofollow" target="_blank" title=""&gt;frame.io&lt;/a&gt; 等优秀网站以及最主要的：&lt;strong&gt;程序员每天都在使用的文本编辑器&lt;/strong&gt;。简单的讲，她是一个由各种按照编程语言、框架、开发工具、兴趣爱好等&lt;strong&gt;独立的平等且个性化的&lt;/strong&gt;子社区组成的社区平台。&lt;/p&gt;
&lt;h2 id="为什么要做这样的社区？"&gt;为什么要做这样的社区？&lt;/h2&gt;
&lt;p&gt;长话短说，源于我之前在学习一些小众语言时，很难在网上找到像样的可以交流的地方，本就不多的资料分散在各处，有价值的内容甚至多集中于知乎或简书这样的通用写作平台上，看起来很不方便，以 Elixir 为例，在&lt;a href="https://www.zhihu.com/search?type=content&amp;amp;q=elixir" rel="nofollow" target="_blank" title=""&gt;知乎上搜索 Elixir&lt;/a&gt;, 得到的 Elixir 护肤品问答结果甚至要多于 Elixir 语言本身；比如简书类的平台总喜欢在内容页下大面积"智能推荐"一些&lt;a href="https://www.jianshu.com/p/bbba1cae9001" rel="nofollow" target="_blank" title=""&gt;莫名其妙的内容&lt;/a&gt;等等，令人十分尴尬; 再比如这类平台都几乎只有”帖子”这一种展现形式等等。(类似平台的类似问题至少还能写两页纸，这里不多展开)。&lt;/p&gt;

&lt;p&gt;不只是 Elixir, 几乎所有的小众语言/框架都面临这样的问题，通用的平台其实不太适合讨论小众的问题，小众的论坛又基本是业余玩具性质 (就比如 &lt;a href="http://elixir-china.com/" rel="nofollow" target="_blank" title=""&gt;ElixirChina&lt;/a&gt;), 不是每个小众语言/框架都有 ruby-china 这样的高质量论坛。另外在即使有限的几个论坛之间穿梭，UI/UX和域名的不一致也很容易给人造成困扰。&lt;/p&gt;

&lt;p&gt;当然我不是专业的产品经理，如果你看了觉得没什么共鸣甚至觉得我是杠精也很正常，但是之于我，这确实是实打实的痛点，这些平台的问题也不是改改样式或者简单的 PR 就能解决的，很多我眼中的痛点都需要作出伤筋动骨的重构，再加上技术之外的一系列限制，基本上只剩下自己动手这一个选项了。&lt;/p&gt;

&lt;p&gt;另外，就线上垂直社区而言，IT 从业者可能是最“挑剔”的群体了，如果能服务好这个群体，以后再建立其他垂直社区时就会相对容易一些了（详见下文）。&lt;/p&gt;
&lt;h2 id="CPS 有哪些特点?"&gt;CPS 有哪些特点？&lt;/h2&gt;&lt;h3 id="专注、纯粹、简洁"&gt;专注、纯粹、简洁&lt;/h3&gt;
&lt;p&gt;CPS 由开发者发起，最终面向广大开发者 (所谓 &lt;code&gt;from makers, to makers&lt;/code&gt;), 垂直服务于&lt;code&gt;IT从业者&lt;/code&gt;这个领域，同时为过滤细分领域里的噪音，一切设计都基于/围绕独立的子社区打磨而来。&lt;/p&gt;
&lt;h3 id="符合直觉的 UI/UX"&gt;符合直觉的 UI/UX&lt;/h3&gt;
&lt;p&gt;基于前后端分离的架构，没有无处不在的重刷页面和不必要的跳转，在保留了&lt;a href="https://github.com/coderplanets/coderplanets_web/blob/dev/docs/general/seo.zh-CN.md" rel="nofollow" target="_blank" title=""&gt;SEO 能力&lt;/a&gt;的前提下，尽可能多的吸取了其他单页应用的众多优点。&lt;/p&gt;
&lt;h3 id="Hackable"&gt;Hackable&lt;/h3&gt;
&lt;p&gt;大到主题、布局，小到订阅社区排序和帖子列表是否显示分割线，CPS 提供了丰富的自定义选项。更重要且自然的，CPS 是完全开源和开放的，你可以添加任何你觉得有意思的功能，吐槽代码或设计层面的任何细节。&lt;/p&gt;
&lt;h3 id="更加现代"&gt;更加现代&lt;/h3&gt;
&lt;p&gt;由于没有历史包袱，CPS 不论&lt;a href="https://github.com/coderplanets/coderplanets_web/blob/dev/docs/architecture/intro.zh-CN.md" rel="nofollow" target="_blank" title=""&gt;前端&lt;/a&gt;、&lt;a href="https://github.com/coderplanets/coderplanets_server/blob/dev/docs/architecture/intro.zh-CN.md" rel="nofollow" target="_blank" title=""&gt;后端&lt;/a&gt;还是一些&lt;a href="https://github.com/coderplanets/coderplanets_web/blob/dev/docs/js/graphql.zh-CN.md" rel="nofollow" target="_blank" title=""&gt;基础设施&lt;/a&gt;，都大胆采用了新的技术架构 (乃至新的语言), &lt;/p&gt;
&lt;h3 id="多种内容展现形式"&gt;多种内容展现形式&lt;/h3&gt;
&lt;p&gt;除了传统的帖子以外，还有开源项目、视频、招聘，用户地图、cheatsheet、同城等等多种多样的内容展现形式。&lt;/p&gt;
&lt;h2 id="使用了哪些技术栈？"&gt;使用了哪些技术栈？&lt;/h2&gt;&lt;h4 id="前端部分(详细)："&gt;前端部分 (&lt;a href="https://github.com/coderplanets/coderplanets_web/blob/dev/package.json" rel="nofollow" target="_blank" title=""&gt;详细&lt;/a&gt;)：&lt;/h4&gt;&lt;table class="table table-bordered table-striped"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;框架/库&lt;/th&gt;
&lt;th&gt;开发&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/facebook/react" rel="nofollow" target="_blank" title=""&gt;React.js&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;UI view 层&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/zeit/next.js" rel="nofollow" target="_blank" title=""&gt;Next.js&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;同构 react 框架&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/styled-components/styled-components" rel="nofollow" target="_blank" title=""&gt;Styled-Component&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;css-in-js 方案&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/apollographql/apollo-client" rel="nofollow" target="_blank" title=""&gt;Apollo-Client&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;GraphQL 客户端&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/facebook/draft-js" rel="nofollow" target="_blank" title=""&gt;Draft.js&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;MarkDown 编辑器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/mobxjs/mobx" rel="nofollow" target="_blank" title=""&gt;Mobx&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;react 状态管理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/mobxjs/mobx-state-tree" rel="nofollow" target="_blank" title=""&gt;Mobx-State-Tree&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Mobx 最佳伴侣&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/ReactiveX/rxjs" rel="nofollow" target="_blank" title=""&gt;Rxjs&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;异步事件管理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/ramda/ramda" rel="nofollow" target="_blank" title=""&gt;Ramda&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;各种工具函数&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table class="table table-bordered table-striped"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;框架/库&lt;/th&gt;
&lt;th&gt;DevOps&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/zeit/next.js" rel="nofollow" target="_blank" title=""&gt;Next.js&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;SEO 支持，打包构建等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/eslint/eslint" rel="nofollow" target="_blank" title=""&gt;Eslint&lt;/a&gt; 和它的朋友们&lt;/td&gt;
&lt;td&gt;语法规范，纠错&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/prettier/prettier" rel="nofollow" target="_blank" title=""&gt;Prettier&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;formatter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/commitizen/cz-cli" rel="nofollow" target="_blank" title=""&gt;Commitizen&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;规范 commit 消息&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href="https://github.com/facebook/jest" rel="nofollow" target="_blank" title=""&gt;Jest&lt;/a&gt; / &lt;a href="https://github.com/airbnb/enzyme" rel="nofollow" target="_blank" title=""&gt;Enzyme&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;单元测试&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/cypress-io/cypress" rel="nofollow" target="_blank" title=""&gt;Cypress&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;端对端测试&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://travis-ci.org/coderplanets/coderplanets_web" rel="nofollow" target="_blank" title=""&gt;Travis&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CI 支持&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://sentry.io" rel="nofollow" target="_blank" title=""&gt;Sentry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;错误日志搜集&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google-Analysis&lt;/td&gt;
&lt;td&gt;统计分析&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker&lt;/td&gt;
&lt;td&gt;容器支持 (部署在阿里云)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;h4 id="后端部分(详细):"&gt;后端部分 (&lt;a href="https://github.com/coderplanets/coderplanets_server/blob/dev/mix.exs" rel="nofollow" target="_blank" title=""&gt;详细&lt;/a&gt;):&lt;/h4&gt;&lt;table class="table table-bordered table-striped"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;框架/库&lt;/th&gt;
&lt;th&gt;开发&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/phoenixframework/phoenix" rel="nofollow" target="_blank" title=""&gt;Phoenix&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;API 服务器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/absinthe-graphql/absinthe" rel="nofollow" target="_blank" title=""&gt;Absinthe&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;GraphQL 支持&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/absinthe-graphql/dataloader" rel="nofollow" target="_blank" title=""&gt;Dataloader&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;GraphQL 查询优化&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/elixir-ecto/postgrex" rel="nofollow" target="_blank" title=""&gt;Postgrex&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;PostgreSQL 数据库客户端&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table class="table table-bordered table-striped"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;框架/库&lt;/th&gt;
&lt;th&gt;DevOps&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://engine.apollographql.com" rel="nofollow" target="_blank" title=""&gt;Apollo-engine&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;GraphQL 网关，监测，缓存等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://hexdocs.pm/ex_unit/ExUnit.html" rel="nofollow" target="_blank" title=""&gt;ExUnit&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;单元测试 / GraphQL 端对端测试&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/rrrene/credo" rel="nofollow" target="_blank" title=""&gt;Credo&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;语法规范&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/jeremyjh/dialyxir" rel="nofollow" target="_blank" title=""&gt;Dialyxir&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;静态代码检测&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://travis-ci.org/coderplanets/coderplanets_server" rel="nofollow" target="_blank" title=""&gt;Travis&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CI 支持&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://sentry.io" rel="nofollow" target="_blank" title=""&gt;Sentry&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;错误日志搜集&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker&lt;/td&gt;
&lt;td&gt;容器支持 (部署在阿里云)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;这里限于篇幅不再展开，更详细的文档请移步 github (&lt;a href="https://github.com/coderplanets/coderplanets_web/tree/dev/docs" rel="nofollow" target="_blank" title=""&gt;前端文档&lt;/a&gt; 以及 &lt;a href="https://github.com/coderplanets/coderplanets_server/tree/dev/docs" rel="nofollow" target="_blank" title=""&gt;后端文档&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;另外，我会逐步在知乎的专栏上持续分享有关 CPS 在技术、产品、设计上的各种点滴，欢迎关注。&lt;/p&gt;
&lt;h2 id="一些花絮/彩蛋"&gt;一些花絮/彩蛋&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;网络/事件模块被命名为 sr71, 名字源于美军的 sr71 黑鸟侦察机&lt;/li&gt;
&lt;li&gt;多功能搜索框被命名为 Doraemon, 名字源于英译的哆啦 A 梦 (机器猫)&lt;/li&gt;
&lt;li&gt;可以使用缩写跳转社区，例如 k8s -&amp;gt; kubernetes, js -&amp;gt; javascript, wasm -&amp;gt; webassembly 等等&lt;/li&gt;
&lt;li&gt;可以使用快捷键 C-p/C-g/esc 等呼出或隐藏 Doraemon, 就像在 emacs, vim, vscode 等编辑器中一样&lt;/li&gt;
&lt;li&gt;可以在 Doraemon 输入 /theme 切换主题，以及各种类似操作&lt;/li&gt;
&lt;li&gt;匿名用户的头像是一个可爱的外星人头像&lt;/li&gt;
&lt;li&gt;不同社区中的成员分布地图有不同的名字，比如 ruby 社区叫 rubylist, js 社区叫 JSer 等等&lt;/li&gt;
&lt;li&gt;在文章中@用户的时候，editor 上方会显示所 at 的用户的头像&lt;/li&gt;
&lt;li&gt;空内容页面会显示”星球老司机”的提示图，该老司机每次的行进方向是随机的&lt;/li&gt;
&lt;li&gt;打赏界面被模拟成吃 taco 的场景，原因是我喜欢吃 taco&lt;/li&gt;
&lt;li&gt;多功能滑出组件在某些页面卡顿时会显示巴萨队徽及其足球哲学：Take the Ball, Pass the Ball. -- 我是十年巴萨球迷&lt;/li&gt;
&lt;li&gt;左侧边栏顶端会根据节日或重大事件显示不同的 logo&lt;/li&gt;
&lt;li&gt;回复企邮 hello@group.coderplanets.com 的“员工”叫 frank, 是的，就是操蛋的 Frank Gallagher&lt;/li&gt;
&lt;li&gt;页面侧边栏和底部是赞助商的鸣谢/推广，如果贵公司有这方面的需要，注明来自 ruby-china 会有折扣优惠 :)&lt;/li&gt;
&lt;li&gt;还有很多 (或者说未来还会添加很多) 等你来发现 :)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="期待你的参与和支持"&gt;期待你的参与和支持&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://user-images.githubusercontent.com/6184465/51666005-02276f00-1ff8-11e9-92b5-4626cf6f1463.png" title="" alt="image"&gt;&lt;/p&gt;

&lt;p&gt;CPS 从 0 到 1 的这一年来一直处于 "one man army" 的状态，这段经历孤独而美妙，付出和收获同样巨大。因此，您的每一次  &lt;code&gt;issue&lt;/code&gt; / &lt;code&gt;pr&lt;/code&gt; / &lt;code&gt;star&lt;/code&gt; / &lt;code&gt;fork&lt;/code&gt; / &lt;code&gt;推广&lt;/code&gt; / &lt;code&gt;捐助&lt;/code&gt; / &lt;code&gt;赞助&lt;/code&gt; 等等都会被我视作莫大的鼓励和支持，在此先谢过 🌭 。&lt;/p&gt;

&lt;p&gt;更进一步的，这个项目从一开始在代码层面并不是只针对 CPS 本身，她致力于成为垂直社区界的“WordPress”, 所依赖的底层通用的架构叫做 &lt;a href="https://github.com/mastani-stack" rel="nofollow" target="_blank" title=""&gt;Mastani-Stack&lt;/a&gt;, 她和 CPS 的关系类似于汽车平台和车型的关系，CPS 是 Mastani 平台的第一款“车型”。在 2019 年还计划有以下"车型" (域名都已注册，并非一时兴起)：&lt;/p&gt;
&lt;table class="table table-bordered table-striped"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;domain&lt;/th&gt;
&lt;th&gt;content&lt;/th&gt;
&lt;th&gt;prototype&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;top12s.com&lt;/td&gt;
&lt;td&gt;足球领域的垂直社区&lt;/td&gt;
&lt;td&gt;以俱乐部，国家队等子社区组成&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;motojie.com (摩界)&lt;/td&gt;
&lt;td&gt;摩托/摩旅领域的垂直社区&lt;/td&gt;
&lt;td&gt;以摩托旅行，地域，车型等子社区组成&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cgplanets.com&lt;/td&gt;
&lt;td&gt;CG 领域的垂直社区&lt;/td&gt;
&lt;td&gt;以 C4D, Blender, Maya 等子社区组成&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;designber.com&lt;/td&gt;
&lt;td&gt;设计领域的垂直社区&lt;/td&gt;
&lt;td&gt;待定，偏向建筑和工业设计&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;和你第一眼看上去的感觉一样，这其中的工作量是巨大的 (不仅仅单指技术层面), 什么时候能完成我无法给出具体时间表，但我可以向你保证的是，这些"车型"都会被高水准的制造出来，不会半途而废。&lt;/p&gt;

&lt;p&gt;因此，如果你恰好也对这些领域感兴趣 (或者任何你觉得有意思的垂直领域或有意义的非盈利组织), 不管你身处何方，不论你擅长技术、文案、设计、推广、商务法律等或者其他方面，欢迎与我联系 (或留下您的联系方式)，能和志同道合的人一起搞事情是人生最大的乐趣之一。&lt;/p&gt;

&lt;p&gt;最后作为福利，有请我团队的首席美女鼓励师兼中华田园界第一颜值 — 大美女“梅茜”出场镇帖：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://user-images.githubusercontent.com/6184465/51782415-c9f06f80-2162-11e9-9ab1-eed3692b8b12.png" title="" alt="image"&gt;&lt;/p&gt;

&lt;p&gt;预祝各位新年快乐，2019 一起加油 !&lt;/p&gt;</description>
      <author>u1411001432</author>
      <pubDate>Sat, 26 Jan 2019 23:18:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/38052</link>
      <guid>https://ruby-china.org/topics/38052</guid>
    </item>
  </channel>
</rss>
