第57回 Ginza.rbに行ってきた!
今回は【ディスカッションプラットフォーム Discourse のソースを読もう!】というテーマでした。
今回も忘れないうちにメモしたことをまとめます。
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
-> mastodon
GitHub - tootsuite/mastodon: Your self-hosted, globally interconnected microblogging community
-> discource は現場感があっていい
GitHub - discourse/discourse: A platform for community discussion. Free, open, simple.
- TracePoint がキテるらしい
まとめ
頑張って話を聞き逃さないようにメモ取ってたけど、理解しようとして考えてて取りきれてない部分が結構ある気がする...
でも、今回も自分の知らないことがたくさん聞けて学ぶことも多かった。
少しでも内容を理解して自分の力にできるように、今後も参加していこうと思います!