Skip to content

Latest commit

 

History

History
156 lines (124 loc) · 7.09 KB

7th_20170522.md

File metadata and controls

156 lines (124 loc) · 7.09 KB

Step-to-Rails-Expert.rb 第7回

自己紹介

  • お名前
  • 普段やっていること
  • 今日聞きたいこと、意気込みなど
  • せっかくなので差し支えなければマストドンアカウントも笑

参加者のお名前(時計回り)

  • ebi(主催者) LICTOOR株式会社のwebエンジニア。普段はRubyやRailsを使っています。最近はRailsよりHTML/CSSを書きまくっています

マストドンアカウント(pawoo: @ebihara99999)

議事メモ

テーマ: mastodon

参考リンク

各インスタンスのソースコード・機能の比較

friends.nicoの特徴
  1. ニコニコアカウントとの連携機能がある。
  2. 「お気に入り」が「ニコる」になっている。
  3. 「@ピザ」が実装されている。
  4. 「ニコる」絵文字が使用できる。

引用: friends.nicoについての説明(公式)

pawooの特徴
  • pawooログイン画面からローカルタイムラインが見られるようになっている!!
  • ログイン画面にpawooの説明もついていてわかりやすい
xmstdnの特徴

Tor: Hidden Service Protocol に対応している 参考: Tor: Hidden Service Protocol に対応した Mastodon インスタンスを立てた

ミリドン
  • Twitter 連携
  • ソースコードは非公開?

https://mldn.jp/about

mathtod
  • 数式が書ける。

https://mathtod.online/about

違い
javascript周りのディレクトリ構成の違い
  • 本家
    webpackerを使用すると、
$ rake webpacker:install

create  app/javascript
create  app/javascript/packs/application.js
(略)

というディレクトリ構成になる 参考: Rails5.1から追加されると噂のWebpackerを使ってReact.jsを動かす。

  • pawoo & frends.nico & xmstdn react-railsを使用しているのでapp/assets/javascriptとなっている

ここの変化はv1.4から。なので、次のバージョンアップがやばい・・

  • デプロイは?
  • capistrano使わずにやっている
  • heroku
    • precompleするときにdynoあげないとメモリ食って死ぬ(webpacker)

運用方法の考察・議論

どういう条件でマージしているか

マージではないが、issue#2568に対して、ドワンゴさんピクシブさんは20日以上前にバグをfixしているが、本家は10日ほど前にfixされている。(ドワンゴさんはrevertしているけど) 本家のissueをチェックし、致命的なものは本家の対応を待たずに対応するような姿勢なのでしょうか?

  • issueをパクったww
  • ユーザーのバグ報告
  • 本家に送る可能性としては、必ずではない
  • 本家を必ずしも見ているわけではない
  • sidekiq周りのエラーがおおい
  • heroku使っているのであれば Rollbarというaddonが使える
どのような方法で本家に追従しているか。

(マストドンに限らないと思うが)fork元に色々機能追加・修正を行いソースの内容が大きく異なる場合、本家の重要な変更をfork先に取り込むベストプラクティスってどういう形?

  • 自分で直して本家に送るのが一番きれい
  • conflictを避けるような別のクラス名を使ったりする
  • rebaseはこころの強さが必要w

流行がひと段落して少し落ち着いた時期のmastodonの状況の考察・議論

two_sann作成の資料: 状況考察

mastodonソースの疑問点・指摘点の議論

serviceを使う意図は?ファットモデルを避けるため?
  • 好きじゃないww
  • MVOにDDDを足しているのがrailsのサービス層
  • RailsはDHHの提供するMVCのレールに乗るのが一番良い
ソースで気づいた点
  • サービス層とsidekiqにビジネスロジックが書いてある
  • thoughtbot (paperclipを作っている会社) の人がリファクタリングめっちゃしている
プロトコルについて
  • OStatusというプロトコルを使用している
  • その内部では、atomフィードを使いタイムラインをブログのフィードとみなして受け取っている 参考: Mastodon OStatus API の叩き方
  • OStatus2 Gargronさん作成のライブラリ
機能追加、改善などの判断はどのように決定されるのでしょうか? (仕事としてのマストドン開発的なところで聞いてみたいと思いました)
  • パフォーマンス周りの改善は優先(サーバが落ちる)
  • redis周り
マストドンの実装で微妙だと思う部分と、改善案

開発に関わる人数は?

  • 1人だったり数人〜10数人だったり

投稿内容のチェックなどはしていますか?

  • していても通報ベース

不正だったり、悪質だったりするユーザーの対応どうしていますか?

  • まだそこまで数として多くないので、個々に対応している