2024.10.22 WEBシステム開発 【Go】ベンチマーク機能を使って高速でメモリ使用量の少ないプログラムを書こう 先日、メモリ使用量をなるべく抑えたい処理を実装するにあたってGoのベンチマーク機能を使用しました。 今回はそのベンチマーク機能について記事を書いていこうと思います。 ベンチマークのコードの書き方 実際にベンチマーク機能で使うコードを書いてみます。 go func BenchmarkExampl [...]
2024.08.22 WEBシステム開発 【Go】jsonパッケージのMarshalとUnmarshalはなんとなくわかったが、Encode, Decodeって何? 普段のコードでJSON関係の変換をする際にはjsonパッケージのMarshlとUnmarshalを使っているのですが、jsonパッケージの中に同じようにJSONを変換するEncoder型のメソッドEncode及びDecoder型のメソッドDecodeなるものを見つけ、いったいMarhsalとUnm [...]
2024.06.26 WEBシステム開発 【Go】最近のリリースで追加された新しい機能について調べてみた(min関数,max関数、clear関数、rangeを使ったforループの新機能) 以前記事にした機能の他にも最近のリリースで実装された新しい機能があるため、そちらについても調べてみました。 以前の記事 Go1.21で追加された「slicesパッケージ」とは?実際にパッケージ内の関数を使うコードを書いてみた。 Go1.21で追加された「mapsパッケージ」とは?実際にパッケー [...]
2024.05.02 WEBシステム開発 【Go】embedで作成した文字列を利用する機能のテストで改行に苦しめられた件 embedパッケージを使って作成した文字列を利用する機能のテストを書いていた際にテストが通らず苦しめられたので、備忘録も兼ねて記事にしました。 問題の概要 embedパッケージを利用してテキストファイルに書かれた文章を文字列として利用し、その文字列を text/template を使って加工してメ [...]
2024.02.22 WEBシステム開発 Go1.21で追加された「mapsパッケージ」とは?実際にパッケージ内の関数を使うコードを書いてみた。 気づいたらGo1.22がリリースされていましたが、今回は引き続き1.21で追加されたパッケージを調べようと思います。 今回はmapsパッケージについて解説します。 mapsパッケージの概要 Package maps defines various functions useful with map [...]
2023.12.25 WEBシステム開発 Go1.21で追加された「slicesパッケージ」とは?実際にパッケージ内の関数を使うコードを書いてみた。 最近になって開発中のプロジェクトのGoのバージョンが1.21になったので、新しく追加された機能について調べようと思い、今回はslicesパッケージについて調べてみました。 INDEXslicesパッケージの概要slicesパッケージの関数slicesパッケージの関数の使用例DeleteInser [...]
2023.10.25 WEBシステム開発 【Go】standard libraryのtext/templateを使って、簡単に文字列を作成・加工しよう! 現在開発中のアプリケーションで実装するメール送信機能には、送信先ごとにメール本文の一部を個別にカスタマイズする仕様が存在します。 これを実装するにあたって、Goのtext/templateパッケージの機能がとても役に立ったので、今回も備忘録代わりにまとめてみました。 それでは早速使い方を見ていきま [...]
2023.08.29 WEBシステム開発 Go1.18から実装されたジェネリクスの基本的な使い方をまとめてみた 業務でGoのジェネリクスに触れる機会があったので、自身の学習も兼ねてまとめてみました。 Goのジェネリクスの概要 Go1.18にジェネリクスの機能が搭載されました。この機能により、複数のデータ型に対して動作する関数や型が作成可能になりました。 ジェネリックな型や関数を使うには、対象に対して型パラメ [...]