個人開発活動2022

| 4 min read
Author: masahiro-kondo masahiro-kondoの画像

これは、豆蔵デベロッパーサイトアドベントカレンダー2022第1日目の記事です。

豆蔵デベロッパーサイトは11月29で1周年を迎えました[1]。この1年で執筆者が増え、バラエティに富んだ記事が数多く投稿され、アクセスも伸び続けて順調に成長しています。そして12月はちょうどアドベントカレンダーの季節。「アドカレやろうよ!」と同僚に呼びかけ、お願いしまくってカレンダーを埋めてもらっています。

言い出しっぺなので初日の記事を担当することにしました。この記事では筆者の2022年の個人開発活動について書いてみようと思います。

Write Code Every Day

#

筆者は2018年の途中から GitHub の contribution graph に毎日草を生やし続けています[2]

contribution graph

個人でソフトウェアを開発して公開するというのもやっていますが、そういうプロジェクト以外に、プログラミング言語やインフラ系の技術 (Kubernetes や Infrastructure as Code) などの勉強用リポジトリを作ってコミットしたりしています。

勉強用リポジトリの効能

勉強用リポジトリを持っておくと、本気のコードを書く前に素振りでき、ついでに書いたコードをサンプルとしてブログ記事にできたりするため、なかなかいいプラクティスだと思っています。筆者の GitHub アカウントには名前に -study というサフィックスのついたリポジトリがかなりあります。

個人リポジトリだけでなく、豆蔵の GitHub オーガニゼーションや業務用の GitHub チームもあり、毎日なにかしらコミットするネタはあります。今年は豆蔵デベロッパーサイトの記事執筆やレビューの活動も増えたため、例年よりかなり contribution が多くなっています。

技術記事執筆とソフトウェア開発

豆蔵デベロッパーサイトへの投稿はソフトウェア開発とは少し違いますが、技術文書を書いてレビュー、リリースし、アクセス状況を見て次の記事に活かしていくプロセスは似ていますし、デベロッパーサイトの記事では OSS を調べてコードスニペットを書くことが多いのもあって、かなり近いと思っています。

豆蔵オーガニゼーションの OSS

#

mamezou-tech サイトでは OSS のリポジトリがいくつか公開されており、以下の3つの記事で紹介しているものはほとんど筆者の個人開発と言えるものです。

詳細は各記事やリポジトリの README を読んでいただければと思います。setup-helmfile と buildpacks-action はけっこう使われていて、特に setup-helmfile はちょくちょく issue や PR を送ってくれる人がいるので、issue にコメントしたり PR を取り込んでリリースをしたりということをやっています[3]
会社のオーガニゼーションで公開している OSS ということもあり、自分で作業するときも PR を作ってマージしています。

豆蔵オーガニゼーションには豆蔵デベロッパーサイトの記事と連動したリポジトリも作っていて、Electron BrowserView の記事で紹介したサンプルリポジトリなどがあります。

GitHub - mamezou-tech/electron-example-browserview: Example of Electron app that registers and switches between multiple BrowserViews.

ただ、オーガニゼーションにあまり保守しないサンプル的なリポジトリが増えるのもどうかと思って、コードスニペット的なものも含め、個人リポジトリに作るようになりました。

非公式 Scrapbox アプリ

#

個人リポジトリで Scrapbox の非公式デスクトップアプリを Electron で作っています。

GitHub - kondoumh/sbe: An unofficial Scrapbox desktop app

豆蔵デベロッパーサイトにも何度かこのアプリのことを書いています。

リリースサイクルが早くなり breaking changes 対応を迫られる Electron ネタが中心です。最近は対応も落ち着いてたので、独自のスタートページを追加したりしました。

Release v3.1.0 · kondoumh/sbe

このアプリは自分で使い続けていて、ふと思いついた時に機能追加したり、不具合に気づいてバグフィクスしたりしています。大きい変更以外は main に直接コミットしてます。macOS と Windows で動作確認してからリリースしています。Linux 版は正直動作確認してません[4]

けっこう長く保守してますが、自分がよければ満足というスタンスで気楽に続けています。

GitHub の機能で楽をする

#

今年は開発環境CI/CD のカテゴリー中心に GitHub の新機能についてかなりの記事を執筆しました。特に以下の記事で紹介した機能については、個人開発プロジェクトにも取り入れています。

リリースノート自動生成機能はとても便利で、setup-helmfile のように contribute してくれる人がいるプロジェクトでは、OSS のリポジトリっぽくいい感じのリリースノートが作られます。

setup-helmfile のリリースノート

セキュリティスキャンも GitHub がやってくれるのは楽ですし、依存ライブラリの更新も dependabot から PR が来るのでマージすれば OK になり楽になりました。

  • GitHub の新機能の紹介記事を書くために新機能を試す
  • 便利だと思った機能を個人開発に取り入れる
  • 個人開発の作業が楽になる

という、いいサイクルになっていると思います。筆者がメンテナンスしているような小規模なソフトウェアでも、こういった自動化の恩恵は大きいと感じています。

来年の活動に向けて

#

最後に、少し早いですが来年の活動に向けて書いておきます。

今年は既存プロジェクトのメンテナンスリリースをしているだけでしたが、機会があればまた別のソフトウェア開発ができたらと思っています。豆蔵デベロッパーサイトで記事を書くために OSS やプラットフォームを試して咀嚼するというステップを継続的にできているので、それらを活かしたいという気持ちもあります。

フロントエンドでは Vue から React への流れがあるので、個人プロジェクトの技術スタックも見直す必要があると考えています。Deno 連載で触った Deno や Deno Deploy も使っていきたいと思います。


  1. 「豆蔵デベロッパーサイト」ローンチのお知らせ ↩︎

  2. ちなみに private リポジトリへのコミットも表示するオプションです。 ↩︎

  3. setup-helmfile は6月に v1.0になりました。 ↩︎

  4. 最初は VM に Ubuntu 入れて確認したりしてましたが、macOS で VirtualBox がうまく入らなくなったりして環境が作れないのです。 ↩︎

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. 基本から理解するJWTとJWT認証の仕組み (2022-12-08)
  2. Docker+Wasm で WASM をコンテナとして実行する (2023-01-25)
  3. 自然言語処理初心者が「GPT2-japanese」で遊んでみた (2022-07-08)
  4. 直感が理性に大反抗!「モンティ・ホール問題」 (2022-07-04)
  5. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  6. AWS認定資格を12個すべて取得したので勉強したことなどをまとめます (2022-12-12)
  7. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  8. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  9. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  10. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)