グロースエンジニアのブログ

プログラミングとウェブ解析をやっています。Googleアナリティクス好きなRuby on Rails エンジニアです!

第57回 Ginza.rbに行ってきた!

今回は【ディスカッションプラットフォーム Discourse のソースを読もう!】というテーマでした。

github.com

 

今回も忘れないうちにメモしたことをまとめます。

 

Discourseとは?

オープンソースとして公開されている掲示板やチャットが使えるディスカッションプラットフォームで、現場感のあるコードとのこと!

フロントは Ember で作られている。

スピードを気にしていて、○○族な人が作ってるらしい。

勉強会メモ

メモした内容をざっと記録していく!

lib にいろいろ詰め込んてる

アプリとは切り離して動くコードがここにある。

lib/freedom_patches ってのがあって、これを自分たちのアプリでも作って、公開できるやつは公開していくのはいい方法。

discourse/lib/freedom_patches at master · discourse/discourse · GitHub

コントローラーで require している

スピードに気をつけているので、必要に合わせてコントローラーなどで require している

discourse/app/controllers at master · discourse/discourse · GitHub

モデルに置けないものを services に置いてる

処理系のメソッドをここにまとめて定義している感じ

discourse/app/services at master · discourse/discourse · GitHub

環境変数のデフォルト値を上げてパフォーマンスを上げてる

discourse/bench.rb at master · discourse/discourse · GitHub

pluck, present?, blank? を早くしてる

discourse/fast_pluck.rb at master · discourse/discourse · GitHub

discourse/performance_fixes.rb at master · discourse/discourse · GitHub

その他

- Gemfile も Discource 自身が作っているものがあり、スピードを気にして使っている

 

- 参考にするのはどのサイトが良い?

-> 過去の歴史を見るという意味で readmine

GitHub - redmine/redmine: Mirror of redmine code source - Official SVN repository is at https://svn.redmine.org/redmine - contact: @jbbarth or jeanbaptiste.barth (at) gmail (dot) com

 

-> mastodon

GitHub - tootsuite/mastodon: Your self-hosted, globally interconnected microblogging community

 

-> discource は現場感があっていい

GitHub - discourse/discourse: A platform for community discussion. Free, open, simple.

 

TracePoint がキテるらしい

まとめ

頑張って話を聞き逃さないようにメモ取ってたけど、理解しようとして考えてて取りきれてない部分が結構ある気がする...

でも、今回も自分の知らないことがたくさん聞けて学ぶことも多かった。

少しでも内容を理解して自分の力にできるように、今後も参加していこうと思います!