タグ

ブックマーク / bufferings.hatenablog.com (48)

  • 脳に収まるコードの書き方を読んだ。面白かった。 - Mitsuyuki.Shiiba

    いただきましたー!わーい。脳に収めるぞー! @haradakiro @ryuzee pic.twitter.com/3Qd6EvPioU— SHIIBA Mitsuyuki (@bufferings) June 13, 2024 明日(2024年6月18日)発売! www.oreilly.co.jp どう書くのがいいんだろうなぁ? 複雑なコードと向き合うときは「あー、これはメモを取りながら読まないと迷子になるやつだ」ってなる。最初はわりとキレイに作られていたとしても、機能追加を重ねていくとだんだん読めなくなっていく。 だから「時間が経っても読みやすいコードってどう書くのがいいんだろうなぁ?何かヒントがあるかなぁ?」って思いながらこのを開いた。先に書いておくと、ヒントはあった。 アウトサイドインのTDD 全然予想してなかったから、おー!と思ったのが、説明をTDDで進めていくってところ。好き

    脳に収まるコードの書き方を読んだ。面白かった。 - Mitsuyuki.Shiiba
  • エンジニアからマネージャになったときにあるだろうなぁってことを想像して遊ぶ - Mitsuyuki.Shiiba

    ソフトウェアエンジニアの話ね。想像して遊んでるだけね。 スキルは高い まず、マネージャになってほしいって言われる時点で「仕事を任せられる」というエンジニアなんだろうな。それは、つまりコードを書くことに加えて、プロダクトをなんとかしてリリースする力と責任感をもっていて、それが会社にとってプラスになっている。 だから、チームを任せて同じようなエンジニアを育てて欲しいと期待されている。自分自身も、自分のスキルをもっと会社の役に立てるぞー!とやる気になっている。 任せたい そういう人がマネージャになって、あるだろうなぁと思うのは「どう任せたらいいんだろう?」という悩み。 自分が手を動かせばプロジェクトがなんとかなるのは分かっている。でも、自分はマネージャの仕事があるし、そこは自分の役割ではないし、実際のところ手を動かす時間なんてない。それはメンバーにやってもらわないといけない。 ただ、だいたいの場

    エンジニアからマネージャになったときにあるだろうなぁってことを想像して遊ぶ - Mitsuyuki.Shiiba
  • git-replay を最低限の使い方で触ってみた - Mitsuyuki.Shiiba

    git-replay というコマンドが追加されたみたいなので触ってみた。とは言っても、自分はあんまり凝ったことはやらないので、細かいところまでは踏み込まずに最低限の使い方ができたらいいなってくらいの気持ちで触った。 github.blog この記事には、こんな風に書いてある↓ git replay exists to address these challenges. It offers an alternative to git rebase that, in addition to being far more performant: Can operate in bare repositories. Can rebase branches other than the currently checked-out one (in non-bare repositories). Can

    git-replay を最低限の使い方で触ってみた - Mitsuyuki.Shiiba
  • GitHubのMerge Queueとは何か?それと、認識しておきたいこと - Mitsuyuki.Shiiba

    同僚に「GitHubのMerge Queueってあんまり知らないんだけど、どう思う?」って聞かれて「あー。僕もあれよく分かってないんだよね」って返事をして、ちょうどいい機会なので見てみた 見てみた感想としては、いくつか気をつけておきたい点があるけど、チームの開発の進め方にうまくはまれば便利な機能だな、という感じ(なんでもそうか・・・) Merge Queueって? 2023年の7月にGAになったGitHubの機能 プルリクエストをマージするときに「マージ先のブランチ(ベースブランチ)の最新の変更を取り込んでからChecks(つまりCI)を実行して、それが成功したらマージしといて!」ってお願いできる便利機能。名前のとおりQueueになっているので複数のプルリクエストからenqueueできて前から順番に処理してくれる そうは言われても最初に説明を見た僕は「???」状態だった。「なんでこんな機能

    GitHubのMerge Queueとは何か?それと、認識しておきたいこと - Mitsuyuki.Shiiba
  • DDDの実装にはあまり興味がなくなっている - Mitsuyuki.Shiiba

    以前は、DDDでどう実装したらいいかなぁって考えてたんだけど、最近は、そういうことへの興味があまりなくなっている。エンティティや値オブジェクト、集約やリポジトリなど、そのあたりにあまり興味がない。ヘキサゴナルアーキテクチャなども、そんなに考えなくなった。 TypeScriptを使うことが多いので、型でしっかり守るとかカプセル化するとか、そのあたりがどっちでもいっかという気持ちになっていることが影響してるとは思う。TypeScriptでクラスを使おうとはあまり思わないし。BrandedTypeみたいなのを使ってまで型で守ろうとは思わない。 じゃあ何に興味があるんだっけ?って考えてみると、トランザクション境界とユビキタス言語かな。 トランザクション境界 トランザクションの境界を作って、DBRDBMS)を小さく保ちたいと思っている。DBが大きくなると、すぐに複雑になっていく感じがする。 だから

    DDDの実装にはあまり興味がなくなっている - Mitsuyuki.Shiiba
  • こんなエンジニアリングマネージャだから仕事がしやすいんだなぁと思う10個のこと - Mitsuyuki.Shiiba

    最近、毎日のようにEMのいくおさん( @dora_e_m )とTwitterXでわちゃわちゃしてる。彼のポストを見ていると、ガンプラをつくるかビールを飲むかしかしていないように見えるが、それで合っている。 という冗談はおいといて真面目な話をすると、エンジニアとしての僕は彼と仕事ができている今の時間のことを当に貴重な時間だと思っている。とにかく仕事がしやすいし、いろいろな気づきを与えてくれるおかげで、自分自身の成長も感じている。 エンジニアリングマネージャとしての知識が豊富でスキルが高いというのはもちろん、人との接し方や日常的なふるまいもとても尊敬できるものなのだ。 そこで今日は、僕が彼とこの3ヶ月間仕事をしていて、やりやすい・尊敬していると感じていることの中から10個だけ簡単に紹介しようと思う。僕からいくおさんへの日頃の感謝の気持ちをあらためて書いておこうと思っただけとも言う(ふだんから

    こんなエンジニアリングマネージャだから仕事がしやすいんだなぁと思う10個のこと - Mitsuyuki.Shiiba
  • お願いしなくても毎日その場がやってくる良さ - Mitsuyuki.Shiiba

    軽くリファインメントをする時間 いまのチームでは、デイリースクラムのあとに毎日15分だけ、軽くリファインメントをする時間をとっている。目の前のスプリントのタスクのことをいったん忘れて、次のスプリントやもう少し先のことについてチームで相談する時間。 そこでは、PdM(プロダクトマネージャ)が「こういうこと考えてるんだけどどう思う?」って話をしてくれたり、エンジニアが「このあたり早めに改善しておきたいんだよねぇ」って話をしたりしている。 こういう軽い相談の場とは別に、もっと深く議論したいと思ったり、要件がかっちりと決まってきたりしたら、別途時間をとって、軽くないリファインメントでしっかりと相談している。 軽いリファインメントが結構好き 僕はこの日次の軽いリファインメントが好き。自分の「技術的な部分の改善をしたい」という考えをふわっとしてる段階で聞いてもらえるし、PdMがプロダクトの機能追加や改

    お願いしなくても毎日その場がやってくる良さ - Mitsuyuki.Shiiba
  • 40歳を過ぎてもソフトウェアエンジニアを続けてるって話 - Mitsuyuki.Shiiba

    昨日、ゆのんさん( https://twitter.com/yunon_phys )が社内の勉強会で「エンジニアリングマネージャとは?」って話をしてくれて、面白いなぁって思いながら聞いてた。 今日は @yunon_phys が社内勉強会で、エンジニアリングマネージャについてお話をしてくれてとてもよかった。こんな話が社内で聞けるのって福利厚生だなぁと思いながら聞いてた。— SHIIBA Mitsuyuki (@bufferings) October 13, 2023 その中で「エンジニアリングマネージャが見ることのできる範囲はめちゃ広いから、すべてを完璧にしようとするんじゃなくて、その場に応じてスキマを埋めるような動きができるといい。組織の成長とともにその動きも変わっていく」ってことを言っていて、これって自分のソフトウェアエンジニアとしての動きにも似たところがあるなぁと思ったので雑にメモ。

    40歳を過ぎてもソフトウェアエンジニアを続けてるって話 - Mitsuyuki.Shiiba
  • 開発チーム間の情報を遠回りさせてる - Mitsuyuki.Shiiba

    いまの会社では、エンジニアどうしの距離が近いので、他のチームのエンジニアと一緒に開発に取り組んでたりする。 のだけど僕からは 「この部分はディレクター(社内でスクラムマスター的なロール)さんから、あのチームのディレクターさんに共有してもらってもいいですか?」 って自分のチームのディレクターにお願いしたり 「この部分はプロダクトマネージャ(社内のプロダクトオーナー的なロール)さんから、他のチームに確認してもらってもいいですか?」 ってプロダクトマネージャにお願いしたりしてる。エンジニアどうしで話をして、お互いに状況を理解しているのに、公式なルートとしては、情報を遠回りさせているのだ。 そんなお願いをすると、一瞬(え?エンジニアどうしで話して認識合ってるのに?)って反応をされるし、僕自身も(大企業っぽいかなぁ?)って思ったりするのだけど、自分の気持ちを説明すると「たしかにそうね。おっけー!やっ

    開発チーム間の情報を遠回りさせてる - Mitsuyuki.Shiiba
  • 何年も前に書かれたソースコードを読むときの頭の中 - Mitsuyuki.Shiiba

    コードを書く仕事をしてると、読むことも多い。読んでる時間のほうが多いかもしれない。いま書かれてるコードを読むことも、もちろん多いし、何年も前に書かれたコードを読む機会も割とよくある。 コードを読むと、そのコードを書いた人の考えや、そのときの状況が感じられて、おもしろい。特に、何年も前に書かれたコードを読むときは、コーヒーを片手に(そのときはこんな感じだったんだろうなぁ)って想像しながら読んで楽しい。 ふと、どういうコードから、自分がどういうことを想像するのかを書いてみようと思った。 前提 今、目の前で書かれているコードを読んでレビューしてるときの話じゃなくて、何年も前に書かれたコードを読むときの話をしようと思う。だから、そのコードが良いとか良くないとか、こうするべき「だった」とかは考えない。今後の自分がどう書きたいかなぁ?くらい。 また、そのコードを書いた人が良いとか良くないとかでもない。

    何年も前に書かれたソースコードを読むときの頭の中 - Mitsuyuki.Shiiba
  • Gitのコミットメッセージは適当に書いてる - Mitsuyuki.Shiiba

    「Gitのコミットメッセージをしっかり書こう」という記事を読んで、いい話だなーと思う一方で、うちのチームはちょっと前に「コミットメッセージは適当でいこう」って決めたなーって思った。 Gitのコミットメッセージをしっかり書こうという話【備忘録的共有】 | SIOS Tech. Lab しっかり書くのを否定するわけでは全然ない。しっかり書くのはしっかり書くのでいいなって思う。どっちがいいかはチームやプロダクトによるので、チームがいいと思う方を選べばいいかなと。 僕もしっかり書くほうがいいなって思うときもあるのだけど、今のチームでは適当のほうがいいなってだけ。 しっかり書きたいとき 僕が、コミットメッセージをしっかり書きたいときはどういうときだろう?って考えると、OSSにプルリクエストを出すときかなぁ。自分は特にOSSの何かを作ってるわけじゃないけど、自分で何かのOSSを作るならある程度ちゃんと

    Gitのコミットメッセージは適当に書いてる - Mitsuyuki.Shiiba
  • macOS版の1PasswordでSSHキーの管理が便利になってた - Mitsuyuki.Shiiba

    GitHubの鍵を1Password管理に ちょっと前に、azuさんの記事を読んでSSHの鍵を1Password管理にするのいいなと思ったので efcl.info GitHubのAuthとSigningの鍵を1Password管理にしておいた。 GitHubの鍵を1Password管理にしといた。簡単だった。よいー。https://t.co/Vo2OA230V5— Mitz Shiiba (@bufferings) March 25, 2023 azuさんの記事だと、SSHの鍵以外も色々やってるんだけど、そのへんはまたの機会に。 便利 GitHubにアクセスするときに、macOSのTouch IDを使って指紋で認証するだけでよくて便利。しばらくは有効なので、毎回認証が必要なわけじゃないのも便利。 なんだけど、tmuxで新しいペインとかウィンドウを開くたびに聞かれてしまうのか、有効期限が短い

    macOS版の1PasswordでSSHキーの管理が便利になってた - Mitsuyuki.Shiiba
  • pnpm はパッケージをどんな風にストアに保存してるんだろう? - Mitsuyuki.Shiiba

    pnpm を触り始めた ちょっと前に npm のことを勉強したときに、ゆうくさんに pnpm のことを教えてもらって気になってたので、触り始めた。 bufferings.hatenablog.com pnpm はパッケージをグローバルストアに保存して、各プロジェクトの node_modules ではハードリンクを使用する。だから、ファイルをコピーしなくていいので容量もくわないし、インストールのスピードも速いのか。へー!便利。 ハードリンクを使用するので、プロジェクトとストアが同じディスクにないといけないことを頭の片隅に入れておこうかなってくらい。 ストアの中身 そのグローバルストアのデフォルトの場所は、macOS だと ~/Library/pnpm/store/v3。どんな風に保存されてるんだろう?と思ってのぞいてみたら、こんな感じになってた。途中で切ってるけど2文字のフォルダがたくさんあ

    pnpm はパッケージをどんな風にストアに保存してるんだろう? - Mitsuyuki.Shiiba
  • 明日から、仕事するー! - Mitsuyuki.Shiiba

    昨日、4月1日に株式会社カケハシへ入社した。 株式会社カケハシに入社しました - Mitsuyuki.Shiiba 明日から仕事が始まるので、ひとつの区切りとして、この3ヶ月半をふりかえっておこうと思う。ちょっと長くなっちゃった。 前職を退職 ウェブアプリケーションエンジニアとして転職活動をしますー! - Mitsuyuki.Shiiba 12月15日付けで前職を退職することになったため、ブログを書いて「転職活動します!」とツイッターにポスト。ありがたいことにたくさんの方が声をかけてくれたり、応援してるよって言ってくれたりして嬉しかった。 外資への応募も少し考えてたけど、こんなに声をかけてくれたので、その中で探すことにした。レイオフじゃないと、こういう形で転職活動をすることもないから、いい経験だなと思いつつ。 カジュアル面談 12月から1月にかけて77社にお声がけいただき、42社とカジュア

    明日から、仕事するー! - Mitsuyuki.Shiiba
  • 「Jestではじめるテスト入門」を書きましたー #Jest本 - Mitsuyuki.Shiiba

    Jestではじめるテスト入門 日「Jestではじめるテスト入門」がついに発売されました 🎉🎉🎉 peaks.cc CircleCI時代の同僚の伊藤さん @ganezasan が「Jestの自動テストの執筆を手伝ってくれませんか?」と声をかけてくれて「これからテストを書きたいって人に向けたJestの入門書を書きたいんですよ!!」って熱く語ってくれて「いいなぁ」と思ったので参加しました。を書くなんて初めてのことなので、自分なんかに書けるかなぁとドキドキしてたのですが、周りの方々の助けのおかげで、なんとか書き上げることができました。 そして、監修はなんと和田さん @t_wada です。自分が自動テストについて書いた文章を、和田さんに監修していただけるなんて、それだけでとても幸せだなぁと思っていたのですが、「むちゃくちゃ面白かったです!」って言ってもらえたので、もう出版しなくても満足し

    「Jestではじめるテスト入門」を書きましたー #Jest本 - Mitsuyuki.Shiiba
  • npm installとnpm ciの動作確認を簡単にやっておいた - Mitsuyuki.Shiiba

    先週、npm installとnpm ciについて調べて考えたことを書いたのだけど、ドキュメントを読んで、頭の中で考えたことをまとめただけなので、これだけだとちょっと気持ち悪いなと思って。簡単ではあるけど実際の動作を確認することにした。 bufferings.hatenablog.com 結果 だいたい想像どおりだった。今回のサンプルプロジェクトで実験した結果は次のとおり。 (1)と(2)は、キャッシュがない場合のnpm ciとnpm installの速さ。想像では「npm ciの方が多少速いのかな?」と考えていたけどほぼ同じだった。node_modulesがない状態から始まるので、npm ciはnpm_modulesを削除する必要がない。一方で、npm installも既存のnode_modulesをチェックする必要がなくて、package.jsonとpackage-lock.jsonの

    npm installとnpm ciの動作確認を簡単にやっておいた - Mitsuyuki.Shiiba
  • npm install と npm ci って結局どう使うの?2023年版 - Mitsuyuki.Shiiba

    うりうりさんの↓のコメントを見て、そういえばnpm ciって見たことあるけどチェックしてないなぁ。というかnpm installも雰囲気で使ってるなぁ。と思ったので、うりうりさんに教えてもらったことを手がかりに、npm installとnpm ciについて調べた。 これ、node_modulesキャッシュしてたり npm install使ってるけど npmのグローバルキャッシュ(~/.npm)をキャッシュした上で npm ciで早くなったりしないんだろうか GitHub Actions上でテストを約3倍早くした話https://t.co/MpmFktGBxU— wreulicke (@wreulicke) March 14, 2023 ちょこっと検索して見てみたところ、新旧情報があって自分が混乱したのと、公式ドキュメントには概要は書かれているものの詳しい内容は書かれていないので(僕が見つけ

    npm install と npm ci って結局どう使うの?2023年版 - Mitsuyuki.Shiiba
  • ある程度いいエンジニアでありたいかもしれない - Mitsuyuki.Shiiba

    ふとしたときに、ぼーっと考える 会社(や評価をする人)は何をもって「このソフトウェアエンジニアはいい」って判断するのがいいんだろうなぁって。むずかしくない?入社前じゃなくて、入社した後のこと。自社ウェブサービスを開発しているソフトウェアエンジニアのこと 特に伝えたいことも答えもなくて頭の中のメモ 分かりやすいならいい その人の開発したものが、バグだらけだとか、そもそも設計ができないとか、そういうのだと分かりやすいからいい。まずは、バグを減らそうねとか、設計ができるようになっていこうね、という話 あと、やってることが周りから見えないとか、コメントとかが攻撃的で一緒に働いてる人が嫌な気持ちになるとか、まぁ、そういうのも「違うよね?」って言えるし、コンピテンシー評価で伝えていけたらよさそう ある程度のモノができている場合は、どうだろう? もっと早く作ってほしかった! って考えるかもしれない。確か

    ある程度いいエンジニアでありたいかもしれない - Mitsuyuki.Shiiba
  • アジャイルと通過点とベクトル - Mitsuyuki.Shiiba

    昨日と比べて今日一歩前進してる? もう10年以上前になるけど、計画とリソース効率を重視していた大きな組織の中で、より良いサービスづくりをしたいと、アジャイルなプラクティスやスクラムを取り入れてやり方を変えたことがある それは、うえから「アジャイルな開発をするように」とふってきたトップダウンな指示ではなくて、自分がそういうものづくりをしたいなと思ったというボトムアップな始まり(幸運なことに、少し進めていたところでトップダウンでも話が出てきたので、ボトムアップとトップダウンの両方から取り組むことになってとても良かった) そのボトムアップな改善のときに考えていたのは、その瞬間にやっていることが理想的かどうかというスナップショットじゃなくて、昨日と比べて今日一歩前進してるかというベクトルだったなと思う。まぁ、あんまり深く考えるタイプじゃないので、結果的にそうだったという側面が大きいかもしれない 計

    アジャイルと通過点とベクトル - Mitsuyuki.Shiiba
  • ウェブアプリケーションエンジニアとして転職活動をしますー! - Mitsuyuki.Shiiba

    しばらくしたら次のことを考えたいなと思ってるので、よい仕事や空いてるポジションがあったら教えてください!— Mitz Shiiba@フルスタックエンジニア (@bufferings) December 8, 2022 突然ですが CircleCI を辞めることになりました。そのことについてあまり話すつもりはないのですが、今の気持ちだけ書いておくと、びっくりはしたけど特にネガティブな感情はなく、面白い経験だなぁという気持ちです。 この一年間、色々とあまりできない体験をしてきた締めくくりにピッタリです。この状況を受け入れて、流れに身をまかせて楽しもうと思います。 ということで、こんな機会はあまりないので、次をどうするか、折角だから色々な会社のお話を聞いてから考えたいなぁと思ってつぶやいたら、たくさんのご連絡をいただき、とても嬉しく思っています。ひとつひとつのお誘いや励ましが、とてもありがたいで

    ウェブアプリケーションエンジニアとして転職活動をしますー! - Mitsuyuki.Shiiba