UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

2020-01-01から1年間の記事一覧

【Doma】Spring Boot アプリケーションからPostgresに接続する

Domaを使ってSpring Boot アプリケーションからPostgresに接続する ドキュメントは以下 springboot-domamaster-maintenance-sample.readthedocs.io 手順はREADMEがわかりやすい github.com pomの設定は終えた上で Entityを作る package com.sample.doma; imp…

【Cypress】Commands

Cypressを使ってE2Eテストを行う その時調べたCommandのメモ ラジオボタン、チェックボックスをチェックする check | Cypress Documentation cy.get('[type="checkbox"]').check() cy.get('[type="radio"]').first().check() 2要素目をチェック cy.get('[ty…

【Cypress】スマホのテスト

CypressでE2Eテストを行う際にスマホのテストをしたい スマホのテストとは以下をスマホアクセスと同様に設定してテストをする user-agent:chromeの開発者モードのiPhone 6/7/8 Plusにしたときと同じに viewport:iPhone6の414 x 736に user-agent やり方① c…

【Spring Boot】Redisを使う

Cloud Tasksを使っていて、実行されたタスクにエラーが発生した場合は再実行キューにはいる設定にしている ただ、前回の実行した時のエラーが起こるまでの処理が再実行時には最初から始まってしまっていて、処理が重複してしまっているものがあった そこで、…

【Elasticsearch】termsに指定できる上限

termsで複数のキーワードを指定したさいに以下のエラーが発生した { "error": { "root_cause": [ { "type": "too_many_clauses", "reason": "too_many_clauses: maxClauseCount is set to 1024" } ], "type": "search_phase_execution_exception", "reason":…

【Stoplight】Stoplight Studio を試す

APIの管理にStoplightというツールを知ったので調べてみた stoplight.io 特徴 Stoplight Studioを使うとGUIからぽちぽちっとやるだけで簡単にOpenAPI仕様のAPIを設計することができる OpenAPI 2.0とOpenAPI 3.0の両方に対応 ドキュメントはMarkdownで書ける …

【Cypress】assertionsメモ

Cypressには値が確かかどうかを調べるための様々なassertionが用意されている docs.cypress.io その中でもパッと出てこなかったassertionをメモっておく セレクトボックスで選択されている値 URLに含まれているクエリ セレクトボックスで選択されている値 ht…

【Storybook】5.3 -> 6.0 へのバージョンアップ時に"Cannot read property 'fonts' of undefined"がでる

Storybookを5.3から6.0にあげて、立ち上げようとしたときに以下のエラーが発生した Uncaught TypeError: Cannot read property 'fonts' of undefined 同様のトラブルがissueに上がっていて github.com 原因は不明だが、最終的にnode_modulesを消してインスト…

【i18n】ページのローカライズ対応

ページに言語や地域ごとの複数のバージョンがある場合、別バージョンがあることを Google に知らせておくのが良いらしい これにより、Google 検索はユーザーの言語や地域に応じた最適なページのバージョンを表示できるようになるとのこと developers.google.…

【SpreadSheet】日付のセルと時刻のセルを文字列としてつなぎ合わせたい

以下のようにSpread Sheet で日付の入ったセル(YYYY-MM-DD)と時刻の入ったセル(HH:mm:ss)を空白でつなげて一つの文字列にしたい 文字列の結合なので&でやっていたらダメだったので調べた TEXT関数を使う TEXT関数を使って数値を指定した表示形式に変換さ…

【Jackson】JavaのZonedDateTime型とESのdateタイプ(strict_date_time)のアンマッチ対策

Elasticsearchのあるインデックスにdateタイプのフィールドを定義し、そこにバッチの開始日時を格納していた dateタイプで使っているフォーマットはstrict_date_time "startDateTime": { "type": "date", "format": "strict_date_time" }, strict_date_time…

【Spring Boot】HikariCPとは?

HikariCPというワードを目にしたので調べた 検索したら一番最初にでてきたので参考にした openstandia.jp HikariCP(ヒカリシーピー)は、高速かつ軽量なJDBCコネクションプールのライブラリです。現時点では、Javaで実装されたコネクションプールのライブラ…

【Elasticsearch】Filed Collapsing と Scroll API は併用できない

以前、Filed Collapsingについて調べたが、これの検索結果をScroll APIをつかって取得したい uga-box.hatenablog.com が、結論できないみたい https://www.elastic.co/guide/en/elasticsearch/reference/current/collapse-search-results.html

【Cloudflare Workers】Cloudflare Workersとは?

Cloudflare Workersというサービスを聞いて知らなかったので調べた Cloudflare WorkersとはCloudflare社が提供するCDNのエッジ上でJavaScriptを実行できるサーバーレスなサービス workers.cloudflare.com サイトに書かれているウリ サインアップからグローバ…

【React】制御コンポーネントvs非制御コンポーネント

react-hook-formを調べていて、react-hook-formの特徴として非制御コンポーネントによってregister関数をrefで実行していることがわかった uga-box.hatenablog.com ただ、Reatが公式には制御コンポーネントを使うとことを推奨しているため、どっちがどういい…

【React】react-hook-form

react-hook-formというのを知ったので調査してみる hooksベースでUIの機能を提供するライブラリ react-hook-form.com 特徴としては他のライブラリよりハイパフォーマンスとのこと https://github.com/react-hook-form/performance-compare ハイパフォーマン…

ピクセルパーフェクト

ピクセルパーフェクトが議論されている togetter.com 『ピクセルパーフェクト』という言葉が、デザインとどれくらい合わせるかという意味で使われているならフロントエンドエンジニアとしての自分の考えをまとめておく スタンス 原則デザインに合わせて実装…

【TypeScript】Readonly

TypeScriptのReadonlyの使い所を調べてみた typescript-jp.gitbook.io function foo(config: { readonly bar: number, readonly bas: number }) { // .. } let config = { bar: 123, bas: 123 }; foo(config); // You can be sure that `config` isn't chang…

【Architecture】ヘキサゴナルアーキテクチャとは

あるJavaのソースコードをみていて、portというディレクトリがあった これはヘキサゴナルアーキテクチャからきていると知ったのだが、ヘキサゴナルアーキテクチャがわからなかったので調べた こちらの翻訳記事を参考にさせてもらった blog.tai2.net ヘキサゴ…

【Sequelize】SequelizeでPostgresqlに接続する

PromiseベースのNode.js ORMのSequelizeを使ってPostgresqlに接続してみる sequelize.org $ npm install sequelize $ npm install pg pg-hstore DB接続 import { Sequelize } from 'sequelize'; const sequelize = new Sequelize('postgres://user:pass@exam…

【PostgreSQL】docker-composeで環境構築

PostgreSQLを使うことになったのでdocker-composeでローカルに環境をつくりたい docker-compose.yamlの設定を記載しておく version: '3' services: postgresql: image: "postgres:11-alpine" container_name: "postgres_server" ports: - "5432:5432" volume…

【PostgreSQL】psqlを使ったPostgreSQLへの接続

コマンドラインベースで利用できる psql を利用してPostgreSQLに接続した作業メモ 以下のコマンドで接続する $ psql "host=<HOST_NAME> port=5432 dbname=<DB_NAME> user=<USER_NAME> password=<PASSWORD>" オプションの一覧を表示 $ postgres => \? 使用可能なデータベース一覧を表示 $ postgres => \</password></user_name></db_name></host_name>…

【TypeScript】keyofキーワード

TypeScriptで書かれたコードをみるとやたらkeyofを使っているので、keyofについて調べた js.studio-kingdom.com keyof T でオブジェクトプロパティの名称を直和型で取得できる プロパティ名称のどれかという型定義ができる type User { firstName: string; l…

【Vavr】反復処理でインデックスを使いたい

Vavrを利用して次のようなリストを定義した時、要素を繰り返し処理し同時に要素番号(index)にアクセスしたい List<Integer> integers = List.of(1, 2, 3); JavaScriptだと以下のようにしてindexがとれるがVavrの場合はどうやるのか integers.forEach((item, index) </integer>…

【Spread Sheet】UUIDを作成する

データをスプレッドシートにまとめて、それにUUIDを採番したい 以下の記事でGoogleAppScriptを使えば、UUIDを採番することができることを知ったのでメモ qiita.com 細かな手順は上の記事を読めばわかるので、個人的に残しておきたいものは以下 function getU…

【TypeScript】infer

下の型定義をみたときに、extendsはわかるが、inferがよくわかっていなかったので調べた type Unpacked<T> = T extends (infer U)[] ? U : T extends (...args: any[]) => infer U ? U : T extends Promise<infer U> ? U : T; こちらの記事が参考になった qiita.com infe</infer></t>…

【Web高速化】Web Vitals

サーチコンソールでステータス「不良」のページが多く存在するため「良好」になるようにしたい そのためにはGoogleが定めるWeb Vitalsの改善がよいとされている developers-jp.googleblog.com Web Vitalsは、ウェブで優れたユーザー エクスペリエンスを実現…

【Shell】指定ディレクトリ内のファイルに一括処理を行う

あるディレクトリ内の画像ファイルに対して処理を行いたい 毎回調べているのでメモ #!/bin/sh IMAGE_DIR="/path/to/target/dir/*" for f in `find $IMAGE_DIR -maxdepth 0 -type f -name *.jpg`; do echo $f done maxdepthを増やせば階層にさらにディレクト…

【React】ref のフォワーディングについて

ReactのhooksベースでUIの機能を提供するモジュールを作る・使う機会が増えてくると考えられるので、input系の要素を含むコンポーネントはforwardRef()でラップしておくのが良さそうという話を聞いた forwardRefについて理解できていなかったので調べた ja.r…

【TypeScript】as const ( const assertion )

TypeScriptで書かれたソースコードを読んでいて、as constの使い方がわからなかったので調べた qiita.com const assertionはTypeScript 3.4で搭載されたシグネチャ 宣言時にハードコードされた値がLiteral Typesとして適用される const tuple1 = [false, 1, …