YOSHINO日記

プログラミングに関すること

Rails: # FIXMEとチーム開発に関して

お手本

ActiveStorageでのDHHの例をみてみる。

1つはAmazon S3サービスのアップロードの例。

  def upload(key, io, checksum: nil)
    # FIXME: Ensure integrity by sending the checksum for service side with verificarion
    object_for(key).put(body: io)
  end

もう1つは、Google Cloud Storageのアップロードの例。

  def upload(key, io, checksum: nil)
    # FIXME: Ensure integrity by sending the checksum for service side verificarion
    bucket.create_file(io, key)
  end

これに加えて、これらのメソッドに関してテストコードが書かれている。

これらの# FIXMEのその後

GCSに関してはSGospodinovさん がFIX。

Adding server side integrity check for GCS Service · rails/activestorage@d065a68 · GitHub

S3に関してはjohnwilliamsさんがFIX。

Send checksum to S3 to verify file integrity · rails/activestorage@f853916 · GitHub

修正する側はテストが書かれているので、テストが通るように修正するだけで良くなる。

結論

FIXMEを書く時のポイント。

  • 独立している
  • コメントが書かれている 
  • テストが書かれている