今年の振り返り

外出やイベント事がないと一年があっという間&思い出もないですね。
来年の今頃はマスクをせずに過ごせているといいのですが…。

OSS 関連

2017 年頃から携わっていた Nuxt.js の翻訳、「nuxt/docs から nuxt/nuxtjs.org へリポジトリの移行」という区切りがついた春頃にメンテナから外れることにしました。
最初はいち翻訳者として、途中からはメンテナとしてレビューや翻訳、翻訳するための改善活動に携わり業務では味わえない経験ができました。
少しは誰かの役に立てていたり、Nuxt.js の翻訳を盛り上げたりできていたら嬉しいです。
コントリビュートしてくださった方々、そしてメンテナにならないか声をかけてくださった井上さんにはとても感謝しています。ありがとうございました。

いち Nuxter として今後も何かしら貢献できたらと思っています。

nuxt/docs nuxt/nuxtjs.org

nuxt/docs では 3番目のコントリビュータ、nuxt/nuxtjs.org では5番目のコントリビュータになれたのは嬉しかった)

勉強していたこと

3月の記事に書いていますが、年始は Golang を書いていました。
簡単な内容ですが Golang でアプリケーションを作り形にできたのは良かったと思います。
初夏あたりは The Rust Programming Language写経していました。
変数がデフォルトでイミュータブルなのはとてもいい&Box が素晴らしいですね。
まだよく分かってないところが多いので来年何か作りながら理解を深めていこうと思っています。
他にはこのブログのソースを公開できるようにしたいと思い Eleventy でフルスクラッチで作り直していました。大枠の実装ができたところで満足してしまい今に至っています。。
秋頃は部署異動した関係でキャッチアップや業務に関係することを中心に取り組んでいました。Java や Kotlin を書いています。来年はよりモダン化を進めていきたいところ。

技術的なこと以外だと、チームビルディングについて思うところがあり恐れのない組織という書籍を読んでいました。自分の過去の出来事と照らし合わせて「あの時はこうだったのかな」など考えながら読み進めることができました。
建設的に話し合える雰囲気を醸成するにはどうしたらいいか、は働く上で常に課題ですね。
解が決まっているものではないので難しいですが、この本を読んだことでこれまでより少し状況を俯瞰して見れるようになった気がします。

今年は業務で扱っていない技術も触る機会を作れた一年でした。
来年も楽しく開発ができますように。

JibでDockerイメージビルド時にエントリポイントを設定する

今従事しているプロジェクトでは Jib が使われており、ビルド時にエントリポイントするにはどうしたらいいかを調べたので備忘録として残します。
(Kotlin を使ったアプリケーションで jib-gradle-plugin を使っています)

結論のみ述べると container で entrypoint を設定し、extraDirectories でパーミッションの変更を行います。
ただ一点注意が必要で、Jib のデフォルトのイメージは distroless/java なので shell を実行したい場合はイメージを変える必要があります

1
2
3
4
5
6
7
8
9
10
jib {
container {
entrypoint = ['docker/entrypoint.sh']
}
extraDirectories {
permissions = [
'/docker/entrypoint.sh': '755'
]
}
}

手軽にDocker イメージを作るのに Jib は便利ですが、USE_CURRENT_TIMESTAMP をつけないと昭和なイメージになるなどちゃんとドキュメントを読み込まないとハマる点が多いと感じました

Ref

アウトプットしないのは知的な便秘

1月に開催された ssmonline#6 のテポさんの発表「アウトプットしないのは知的な便秘」に刺激を受けての更新です。
更新できませんでした、みたいな内容の更新は嫌だと思っていたら2年経っていました…

最近個人的に勉強しているもの

最近は Golang と Kotlin を勉強しています。

Golang

Golang はチームメンバーと Golang 書けるようになりたいね、という話になり勉強会を開くことになったことがきっかけです。
せっかくなら実用的なものにしたいと、既存プロダクトの API を Golang で作り替えることを目的に週に1回30分~1時間程度とりくんでいました。
API 1本完成したくらいでその勉強会は終わってしまったのですが、その後は個人で機会を見つけて書くようにしています。

年末年始は learn-go-with-tests写経していました。
「TDD、なんとなく知ってはいるけれど実践したことはない」という状態だったので TDD と Golang が両方学べるとてもありがたいレポジトリでした。
社内で Golang 勉強していると聞いたらこちらのレポジトリをおすすめしています。

最近だと、新しいプロジェクトが始まり実装タスクごとに Github 上に issue を立てる必要があったので issue を作るアプリケーションを Golang で書いてみました。
今は JSON で指定された内容から issue を作る機能しかないので、追々拡張していけたらいいなと考えています。

Kotlin

Kotlin は上述の新しいプロジェクトで使われている言語なのでキャッチアップも兼ねて勉強しています。
(昔、勉強がてら書いた覚えがあったのでレポジトリを探したら2年前でした。早いなぁ…)

Java と違ってメソッドを変数みたいに書けるのは面白いなぁと思います。

1
2
3
public String hello() {
return "Hello Java";
}
1
fun hello() :String = "Hello Kotlin"

さいごに

アウトプットしないのは知的な便秘 は私にとって身が引き締まるいい言葉でした。
前ほどではなくても何かアウトプットしていきたいと思います。

来週は Java 16 リリースですね