V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zven
V2EX  ›  分享创造

用 Elixir/Phoenix 撸了一个 RubyChina.

  •  
  •   zven · 2018-07-18 17:58:29 +08:00 · 3902 次点击
    这是一个创建于 2357 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    Demo 和项目 Github 地址如下:

    数据库关联关系

    功能点

    目前所有的功能都在 issues 内。

    应用的第三方库

    第三方 Elixir 库:

    • bamboo: 邮件发送服务应对,目前实现「用户注册」发送欢迎邮件和「找回密码」;
    • faker: 大家都懂的,创建假数据用的;
    • credo: Elixir 版 rubocop, 规范代码使用;
    • comeonin: 用于应对用户密码加密;
    • ueberauthueberauth_github: 用于支持第三方 Github 登录;
    • earmarkhtml_sanitize_ex: Markdown 应对;
    • timex: Elixir 时间拓展库;
    • scrivener_ectoscrivener_html: 分页;
    • qiniu: 图片七牛服务器支持,是社区内 @tony612 写的;
    • exmoji: 😎 Emoji 支持 ;
    • ecto_enum: Ecto 支持 类似 ActiveRecord enum 的功能,在帖子(topic)和通知(notification)内有应用;
    • cachex: 文件缓存库,缓存用户的 gitub repos ;
    • jason: Json 解析,暂时用于解析获取 github repos。

    第三方 JS 库:

    • webpack: 没有用 Phoenix 默认的 brunch,直接用了 webpack 4 ;
    • prettier: 代码检查和格式化;
    • lint-staged 不 lint,不可 commit 斯基;
    • bootstrap: 和 RubyChina 一样,用了 bootstrap v4 ;
    • dropzone: 目前用于在 Markdown 内添加图片;
    • font-awesome: Icon :smile: ;
    • jquery.caret: 和 RubyChina 一样,编辑帖子的时候添加 CodesFromHint 用的;
    • moment: JS 时间组件。

    进度与计划

    目前在第一迭代主要是借(chao)鉴(xi) RubyChina 的功能。第二迭代考虑实现新的 UI 和交互以及一些小功能。

    小结

    Elixir 写起来根本停不下来啊,哈哈。推荐大伙体验下 Elixir。 如果对该项目有兴趣的小伙伴,欢迎提 Issue 或 PR。

    8 条回复    2018-07-24 16:50:29 +08:00
    natforum
        1
    natforum  
       2018-07-18 18:00:51 +08:00
    不错不错,顶一下 elixir
    wardenlina
        2
    wardenlina  
       2018-07-18 19:46:40 +08:00 via iPhone
    数据库关联关系 的 图是咋做的呀?
    zven
        3
    zven  
    OP
       2018-07-18 22:59:18 +08:00
    @wardenlina diagrammix
    tt67wq
        4
    tt67wq  
       2018-07-19 11:05:07 +08:00
    顶一下 elixir,超酷的语言
    tinywhale
        5
    tinywhale  
       2018-07-19 11:39:55 +08:00
    似乎没有 WS 实时通知,你的时间没用在刀刃上啊。我觉得 elixir/erlang 最方便的还是处理二进制数据,tcp/udp 这些
    zven
        6
    zven  
    OP
       2018-07-19 12:37:14 +08:00
    @tinywhale 已经提 issue 了,这个是后续要加的,优先实现基本功能啦。:-)
    firebroo
        7
    firebroo  
       2018-07-23 19:37:27 +08:00
    我两年前写的 blog,https://github.com/firebroo/phoenix_blog 停下来 了。。
    zven
        8
    zven  
    OP
       2018-07-24 16:50:29 +08:00
    @firebroo 前辈好,有时间帮我 review 下代码。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2327 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:58 · PVG 23:58 · LAX 07:58 · JFK 10:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.