あ、しんのきです

趣味とか技術系とか

WASDあさもく部 #5 開催レポート

はじめに

9/24(木) 8:00- 開催した Discord もくもく会のレポートです。

wasd-inc.connpass.com

参加者は主催含め5名でした。

今日は寝起きが悪くて不安でしたが始まってみたら集中できました...!

自分のやったこと

Twilio Programmable Video の調査を行っていました。

React を使った公式の Example があるので API KEY を設定すればサクッとできるかなと思ったのですが、中身を見るとバックエンドでトークンの吐き出しを実装する必要がありそうで、ドキュメントの理解をやっていました。

github.com

雑談メモ

Elixir で GraphQL やってるひと初めて聞いた...!

JavaScript / TypeScript のメソッド引数のもたせ方

ざっくりとこんな感じのコードがある

export class Client {
  public static call(
    method = "GET",
    path: string,
    param1: boolean,
    option1?: JSON,
    option2?: any,
    option3?: any,
    option4?: boolean,
    option5?: Hoge = {},
    callback1?: string,
    callback2?: string
  ) { }
}
  • メソッドの引数が多い
  • どのようにパラメータを追加するか
    • 途中に追加する
      • 修正箇所が多い
      • 呼出時に必要のないパラメータを渡す必要がある
    • (どこまでするかはおいておいて)objectでパラメータを渡す
      • 引数の順番を気にしなくていい
      • 呼び出し側がパラメータの名前を知る必要がある
        • このデメリットはTSだと薄い
      • 関数やメソッドでこのようなインターフェースにするのはフロント・TS界隈で一般的なのか?
    • 愚直に末尾に追加する
      • 呼出時に必要のないパラメータを渡す必要がある
      • コールバックの後ろにコールバック以外のパラメータがあるのが気持ち悪い
  • Fetch関数とかjQueryとかを参考にしてみるのがいいかも
    • 第1引数は必須のpath、それ以外のパラメータはオブジェクトとして第2引数に渡している
    • 移行のことを考えると第2引数がstringかobjectかで処理を変えるか、関数を別途用意して内部実装を共通化していくか
    • 移行のためのコードも残っていくので、TypeScriptで影響範囲わかっているのであればガッとリファクタリングしてしまったほうがよさそう

Redux むずかしい

  • Udemy ではむさん(プログラミングおじさん)の講座で勉強している
  • Redux は初学者のハードルになっているよね
    • 最近のコードだと Redux を使わないでも Context API で乗り切れる
    • ちょっと前のコードの引き継ぎだと非同期通信で redux-saga が使われていたりするので、まだまだ勉強が必要な場面はある

所感

前回はトークテーマのネタ切れ感に悩まされていましたが、今回は初参加の方が多かったり質問を用意してくださっていたりしたので新鮮な話が多かったです!

次回は 10/1(木) 8:00- 予定です。
興味を持たれましたらぜひご参加ください!

wasd-inc.connpass.com