2020-07-01から1ヶ月間の記事一覧
機能拡張を盛んに行った結果、予期せぬ不具合が頻発するようになった 事象分析したところ特定のUIパーツが表示されなくなってしまうバグが多かったため、リリース前にE2Eのリグレッションテストを実施することにした Cypressの導入 E2EをするにあたってCypre…
機能拡張を盛んに行った結果、予期せぬ不具合が頻発するようになった ページ数も増えたことで、これまで手動でやっていたテストだけでは品質が保ててないとということで、一部のテストを自動化することを考える ただ、テスト自動化はすぐにやれるものでもな…
TestFlightというワードを聞いて、知らなかったので調査した developer.apple.com TestFlightはApp Storeでアプリをリリースする前に、ユーザーを簡単に招待してアプリを試用できるApple純正のベータテストの仕組み 最大10,000人のテスターを招待することが…
loadable-componentsというワードを聞いて知らなかったので調査した loadable-components.com 何かというと Reactコード分割ライブラリ React.lazyに代わるものではありません Reactチームが推奨するソリューション どんな特徴があるかというと Library Spli…
GCP のSecret Manager を利用する Secret Managerについては以前調べていて、これを利用する uga-box.hatenablog.com プロジェクトでSecret Managerを有効化する Secret Managerを設定するには権限が必要 secretmanager.admin:秘密情報に表示、作成、編集、…
Date.now()を使っている箇所でJestのスナップショットテストを実施した場合、日付が毎回変わってしまうためエラーになってしまう そのため、Date.now()をモック化してあげる必要がある そこでJestのMock Functionsを利用する jestjs.io 具体的には以下のよう…
JESTでテストを書いていて全てのテストが通るようになったのだが、最後npm run jestのexit statusが1で終了してしまう Snapshot Summary › 1 snapshot file obsolete from 1 test suite. To remove it, run `npm run jest -- -u`. Test Suites: 23 passed, 2…
これまでSpring Cloud GCP で Secret Manager に登録した秘密情報をアプリケーションの設定値として設定できるようにしてきて、これをデプロイするところまで行った uga-box.hatenablog.com uga-box.hatenablog.com あとはこれをCloud BuildでAppEngine Depl…
以前行った秘密情報をSecret Managerに登録するという作業をしたが、登録したファイル内の値の最後に改行が入っていて残念なことになった uga-box.hatenablog.com ファイルは以下のコマンドで実施したのだが、これだと最後に改行が入ってしまうらしい $ echo <secret-value></secret-value>…
Spring Cloud GCP で Secret Manager に登録した秘密情報をアプリケーションの設定値として設定できるようにした uga-box.hatenablog.com ただ、このアプリケーションをこれまで通りローカルでmvn appengine:deployでAppEngineにデプロイしようとしたら以下…
stale-while-revalidate(SWR)というキャッシュの仕組みをしったので調べた blog.jxck.io これまでのCache-Control, Expiresでのキャッシュの場合、有効期限を長くするとURLを変えない限り更新されなくなってしまうし、短くするとリクエストが頻繁に発生し…
React + Redux アプリケーションのテストを考えているときに、reduxのテストの書き方のドキュメントと、丁度以下の記事を目にしたので、自身のプロジェクトに当てはめてみる recruit-tech.co.jp 上の記事で挙げられているテストの対象は以下 Action Creator …
とても簡単だったはずなのに毎回IntelliJ IDEAでLombokの設定を忘れてしまうのでメモ IntelliJ IDEAのPreferencesで「Annotation」と入力(ここで毎回「Lombok」で検索してしまう) Annotation Processing画面が表示されるので「Enable annotation processin…
max-ageとs-max-ageがわかっていなかったので調査 max-age max-ageはprivateキャッシュ・publicキャッシュ向けのキャッシュの寿命を指定するディレクティブ 例えば、Cache-Control: max-age=1000の場合、中継サーバ(CDNなど)もブラウザも1000秒キャッシュ…
前回の記事でSpring Cloud GCP でSecret Manager に登録した秘密情報を取得する方法を調べたが、みるべきドキュメントのバージョンが違っていた uga-box.hatenablog.com パッチバージョンの違いなので問題ないと思っていたが、かなり大きな変更があって実装…
GCP のSecret Manager に秘密情報を登録した uga-box.hatenablog.com これをSpring Bootアプリケーションから利用したい ドキュメントは下だと思っていたが、バージョンが1.2.2.RELEASEで、使っているバージョン1.2.3.RELEASEと異なっていた https://cloud.s…
これまでjava-cloud-bomでGoogle Cloud APIライブラリの依存関係を管理していたが、Spring Cloud GCP プロジェクトを利用することにした Spring Cloudとは spring.pleiades.io クラウドネイティブなアプリを作るためのライブラリ郡 分散システムの一般的なパ…
以前の調査でGCSのコスト削減として「Archive」クラスがよさそうというのがわかったが、単純にコンソール画面から変更した場合は変更後に保存されたファイルのみが対象とのことだった uga-box.hatenablog.com ただ、GCSにはライフサイクルが設定できるので、…
以前GCPのCloud KMSとSecret Managerの違いを調べた uga-box.hatenablog.com このときCloud HMSというワードも耳にしたので調査する cloud.google.com Cloud HSMとは Cloud KMSもCloud HSMも暗号化キーを管理できるサービスだが、Cloud HSM はクラウドでホス…
これまでGCPのKMSを使ってクレデンシャル情報を扱っていたが、GCPにはSecret Managerというものもあることを知ったので調査 cloud.google.com Cloud KMSとSecret Managerの違い Cloud KMSはデータを暗号化し、暗号化された暗号文を返すサービスで、秘密情報…
外部APIのレスポンス結果などのログをGCSに溜めているが、アクセス頻度は障害の原因調査のときにちょっとみるくらいの頻度 このようにファイルへのアクセスが年に1度あるかないかの頻度の場合は「Archive」と呼ばれるストレージクラスがよいという話を聞い…
あるコンポーネントを修正した結果、予期せぬページが変更されており表示崩れを起こしていた これを防ぐためスナップショットを導入したい スナップショットテストは、一度レンダリングされたコンポーネントの状態を保存しておき、テストを実行する度にその…
Spring Bootの@ConfigurationPropertiesをうすくおさらい @ConfigurationPropertiesを使うとプロパティファイルで定義されたプロパティへ簡単にアクセスすることができる propertiesファイルを以下のように定義する user.firstName=John user.lastName=Doe u…
Storybookを更新したら以下のエラーがコンソールにでていた Error: Illegal mix of CSF default export and storiesOf calls in a single file CSF(Component Story Format)とはStorybookの新しいフォーマットのこと これまでのフォーマット storiesOf('at…