2021.12.08 WEBシステム開発 database/sqlのrowsのメモリ量を調査する 今回はGoの「database/sql」を使って、結果が大きいクエリを発行したときにヒープのメモリ量を見ていきたいと思います。 INDEX検証理由準備実際に動かしてメモリを計測するまとめ 検証理由 多くの場合LimitとOffsetを指定するのですが、大量の結果が返されるときに row [...]
2021.11.26 WEBシステム開発 React18 beta の新機能を紹介する【Automatic Batching (自動バッチ処理)編】 最近 React18beta がリリースされました。今回は、React18 で追加される大きな新機能の中から「Automatic Batching(自動バッチ処理)」についてご紹介します。 INDEXReact18 の新機能インストールAutomaticBatching(自動バッチ処理)を検証バ [...]
2021.11.08 WEBシステム開発 Reactのprops drilling(バケツリレー)とhooksに我々はどう立ち向かっていけばよいのか 最近Reactに入門しました。 アプリケーションの規模が大きくなってくると問題になってくる一つにprops drilling(バケツリレー)と呼ばれるものがあります。 今回はprops drilling(バケツリレー)が“つらい”と思ってから、どのように立ち向かっていったのか一例をご紹介します。 [...]
2021.10.17 WEBシステム開発 【Go言語】jsonデータをstreamで扱うEncoder、Decoder型を試してみる goのjsonパッケージには、jsonデータをstreamで扱うEncoder、Decoder型があります。 今回はこのEncoder、Decoderについて紹介します。 INDEXEncoderの定義Encoderの使い方Decoderの定義Decoderの使い方さいごに Encoderの定義 [...]
2021.10.08 WEBシステム開発 goroutineリークを排除して安全に並行処理を行う方法 goroutineはgoキーワードを関数の前に書くことで簡単に起動することができます。 しかしながら、goroutineはランタイムによってガベージコレクションされないため、正常に終了させていない場合はリークしていきます。 野放しになったgoroutineたちによってプロセスごと停止にならないよう [...]
2021.10.07 WEBシステム開発 Golangでデッドロックを作って遊んでみる~並行処理でデッドロックを起こさないために~ Goではgoroutineと呼ばれるGoで管理された軽量なスレッドを使って、並行処理を書くことができます。 手軽に並行処理を書けるところがGoの魅力の一つだと思いますが、並行処理ならではの問題が発生することがあります。 今回は起こりやすい問題の一つである「デッドロック」で遊んでみたいと思います。 [...]
2021.09.30 WEBシステム開発 React-transition-groupでモーダルアニメーションを実装する! ReactでCSSアニメーションを扱うためのライブラリを紹介していきます。 INDEXReact-transition-groupとはインストールモーダルを実装まとめ React-transition-groupとは アニメーションそのものを提供しているのではなく、CSSをDOMに反映するタイミ [...]
2021.09.22 WEBシステム開発 コマンド一発でソースコードを本環境に!PHP製のDeployツール「Deployer」を使ってみた 本番環境へのソースコードのDeployにも色々な方法があります。 FTPクライアントを用いてアップロード lftpコマンドを用いてアップロード GitHub等のサービスを介して本環境でclone GitHubActionsを用いてアップロード 等々… 弊社ではセキュリティ等の関係 [...]
2021.09.09 WEBシステム開発 Windowsで至高のターミナル生活を求めて(番外編:ArchLinux on WSL2) 以前の記事「Windowsで至高のターミナル生活を求めて(Windows Terminal編)」 ではWindows Terminal + Ubuntu-20.04 on WSL2をご紹介しました。 Ubuntu-20.04もとてもいいLinuxディストリビューションだと思いますが、MSYS2を使 [...]
2021.08.19 WEBシステム開発 goでデータ形式を識別するためのMIMEタイプを判定する方法 業務でアップロードされた画像ファイルのMIMEタイプを判別する必要があったので調査しました。 INDEXhttpパッケージのDetectContentType説明動作のサンプルファイルを読み込んでMIME判別さいごに httpパッケージのDetectContentType 調べてみるとgoのht [...]
2021.08.02 WEBシステム開発 MySQLのJSON型に含まれる値でソートをかける方法 (数値・文字列・Goのtime.Time型) MySQLのJSON型に含まれている中の値で、ソートをかける方法についてまとめたいと思います。 JSON型に変換したGoのtime.Time型をソートする方法も後半でご紹介します。 INDEX準備JSON_EXTRACTを使用する方法「->」演算子を使用する方法Goのtime.Time型を [...]
2021.07.28 WEBシステム開発 React Hook Form(V7)を使って簡単にバリデーションを実装しよう! 現在担当しているプロジェクトで、フロントエンドのバリデーションを実装することとなり「React Hook Form」を採用しました。 Version7 が最近出たばかりであまり情報が出回っておらずつまずいたので使い方や仕様について紹介していきます。 コードは React と Typescript [...]
2021.07.07 WEBシステム開発 VueとReactのプロジェクトをHMR(ホットリロード)が爆速と噂の「Vite」を使って構築してみる Vitehttps://vitejs.dev/ Vite(ヴィート)はVue.jsの作者のEvan You氏が開発した次世代フロントエンドツーリングです。 公式では以下のように説明してます。 以下、Google翻訳 On demand file serving over native ESM [...]
2021.06.23 WEBシステム開発 インメモリで高速に!GoでRedisを扱う方法と排他制御の実装について 業務でRedisを扱うこととなり、Redisはどんなときに使うべき?というところから学習しました。 バックエンドではGoを使用しているので、Goでの簡単な使い方をまとめたいと思います。 INDEXRedisとはRedisの準備GoでRedisにアクセスする排他制御についてまとめ Redisとは [...]
2021.06.16 WEBシステム開発 goでデータベースから取得したデータをcsvにして出力する 最近業務で大量のデータをcsvに出力する必要があり、goでのcsv出力方法を調べたのでまとめます。 INDEXgoでcsv出力のサンプルencoding/csvで指定できるパラメータデータベースから取得したデータをcsvに出力してみるおわりに goでcsv出力のサンプル goでcsvを出力するた [...]
2021.05.28 WEBシステム開発 超簡単!1時間でできるFireBaseを使ったログイン機能の実装!(実装編) FireBaseのドロップイン認証の実装を全2回に分けて解説します。 今回は実装編として、htmlにスクリプトを埋め込みログイン機能を実装していきます。 前回の記事超簡単!1時間でできるFireBaseを使ったログイン機能の実装!(準備編) INDEXFireBaseを使ってログイン機能を実装 [...]
2021.05.19 WEBシステム開発 【PHP初心者向け】配列関数(array関数)を使って配列操作をスマートに書こう! みなさん、配列関数(array関数)、使っていますか? 配列操作と聞くと、なんとなくループ処理で書いてしまっている方もいるかもしれません。 ですが、多くの場合ループ処理より配列関数の方がスマートに書くことができ、可視性の向上、コーディング効率のアップに繋がります。 そんな配列関数の中でも、筆者がよ [...]