Let's write β

プログラミング中にできたことか、思ったこととか

TLA+, SPINをつかってAPIサーバーの仕様を検証した

バックエンドサーバーのAPIの仕様を決めるにあたって、レスポンスの結果が常にみたしていてほしい不変条件がありました。 ビジネスの詳細に触れてしまうので、抽象的に表現すると 内部データのある属性値が1以上になっているならば、かならずレスポンスにふ…

recoilを0.0.8から0.0.10にアップデートする時にはbabelのsourceTypeをunambiguousにしよう

タイトルの通りです、プロダクトのフロントエンドで使っているRecoil github.com を、0.0.8系をつかっていたのですが、0.0.10にアップデートしたところ、webpack + babelの環境でエラーにつながり、調査しながら対応したので小さなメモです。 環境 おこった…

VimからVSCodeに移行する時にした設定メモ

Vimをずっとつかってきたが、最近VSCodeも使いはじめた。 エディタのモーションはVSCodeVimをいれているのですが、それ以外のUIの表示や挙動にたいして使っている時に感じた使いづらさを分解して少しずつ設定しました。 ファイルツリーが視覚的にツラい Vim…

リモートワークに移行してからの僕たちのチーム: 3ヶ月目

前回の記事からまた一ヶ月がたった、あれからあった事をまとめておく poketo7878-dev.hatenablog.com さすがに、3ヶ月目ともなるとリモートにともなう変化というのも段々と落ちついてきますね。 会社としての変化 オフィスを捨てた チームとしての変化 プロ…

キャンセルという「論理削除」の設計に対して考えた事

新規でリリースを予定しているサービスにおいて、「キャンセルする」という行為があり、 いわゆる「論理削除」とよばれるカテゴリーに属する問題にあたったので、いくつかの実装方法を検討し実装したので、 その時に考えた事をメモとしてまとめておきます。 …

リモートワークになってから2ヶ月目の僕らのチーム

この環境でリモートワーク体制に移行した頃に書いた記事からだいたい2ヶ月立ちました poketo7878-dev.hatenablog.com あれからどんな事があったか、どんな変化があったかをまとめてみます。 会社の変化 全面フルリモートに フルリモート環境でのオフィスの価…

モバイルクライアント向けRailsAPIサーバーのエラーレスポンス設計

RFC 7807で提唱されているProblem Details形式を参考に、Rails APIサーバーからモバイルクライアント向けの統一エラーフォーマットを設計しました

rspecでCSRFチェックのスキップを確認する

rspecのテストケースで、CSRFトークンの検証が正しくスキップされているかを確認できるようにしました。

SwaggerUIをRailsから配信し、AWS ALB上でGoogleのOAuth認証をかけてチーム内で共有した

API開発をするサーバサイドとAPIを利用するクライアントサイドというチーム構成でプロダクト開発をしていくにあたり、クライアントサイドがAPIの開発完了を待つことなくつなぎこみの準備をすすめておくためには、クライアントサイドとサーバサイドで事前にAP…

ActiveStorageの利用時のcontent_typeが設定される流れと信頼性を調査した

背景 サービスでActiveStorageを利用するにあたり、画像ファイルのみに絞りたいであったり、特定のファイルタイプにのみ絞りたいなどの要求がありました。 多くのサンプルコードで、ActiveStorageでアタッチされているファイルの<field>.blob.content_typeをホワイ</field>…

Auth0のCredentialsManagerとOkhttp3のAuthenticator, Interceptorを組みあわせる

背景 今後新規開発するサービスでAuth0をIDaaSとして利用する可能性があったので 技術調査としてAuth0をAndroidでRetrofit + Okhttp3で利用する時にどのように組みあわせるのか調査していました。 ライブラリ implementation "com.auth0.android:auth0:1.22.…

AndroidでスイッチUIの実装をいくつか比較検討してみた

つくりたかった物 デザイナーさんからZeplinでいただいていたイメージ これをどうやってつくるかプロトタイプを作成しながら比較検討しました。 onDrawでCanvasに書いていく 概要 AndroidのViewをカスタムする時にonDrawというメソッドの中で、 Canvasに独自…