@znz blog

ZnZ の memo のようなもの

DDD.rb #11 (Rails with React) (Mastodon のコードリーディング) に参加しました

| Comments

DDD.rb #11 (Rails with React) という Mastodon のコードリーディングに参加したので、そのメモです。

インストールがほとんどでコードリーディングはほとんどできなかったので、大まかな読み方の話だけで、あまり突っ込んだ話はありませんでした。

メモ

getElementById

  • HTML ソースに <script id='initial-state' type='application/json'> がある
  • getElementById で検索
  • app/assets/javascripts/components/containers/mastodon.jsxconst initialState = JSON.parse(document.getElementById("initial-state").textContent); とある

react のソースの読み方

  • react のページのざっくりとした見分け方は HTML ソースがやけに少ないときは react (登録ページなど devise 由来のページは react を使っていない)
  • data-react-class がついてるところに差し込まれている
  • react のルーティングは ./app/assets/javascripts/components/containers/mastodon.jsx をみる
  • <Route path='getting-started' component={GettingStarted} /> とか
  • localhost:3000/web/ は残して localhost:3000/web/getting-started を開くと出てくる
  • <Route path='blocks' component={Blocks} />import Blocks from '../features/blocks'; なので app/assets/javascripts/components/features/blocks/index.jsx にある

ストリーミングは?

  • app/assets/javascripts/components/api.jsx にクライアントがある
  • axios (アクシオス) を使っている
  • AuthorizationBearer トークンを渡している

  • サーバー側は streaming/index.js にある (トップ直下)

  • import WebSocket from 'ws'
  • nginx などで受けて rails と振り分けられてここにくるので wss ではなく ws のみ

storybook とは?

  • 直下に storybook ディレクトリがあるのでその話題
  • 動くスタイルガイド?

その他

  • app/controllers/authdevise 関連
  • UserAccount が別にある
  • app/controllers/api に API 関連

package.json

  • chai はいろいろなものを入れる必要がある
  • rails を使う人はよく使っているらしい
  • sinon もテストのライブラリでスタブを使いたいからではないか

ActionCable

Comments