<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Zven (这里好多大神)</title>
    <link>https://ruby-china.org/Zven</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>[开源项目] 用 Elixir 撸了一个 RubyChina</title>
      <description>&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2018/9e0a69cf-359d-40ad-b49e-8dffb1f4f82b.jpeg!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;最近学习 Elixir，手撸了一个「塑料版」的 RubyChina，完成了比较基本论坛功能。RubyChina 内比较高阶的功能还没实现。不过仍有一些小总结和大家分享一下。&lt;/p&gt;

&lt;p&gt;Demo 和项目 Github 地址如下：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Demo：&lt;a href="https://elixir-mipha.herokuapp.com/" rel="nofollow" target="_blank"&gt;https://elixir-mipha.herokuapp.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;项目 Github: &lt;a href="https://github.com/zven21/mipha" rel="nofollow" target="_blank"&gt;https://github.com/zven21/mipha&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="数据库关联关系"&gt;数据库关联关系&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2018/b96739ac-94d4-433e-9693-de528466c6d3.jpeg!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="项目结构"&gt;项目结构&lt;/h3&gt;
&lt;p&gt;目前的项目结构设计很直接，不属于 web 部分的功能，都放到了 lib/mipha 内，后续会根据业务需求调整。&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
├── assets                     # JS CSS 与静态资源
├── lib                        # 项目 elixir 代码
│   ├── mipha                  # 目前的逻辑是非 Web 部分的代码放到这里。
│   │   ├── accounts           # 社区用户、团队、公司、地址
│   │   ├── collections        # 收藏
│   │   ├── follows            # 关注
│   │   ├── markdown           # markdown 文本解析相关策略
│   │   ├── notifications      # 站内信（通知）
│   │   ├── replies            # 帖子评论
│   │   ├── stars              # 点赞，目前支持点赞帖子与评论
│   │   ├── topics             # 帖子与帖子的分类（节点)
│   │   ├── utils              # 工具库
│   │   ├── mailer.ex          # 发送邮件
│   │   ├── markdown.ex        # markdown 文本解析
│   │   ├── qiniu.ex           # 七牛上传图片
│   │   ├── regexp.ex          # 正则表达式
│   │   ├── token.ex           # token 验证
│   ├── mipha_web 
│   │   ├── channels           # socket WS 协议相关代码
│   │   ├── controllers        # Controllers
│   │   │   ├── admin          # admin 管理台
│   │   ├── plugs              # Plugs
│   │   ├── templates          # Templates
│   │   ├── views              # Views
│   │   ├── email.ex           # 发送邮件方法及调用邮件模板
│   │   ├── session.ex         # 用户登录相关的 session 处理
│   ├── mipha.ex                
│   ├── mipha_web.ex            
└── test                       # 测试

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="功能点"&gt;功能点&lt;/h3&gt;
&lt;p&gt;目前所有的功能都在 &lt;a href="https://github.com/zven21/mipha/issues" rel="nofollow" target="_blank" title=""&gt;issues&lt;/a&gt; 内。&lt;/p&gt;
&lt;h3 id="应用的第三方库"&gt;应用的第三方库&lt;/h3&gt;
&lt;p&gt;第三方 Elixir 库：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/thoughtbot/bamboo" rel="nofollow" target="_blank" title=""&gt;bamboo&lt;/a&gt;: 邮件发送服务应对，目前实现「用户注册」发送欢迎邮件和「找回密码」；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/igas/faker" rel="nofollow" target="_blank" title=""&gt;faker&lt;/a&gt;: 大家都懂的，创建假数据用的；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rrrene/credo" rel="nofollow" target="_blank" title=""&gt;credo&lt;/a&gt;: Elixir 版 rubocop, 规范代码使用；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/riverrun/comeonin" rel="nofollow" target="_blank" title=""&gt;comeonin&lt;/a&gt;: 用于应对用户密码加密；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ueberauth/ueberauth" rel="nofollow" target="_blank" title=""&gt;ueberauth&lt;/a&gt; 和 &lt;a href="https://github.com/ueberauth/ueberauth_github" rel="nofollow" target="_blank" title=""&gt;ueberauth_github&lt;/a&gt;: 用于支持第三方 Github 登录；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pragdave/earmark" rel="nofollow" target="_blank" title=""&gt;earmark&lt;/a&gt; 和 &lt;a href="https://github.com/rrrene/html_sanitize_ex" rel="nofollow" target="_blank" title=""&gt;html_sanitize_ex&lt;/a&gt;: Markdown 应对；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/bitwalker/timex" rel="nofollow" target="_blank" title=""&gt;timex&lt;/a&gt;: Elixir 时间拓展库；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/zven21/turbo_ecto" rel="nofollow" target="_blank" title=""&gt;turbo_ecto&lt;/a&gt; 和 &lt;a href="https://github.com/zven21/turbo_html" rel="nofollow" target="_blank" title=""&gt;turbo_html&lt;/a&gt;: 搜索、排序、分页（类似 Ruby 的 &lt;a href="https://github.com/activerecord-hackery/ransack" rel="nofollow" target="_blank" title=""&gt;ransack&lt;/a&gt;)；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tony612/qiniu" rel="nofollow" target="_blank" title=""&gt;qiniu&lt;/a&gt;: 图片七牛服务器支持，是社区内 &lt;a href="/tony612" class="user-mention" title="@tony612"&gt;&lt;i&gt;@&lt;/i&gt;tony612&lt;/a&gt; 写的；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mroth/exmoji" rel="nofollow" target="_blank" title=""&gt;exmoji&lt;/a&gt;: &lt;img title=":sunglasses:" alt="😎" src="https://twemoji.ruby-china.com/2/svg/1f60e.svg" class="twemoji"&gt; Emoji 支持；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/gjaldon/ecto_enum" rel="nofollow" target="_blank" title=""&gt;ecto_enum&lt;/a&gt;: Ecto 支持 类似 ActiveRecord enum 的功能，在帖子 (topic) 和通知 (notification) 内有应用；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/whitfin/cachex" rel="nofollow" target="_blank" title=""&gt;cachex&lt;/a&gt;: 文件缓存库，缓存用户的 gitub repos；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/michalmuskala/jason" rel="nofollow" target="_blank" title=""&gt;jason&lt;/a&gt;: Json 解析，暂时用于解析获取 github repos。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;第三方 JS 库：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/webpack/webpack" rel="nofollow" target="_blank" title=""&gt;webpack&lt;/a&gt;: 没有用 Phoenix 默认的 brunch，直接用了 webpack 4；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/prettier/prettier" rel="nofollow" target="_blank" title=""&gt;prettier&lt;/a&gt;: 代码检查和格式化；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/okonet/lint-staged" rel="nofollow" target="_blank" title=""&gt;lint-staged&lt;/a&gt; 不 lint，不可 commit 斯基；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/twbs/bootstrap" rel="nofollow" target="_blank" title=""&gt;bootstrap&lt;/a&gt;: 和 RubyChina 一样，用了 bootstrap v4；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://gitlab.com/meno/dropzone" rel="nofollow" target="_blank" title=""&gt;dropzone&lt;/a&gt;: 目前用于在 Markdown 内添加图片；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/FortAwesome/Font-Awesome" rel="nofollow" target="_blank" title=""&gt;font-awesome&lt;/a&gt;: Icon &lt;img title=":smile:" alt="😄" src="https://twemoji.ruby-china.com/2/svg/1f604.svg" class="twemoji"&gt; ；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/ichord/Caret.js" rel="nofollow" target="_blank" title=""&gt;jquery.caret&lt;/a&gt;: 和 RubyChina 一样，编辑帖子的时候添加 CodesFromHint 用的；&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/moment/moment" rel="nofollow" target="_blank" title=""&gt;moment&lt;/a&gt;: JS 时间组件。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="进度与计划"&gt;进度与计划&lt;/h3&gt;
&lt;p&gt;目前在&lt;a href="https://github.com/zven21/mipha/milestone/1" rel="nofollow" target="_blank" title=""&gt;第一迭代&lt;/a&gt;主要是借 (chao) 鉴 (xi) RubyChina 的功能。&lt;a href="https://github.com/zven21/mipha/milestone/2" rel="nofollow" target="_blank" title=""&gt;第二迭代&lt;/a&gt;考虑实现新的 UI 和交互以及一些小功能。&lt;/p&gt;
&lt;h3 id="小结"&gt;小结&lt;/h3&gt;
&lt;p&gt;Elixir 写起来根本停不下来啊，哈哈。如果对该项目有兴趣的小伙伴，欢迎提 Issue 或 PR。&lt;/p&gt;</description>
      <author>Zven</author>
      <pubDate>Sun, 15 Jul 2018 12:50:18 +0800</pubDate>
      <link>https://ruby-china.org/topics/37158</link>
      <guid>https://ruby-china.org/topics/37158</guid>
    </item>
    <item>
      <title>[北京] 臻宿招聘 Ruby 高级工程师 2 枚</title>
      <description>&lt;h2 id="关于我们："&gt;关于我们：&lt;/h2&gt;
&lt;p&gt;首先特别感谢 Ruby 社区，继上次发完帖后 &lt;a href="https://ruby-china.org/topics/34634" title=""&gt;传送门&lt;/a&gt; ，陆续收到了很多童鞋的来信。由于项目周期比较吃紧，外加坐班、行业经验和是否全职等其他因素，最终我们找到了三个资深的童鞋协助我们进行第一迭代产品的开发。（不得不发自内心的夸赞一下，社区内的童鞋都特别靠谱。）&lt;/p&gt;

&lt;p&gt;我们还是一个很年轻的初创团队，公司全员持股。
办公地址在来广营融创动力文化创意产业园（出 15 号线来广营地铁 D 口，步行 100 米就到）。&lt;/p&gt;
&lt;h2 id="我们需要:"&gt;我们需要：&lt;/h2&gt;&lt;h4 id="中高级Ruby开发工程师 （15-35K）"&gt;中高级 Ruby 开发工程师（15-35K）&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;热爱 Rails 开发，坚信 Ruby 是最优雅的开发语言&lt;/li&gt;
&lt;li&gt;熟练使用 HTML/CSS/JavaScript&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;h4 id="加分项："&gt;加分项：&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;有酒店和民宿从业经验&lt;/li&gt;
&lt;li&gt;有 Vuejs 开发经验&lt;/li&gt;
&lt;li&gt;拥有个人博客或开源项目&lt;/li&gt;
&lt;li&gt;一看就像有缘人&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;加入我们吧，简历请投递至：zven.wang@wandtrip.com&lt;/p&gt;</description>
      <author>Zven</author>
      <pubDate>Wed, 27 Dec 2017 12:13:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/34781</link>
      <guid>https://ruby-china.org/topics/34781</guid>
    </item>
    <item>
      <title>此贴已关闭</title>
      <description>&lt;p&gt;此贴已关闭，:-)&lt;/p&gt;</description>
      <author>Zven</author>
      <pubDate>Mon, 27 Nov 2017 14:28:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/34634</link>
      <guid>https://ruby-china.org/topics/34634</guid>
    </item>
  </channel>
</rss>
