今日の学び(2024/04/30)

🗒 今日の学び

Cypressのコードカバレッジを出す方法について調べていくうちに、nycなるものに行き当たったのでどういうことかを調べていた。

zenn.dev

そして肝心のCypressのコードカバレッジはというと、遠回りした挙句本家のドキュメントがあることに気づいた。なんじゃそりゃ…

まあnycやらistanbulやらの知識が増えたのでよしとする。

たまたまazukiazusaさんの記事を知り読んだ。まさにこの課題をプロジェクトに抱えていたため、実験的機能とはいえ入れてみたいお気持ち。

というか、pathpidaとかを入れることになるなら公式がサポートしてくれた方が絶対によい。もとい、裏にはいたりして?ソース読んでみたいお気持ちだけど、時間がないのでそこまではやめておく。

azukiazusa.dev

🐸 ふりかえり

1on1面談で「AWSというかインフラをもっとやってみたいです。6:4か7:3でコードを書いてるよりはインフラ面を触って知識をつけたいです」という話をしたところ、さっそく今のプロジェクトのインフラ周りの話をしていただけてめちゃくちゃ嬉しかった。

あとは前期の評価フィードバックを読んだ。「既存コードへの不備への指摘・対応が的確」「そこそこの速さで作ってるが、ほぼバグがないこと」を非常によく評価していただいていることがわかった。自分としても、「速いかつ品質がいい」ものを出すことにはすごくこだわっている点なので、そこを見ていただけたのはとても嬉しかった。

というより、マネジメントやインフラ周りのタスクをやらず基本コード書いてるだけなのであれば、「速いかつ品質がいい」というのは最低要件だと自分は考えている。過激なことをいえば、これができないのにマネジメントも設計もSRE的な役割もへったくれもないのだ。全ての基本はここに詰まっていて、これができて初めて他のロールやタスクをまともにできるものと考えている。そのために必要なのは何においても「正しくソースを読む力」だと自分は考える。

そういう意味でいうと、5年ほどかかったがようやくその辺りを他人から評価していただけるレベルにまで来たらしい。

それから、本業の実装のなかで初めて木構造を扱う場面に遭遇した。競プロを始めたのが2年ほど前だが、初めて競プロの考え方が有効な場面に出会った。漸化式を作る実装になったが、移植前のコードが無意味な処理を100行くらいでやっていたのを20行そこそこに縮められたため、かなり良い改善ができた自信がある。

🚀 おわりに

学びも多かったが、嬉しいことが多い一日だった。コツコツとやってると、そのうちに結果が出るというのを再確認した日だった。

今日の学び(2024/04/29)

🗒 今日の学び

今日は高校野球を一日見ていたため、あまり進捗がありません。

ただ移動中にヘルシープログラマを読了。

zenn.dev

Software Design5月号を読み始めて気になったこと。

zenn.dev

🐸 ふりかえり

先述の通り野球を見ていた一日でした。今日は広島阪神カードが雨天中止になったため、一日野球を見る予定も流れました。

🚀 おわりに

ぺちこん沖縄のforteeが公開されていますね。

fortee.jp

ぺちこんが毎月あるのは登壇機会が増えるという意味でとてもよいことだと思う反面、若干供給過多かつ登壇者の半分くらいは同じ顔ぶれの人が登壇している気がする。

スタッフ投票で「聞きたい」トークを決めているのでそれ自体には異論はないのですが、「そろそろ内輪感がでるのでは?」というお気持ちがあります。

U30限定とかぺちこんの登壇回数3回以下とか、あまり経験がない人が登壇できるようにして、ベテラン勢はフィードバックに回るみたいなコンセプトの会が出てくると面白いのでは?とも思っていたりします。

そういうコンセプトの会が出てこないのであれば、来年は自分は遠征登壇は多くても年に4回まで。かつPHPは一度だけみたいな縛りで遠征カンファレンスに参加するようにしようかなと考えています。

小さい会&頻繁開催ならいくらでも参加しようと思うんですけどね。

今日の学び(2024/04/28)

🗒 今日の学び

本業がおやすみのため、副業で扱う技術領域の話。NestjsとZod。

zenn.dev

zenn.dev

🐸 ふりかえり

Zodは実装でガンガン書いてるとかなり便利に使える、もとい「よくできている」のがわかる。

ドキュメントを読んで有用なメソッドを発見したり、safeParseの裏側がどうなっているのかをみてみたい。

それから入浴中にふとCypressでカバレッジレポートを取得する方法が気になった。

これは本業でも副業でもやっていないことで、「そういえばどうやって取るんだろう?」となっており明日調べる予定。

過去にCypressのドキュメントを輪読会したことがあるが、カバレッジについては特に書いてなかった記憶がある。

これは調べると本業副業の両方で役立てられそう。

🚀 おわりに

ヘルシープログラマがだいぶ読み進んでいて、半分まではきた。

明日で読み終えられるはず。次はTypeScript関連の書籍を読んでいく予定。

今日の学び(2024/04/27)

🗒 今日の学び

朝の情報収集でTypeScript 5.5でリリースされるType Predicateの新機能を調べていくなかで気になったことの知識が増えました。

zenn.dev

www.typescriptlang.org

TypeScript 5.5でリリースされるType Predicateの新機能と合わせて、今日学んだことはZennの記事として公開する予定です。

🐸 ふりかえり

技術書典の査読も完了し、4月の間ずっとやっていた大きなタスクがようやくはけました。

一方で副業の方の作業が次なるフェイズに入っていきそうです。ワクワクもしますがドキドキもしています。

🚀 おわりに

ずっと手に持っていたタスクがなくなり、ようやく両手が空いた感があります。

なので、明日は久しぶりに読書に使いたいと思います。目標はヘルシープログラマSoftware Design 5月号を読み切ることです。

Software Designに関しては、来週香川へ移動する時間があるのでそこで読めばいいやという考えもあるので気楽にいます。

ので、ヘルシープログラマを読み切ったら今後副業で確実に必要になるCloud Runのキャッチアップに充てる可能性が高いです。

今日の学び(2024/04/26)

🗒 今日の学び

引き続き、バックエンド実装がタスクとして続くスプリントなのでバックエンド系の学びが多め。

zenn.dev

zenn.dev

zenn.dev

副業でやってるNestjsも調べていきたいのですが、なかなか時間がありません。明日やります。

🐸 ふりかえり

PRのレビューが多かった一日なのですが、レビューってどう考えてもGitHubの画面でやるより一旦PR出てるブランチにチェックアウトしてローカルのIDEで確認する方が絶対いろんなことに気づける。

Kotlinのランタイム周りの知識もといJVM周りの周辺知識不足を感じるのでこの辺もおいおい調べていきたい。GitHubにはissueとして起票済み。

🚀 おわりに

3連休は技術書典の査読をします。といっても自分の書籍ではなく、同僚の書籍に対してです。

それからCloud Runのキャッチアップも進めたい。あと、ずっと読めていないSoftware Design5月号を読みます。

今日の学び(2024/04/25)

今日の学び

今日はKotlin系の学びが多かった。

zenn.dev

zenn.dev

明日もバックエンドの実装をするので、Kotlinのアレコレについて気になったら調べていく。

KotlinではないがJVMのヒープメモリについて疑問が生まれているので、これが明日の学びになりそう。

日記

今日の学びシリーズを始めるに当たって、業務用PCからでもメモをかけないか試行錯誤していた。

が、個人アカウントでのGoogleログインが禁止されているため(こちらからは物理的に不可能)、Zennにログインすることができない。よって、Scrapを使えない。

「↑で書いとるやないか」と思われるかもしれないがこれが超絶めんどくさくて、気になったことがあればわざわざ自分のPCを開いてそちらで調べ、メモを残している。

できれば端末は一つだけ操作したいため代わりのサービスを探していたが、

  • インターネットに公開できる場所におけて
  • リンクがリンクカードの形で見られて
  • 画像が簡単に投稿できて
  • ソースコードが見やすく書けて
  • Googleログインが必要ない
  • スレッドの形で追記していくことができる

を全て満たすサービスが見つからなかった。結局、「Googleログインが必要ない」だけ満たしていないZennがベストなところに落ち着いてしまった。

自分で作っても良いのだが、スレッドの形で追記するのとリンクカードの仕組みを作るのに死ぬほど時間がかかりそうだった。

github.com

逆に言えばサービスの空白地帯とも言えるので、いずれ実装してみてもよいかもしれない。

ただ今はそれが目的なわけではないので、素直に諦めることにした。リポジトリは残してあるので、またやりたくなったときにやる。

おわりに

新たな試み一日目にして既にいい手応えがあるので、継続していこう。

追記

さっきの要件。やっぱりnoteにメモ用のアカウントをもう一つ作って、そっちで書いていってもいいのかもしれない。

  • ソースコードが見やすく書けて
  • スレッドの形で追記していくことができる

に課題は残るけれども、調べたことに対してソースコードを書く場合はそこまで多くないし、スレッドの形で追記できなくともまた新規のnoteを作れば良い話な気がする。

で、タグとマガジンを作っておけば後から探すのにも苦労しないな。これでやってみようか。

疑問は都度調べて解決する意識を身につけるために、出来るだけ毎日「今日の学び」ブログを書こうと思う

きっかけはこれ。

speakerdeck.com

新卒でソフトウェアエンジニアになってから、日々実装やそれ以外のタスクに追われてきた。

新人の頃は空っぽだったので、ただ仕事をこなすのに精一杯だった。精一杯であるが故に「これ、なんとなくしかわかってないな…」ということを、逐一突き詰めている暇がなかった。

新人の頃は空っぽゆえ、ただ仕事をこなしていくだけでもいろんな経験が蓄積されてきた。

おかげで今では見積もりよりもある程度の余裕を持ってタスクを終えられるようになってきた。

にもかかわらず、これまでの「少し調べてわからなければ後回し」という行動が悪い習慣として身についてしまっているのでは?🤔と思うようになった。

これまでよりも余裕を持って仕事を終わらせられるのであれば、もう少し丁寧に、仕事の最中で学びを得られるのではないか…と。

そのことを自覚してからここ最近を振り返ってみた。すると、「そういえば、あれわからんなと思ったまま後回しにしてるな…」ということに気がついた。

この「後回し」、めちゃくちゃ悪い習慣なんじゃ?と認識を改めた。新卒1~3年目くらいで「ただ与えられた仕事を求めらる最低限のクオリティでこなすのに精一杯」であれば仕方なかったかもしれない。けど、長い目で見たらきちんと解決した方がよいに決まっている。ずっとそうしてきた人と、そうでない人では塵も積もって差がでるんじゃないかと思う。

一応、これまでもじぶんリリースノートという名の月報を書いてはきた。

note.com

けれど、月報では振り返るだけだと期間が空いてしまう。「鉄は熱いうちに打て」とはよく言ったもので、わからないことはその場ですぐ調べて解決した方がよいのだ。新卒の頃はそれに非常に時間がかかってしまっていたが、ある程度レベルが上がった今なら一読すれば大体のことはわかる。

よって、もう少し粒度を細かくする必要があるなと。Plan→Do→...とフィードバックのサイクルを早く回さなければならない。日々の中で、疑問→解決に向けたアクション→ふりかえり→アウトプットのサイクルを回すべきだと思い始めた。

…というわけで、今日から出来るだけ毎日「今日学んだこと」を少しでもいいのでブログに書いていこうと思う。

これはソフトウェアエンジニアリングに限らない。経済でも歴史でも、なんでも疑問に思ったことを調べ、アウトプットする試みとしていく。

そんなわけで、読んでくださった方は温かい目で見守ってください。半年くらい続いたら実践してみた記事を書こうかと思う。