【Golang】hottest - ユニットテストのエラーメッセージを抽出するCLI/GitHub Actionsを作った話

【Golang】hottest - ユニットテストのエラーメッセージを抽出するCLI/GitHub Actionsを作った話

前書き 本記事は、フラー株式会社 Advent Calender 2023 の4日目の記事です。3日目は、@ujikawa1026さん の「マネージャーはなぜ忙しいのか。3年間やって少し分かってきたこと」です。 本記事の主題:hottestの紹介/宣伝 本記事では、2023年に私が開発したOSSの中で出来が良い部類のnao1215/hottest を紹介します。hottestは、E2Eテスティングフレームワークであるgo-spectest/spectestの開発中に生まれたサイドプロジェクトです。 ...

2023年12月3日 · 8 分 · nchika
GitHub Actionsが全成功かつパッチ/マイナーアップデートの場合は、Dependabotが作成したPRを自動マージする設定

GitHub Actionsが全成功かつパッチ/マイナーアップデートの場合は、Dependabotが作成したPRを自動マージする設定

前書き 今どきは、zero dependency(依存なし)で開発を進めるよりも、便利なOSS(ライブラリ)を利用してサクッと開発する方が多いのではないでしょうか。他の人が開発したライブラリは日々改良されていくので、ライブラリ更新をサボっていると「自分のOSSが知らない間に動かなくなってしまった!」という状況になるかもしれません。 ...

2023年10月11日 · 5 分 · nchika
DependabotでGitHub ActionsのActionを最新に保つ方法

DependabotでGitHub ActionsのActionを最新に保つ方法

前書き:絶滅へ向かうJenkinsオジサン 結論ですが、GitHub公式ドキュメント「Dependabot でアクションを最新に保つ」を読めば、GitHub ActionsのActionを最新に保つ方法が分かります。ちなみに私は、現職のテックリードから教えていただいて「なにこれ便利だ」と思った記憶があります。 ...

2023年9月30日 · 3 分 · nchika
GitHub ActionsでBSD(FreeBSD、OpenBSD、NetBSD、Dragonfly BSD)のユニットテスト環境を構築する方法

GitHub ActionsでBSD(FreeBSD、OpenBSD、NetBSD、Dragonfly BSD)のユニットテスト環境を構築する方法

前書き:BSDはクロスプラットフォーム対応の鬼門 私は、GolangでOSSを開発することが多く、Golangは様々なOS向けの実行バイナリを簡単に作成できる特徴があります。この特徴を活かして、「クロスプラットフォーム対応しよう!」と考えるのは自然なことです。 ...

2023年9月16日 · 5 分 · nchika
【Docker】DynamoDB localをローカル起動する方法【管理画面付き】

【Docker】DynamoDB localをローカル起動する方法【管理画面付き】

前書き:DynamoDB、はじめまして 本記事では、DynamoDBをローカルで起動する方法を説明します。DynamoDBは、AWSが提供するNoSQLデータベースです。サーバーレスのKey Valueストアであり、フルマネージドサービスです。 検証環境 本記事は、Ubuntu環境で検証しています。Docker Composeを使用するため、別途インストールが必要です。 ...

2023年9月10日 · 3 分 · nchika
【golang】io.Readerを使いまわしてContentType判定、S3アップロードしたらハマった話

【golang】io.Readerを使いまわしてContentType判定、S3アップロードしたらハマった話

前書き:同じハマりを繰り返す Single Page Application(SPA)をAmazon S3にアップロードする機能を持つspareコマンドを開発しているとき、io.Readerの使い方を間違えて少しハマってしまいました。ハマりの原因はio.Readerで読み出すデータが欠損していたことであり、欠損の原因はio.Readerを使いまわしたことです。 このハマり方は2回目なので、備忘録として記事にします。 ...

2023年9月10日 · 6 分 · nchika
Golangを用いたサーバーサイド:技術選定と現状の小さな課題

Golangを用いたサーバーサイド:技術選定と現状の小さな課題

前書き 本記事では、Golangを用いてRESTful APIを開発する上で私が使用している技術(OSS)を述べた後、より良い開発体験を得るための改善したい点(解消したい課題)について述べます。 ...

2023年5月19日 · 11 分 · nchika
AndroidプラットフォームアーキテクチャでJavaが採用されている理由は、エンジニア人口が多いから

AndroidプラットフォームアーキテクチャでJavaが採用されている理由は、エンジニア人口が多いから

前書き:何故AndroidはC/C++がメインではないのか AndroidでJavaを採用した理由が気になって夜しか眠れなかったので、調べました。 まず、前提をおさらいします。Androidプラットフォームは、ハードウェアを制御するためにLinux Kernelを採用しています。その上にハードウェアを抽象化するためのHALレイヤーがあり、C/C++とJavaランタイム(Android Runtime)がHALの上にあります。最近では、NativeライブラリにRustも採用され始めたと聞いています。 ...

2023年4月17日 · 6 分 · nchika
【マネージャー視点】エンジニアとして貢献できないもどかしさとメンバを不快にさせる恐怖

【マネージャー視点】エンジニアとして貢献できないもどかしさとメンバを不快にさせる恐怖

前書き:マネージャーと称されるお仕事、やってます 本記事はポエムです。答えが出ていない状態で、文章を書き始めています。息子を寝かしつけて、勉強する元気がなかったので思考の整理として記事を書いています。 ...

2023年4月15日 · 6 分 · nchika
32歳の子持ちエンジニアがキャリアパスに悩んだ話(結論:フルスタックを目指します)

32歳の子持ちエンジニアがキャリアパスに悩んだ話(結論:フルスタックを目指します)

前書き:新築一戸建ての検討、迫りくる恐怖 マイホームの購入の検討を始めました!検討が加速しているだけですが! 家の購入を検討し始めた理由は、息子が1歳になった時期に「深夜はあなたが思うより音が響く。眠れない」旨の苦情の手紙を受け取ったことです。手紙を呼んだ時は精神的なダメージが大きく、かつ「親でさえ泣き声に参っているから他人なら尚更」と反省しました。 ...

2023年4月2日 · 7 分 · nchika
【Android Studio】JSON To Kotlin ClassプラグインでAPIレスポンス用モデルの作成を楽に

【Android Studio】JSON To Kotlin ClassプラグインでAPIレスポンス用モデルの作成を楽に

前書き Androidアプリでは、RESTful APIの実行結果(≒ jsonデータ)に対応するdata classを作成し、kotlinx.serializationでjsonをdata classにデシリアライズする処理があります。 ...

2023年4月1日 · 4 分 · nchika
2022年の振り返り & 2023年の抱負

2022年の振り返り & 2023年の抱負

前書き:サクッと振り返って、来年も良い年に! 会社の自席から見える景色と共にお届けします。 なお、弊社はフリーアドレスなので、座席は自由です。ここはこたつスペースであり、高頻度でサーバーサイド民(軟体生物)がぐでっとした感じで生息しています。 ...

2022年12月24日 · 7 分 · nchika
【Golang】CSV/TSV/LTSV/JSONにSQLを実行するsqlyコマンドを作った話【開発背景/設計/使い方】

【Golang】CSV/TSV/LTSV/JSONにSQLを実行するsqlyコマンドを作った話【開発背景/設計/使い方】

前書き 本記事は、フラー株式会社 Advent Calendar 2022の5日目の記事です。4日目の記事は、「フラーを卒業していった優秀な学生アルバイトに向けたポエム(@furusax)」です。ポエムと言いつつ、技術的なお話でしたね。 本記事では、CSV/TSV/LTSV/JSONに対してSQLを実行する"sqly"コマンド(自作ツール)について解説します。sqlyの基本機能を簡単に説明した後、開発した背景、設計、使用しているパッケージについて説明し、利用例と今後の展望を説明します。 ...

2022年12月2日 · 11 分 · nchika
【Golang】Windows対応でハマった箇所【ファイルパス、一時ファイル削除エラー】

【Golang】Windows対応でハマった箇所【ファイルパス、一時ファイル削除エラー】

 前書き:Windows君さぁ…… 私は、GolangでCLIツールをよく作ります。CLIツールの品質を担保するために、GitHub Actionsでユニットテスト(Linux、Mac、Windows向け)を継続的に実施しています。 ...

2022年11月27日 · 3 分 · nchika
【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい

【golang】sqlcコマンドで「SQLクエリから型安全なGoコードを生成」し、生産性を上げたい

前書き:sqlcとは 本記事は、kyleconroy/sqlcの基本的な情報を紹介します。 sqlcは、DBスキーマ(DBテーブル定義)、SQLクエリ定義、設定ファイルの3点をインプットとして、型安全なCRUDコード + DBテーブルに対応したモデル(構造体)を自動生成します。ここでのモデルの自動生成には、複数テーブルをJOINしたクエリ用の構造体も含まれます。 ...

2022年6月25日 · 11 分 · nchika
【入社エントリ】フラー株式会社に入社して約半年経ちました

【入社エントリ】フラー株式会社に入社して約半年経ちました

前書き:人生初の転職。その感想 2022年1月にフラー株式会社へ入社してから、約半年経ちました(実際は5ヶ月と少し)。参加プロジェクトも区切りが付きそうであり、良い節目なので記録を残します。社内の細かいことは書きません。 個人的な日記に近いので、SEO(検索エンジン最適化)を気にせず、文章多めです。 自己紹介と転職の経緯 転職経緯の詳細版は、別記事に書いています。 私は、前職で組み込みエンジニアとしてキャリアを歩んできました。しかし、使う技術が古く、業務内容もマネージメント寄りになってきていました。そのため、「エンジニアとして使えないオッサンになるのではないか(今31歳なのでオッサンなのは否定しない)」と漠然と不安を抱えていました。 ...

2022年6月4日 · 13 分 · nchika
【寄稿】Software Design 2022年6月号 第1特集(第3章 シェルスクリプトの使い方)

【寄稿】Software Design 2022年6月号 第1特集(第3章 シェルスクリプトの使い方)

Software Design誌 2回目の寄稿! 技術評論社のSoftware Design 2022年6月号 第1特集 第3章 「シェルスクリプトの使い方」に寄稿する機会をいただきました!2022年1月号に続いて、2回目の寄稿です。表紙がワンちゃんからネコちゃんに戻っています! ...

2022年5月15日 · 4 分 · nchika
【勉強期間1ヶ月(60h)】LPIC Level3 303 (Security) 合格体験記【ping-t、黒本使用】

【勉強期間1ヶ月(60h)】LPIC Level3 303 (Security) 合格体験記【ping-t、黒本使用】

資格有効期限切れ 2週間前の滑り込み合格 LPIC有効期限2022年6月3日の約2週間前に、LPIC Level3 303-200(Version 2.0)に合格しました。「転職(組み込みからサーバサイドへのキャリアチェンジ)」「息子の誕生」「Software Designへの記事寄稿」と、生活の変化が多い中でギリギリ合格できて、安心しました。 ...

2022年5月15日 · 4 分 · nchika
【Golang】spf13/cobraが提供する入力補完(shell completion)をファイル形式でインストールする方法【bash, zsh, fish】

【Golang】spf13/cobraが提供する入力補完(shell completion)をファイル形式でインストールする方法【bash, zsh, fish】

前書き:spf13/cobraのシェル補完は便利 本記事は、spf13/cobraが提供する「シェル補完(文字列)」をファイルとしてシステムにインストールする例を紹介します。今回の例を実践すると、cobraを用いたCLIコマンドでシェル補完が有効になります。ここでのシェル補完とは、ターミナルでコマンド入力中に[TAB]キーを押すと、自動で単語を補完する機能です。 対象シェルは、bash、zsh、fishです。PowerShellは、私が詳しくないので除外します。 cobraは、Golang用のCLIコマンド作成補助ライブラリです。代表的な機能は、CLIコマンド実行時にオプション/サブコマンドが指定されたかどうかを判定する機能です。cobraを使用した場合、自動的にcompletionサブコマンドが追加され(例:以下に示すposixerコマンドのhelp参照)、このサブコマンドはシェル補完用の文字列を出力します。 ...

2022年4月17日 · 8 分 · nchika
GitHubで初めてStar 50個以上を獲得した感想と実施した内容【Redditで宣伝】

GitHubで初めてStar 50個以上を獲得した感想と実施した内容【Redditで宣伝】

前書き:人生で初めてGitHub Star 50個超え “go install"したバイナリをアップデートするgupコマンドが、公開から一週間でGitHub Starを50個以上獲得しました!ちょっと嬉しい。最新の仕様は、Zennで説明しています。 ...

2022年2月26日 · 5 分 · nchika