senooken JP Social
  • FAQ
  • Login
senooken JP Socialはsenookenの専用分散SNSです。
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. ( ᐛ) まりなっピ (sasanquaneuf@qiitadon.com)'s status on Friday, 12-Oct-2018 21:17:41 JST ( ᐛ) まりなっピ ( ᐛ) まりなっピ

    そういえばソースコードの読み解き方、色々思ったんだった
    ・そもそも頭からお尻を順番通りに読むことはない
    ・メインループとかイベントループみたいな、待ち受け状態というか骨になる部分をまず掴む
    ・webアプリの場合はエンドポイントがだいたいイベントで、それに沿って理解する
    ・コードを読む前に、APIとかエンドポイントの一覧を見て、そもそもの目的や機能性を掴む
    ・トランザクションとマスターをざっくり定性的に分けて、ドメインなのかユースケースなのか、そういう観点で読む
    ・一つのエンドポイントを追いかける時は、あまり長くないなら頭から呼べば良い
    ・抽象クラスの中とかでやっている事は、そもそも共通する処理とかだから、多くの場合それはあまり追いかけなくてよい(ログ出力とかDB接続の作法は具体的な低いレイヤーのコードなので、最初に読むべき場所じゃない)
    ・DIとかでよくわからないクラスが渡ってきている時は、そのクラスの渡し方がフレームワークで定まっているはず
    ・わからなかったらデバッグで止めてスタックトレースや中身を見る、最悪は追いかける

    とかかな

    In conversation Friday, 12-Oct-2018 21:17:41 JST from qiitadon.com permalink
    • 7of9(0x70f9=28921) repeated this.
    • ( ᐛ) まりなっピ (sasanquaneuf@qiitadon.com)'s status on Friday, 12-Oct-2018 21:35:46 JST ( ᐛ) まりなっピ ( ᐛ) まりなっピ
      • がらけん

      @garaken 要らない何も捨ててしまおう?

      In conversation Friday, 12-Oct-2018 21:35:46 JST permalink
    • ( ᐛ) まりなっピ (sasanquaneuf@qiitadon.com)'s status on Friday, 12-Oct-2018 21:36:42 JST ( ᐛ) まりなっピ ( ᐛ) まりなっピ
      in reply to
      • がらけん

      @garaken 長いという事ですかね

      In conversation Friday, 12-Oct-2018 21:36:42 JST permalink
    • ( ᐛ) まりなっピ (sasanquaneuf@qiitadon.com)'s status on Friday, 12-Oct-2018 22:25:19 JST ( ᐛ) まりなっピ ( ᐛ) まりなっピ
      in reply to

      読み解きの続き
      ・CRUDを意識して、DBの何を参照して何が起こるかを読む
      ・そのエンドポイントの主にやりたい事が、登録・更新・削除・一覧・詳細・複雑な更新のいずれにあたるかという観点で見る
      ・異常系と正常系を意識して、まずは正常系を追いかける
      ・一般にバリデーションをどこかでやっているはずだが、しかしそれは後で読む
      ・全体的に、まずはあるエンドポイントを選んだ時にその内容を一言で説明できる状態を目指して、必要ならそれを深く説明する
      ・関数の名前は、直感が働くほど読んでないうちは名前から類推できないから、追いかける
      ・関数やサブルーチンを読む時は、副作用がないかを注意して読む
      ・webアプリの前提としては、基本的にDB(キャッシュサーバなども含む)にアクセスして必要なら更新してレスポンスを返すのがメインなので、まずそれか否かを見る
      ・よく見かける共通の作法に着目する
      ・DBのリレーションに注意して読む、親子関係(外部キー)とか

      元ネタがwebアプリなので、特にそれっぽいけど、アルゴリズムガチガチでなければベースは同じ
      アルゴリズムガチガチだと、普通にクラスを辿ったりはする

      In conversation Friday, 12-Oct-2018 22:25:19 JST permalink
      7of9(0x70f9=28921) repeated this.

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.