タグ

ブックマーク / blog.shibayu36.org (14)

  • サービス開発の施策に納得できない時にエンジニアができるアクション - $shibayu36->blog;

    サービスの開発をしていてPMから施策案が出てきた時、ソフトウェアエンジニアとして施策案が当にユーザーのためになりサービスの成長につながるか納得できないことがある。 このような時にただ文句や愚痴を言っても何も始まらない。エンジニアからも何らかのアクションを起こし施策を前に進める必要がある。 そこでエンジニアができるアクションについて、自分が思っていることを書いてみる。 納得できないケースは大まかにどのようなものがあるか 納得できないケースでは大まかに2つのケースがあるのかなと思っている。 (1) 施策をしたい目的や仮説自体に納得できていない (2) 施策の目的や仮説は良いが、それを達成する手段に納得できていない 1つ目は、たとえば「ターゲットとしているようなユーザーって当にいるか?」「ユーザーにこういう課題があると言っているが当にそういう課題があるか?」「この指標に繋がると言っているが

    サービス開発の施策に納得できない時にエンジニアができるアクション - $shibayu36->blog;
    Cetus
    Cetus 2024/08/08
  • 価値が出るポイントまで一気に進めてから次のタスクに取り組む - $shibayu36->blog;

    以前同僚から、いくつかのプロジェクトやタスクを持っているときにどう進めると良いかという質問を受けた。僕はその時、価値が出るポイントまで一気に進めてから次のタスクに取り組むようにしていると答えた。この話についてブログに言語化してみる。 良くない進め方の一例 たとえばプロジェクトA(自分の担当分工数10日)、プロジェクトB(自分の担当分工数20日)で、合計30日分のタスクを持っているとする。この時良くない進め方は、両方ともを完全に並列に少しずつ行って、30日後に終わるということだ。1 このやり方だと30日後にならないとプロジェクトAもBも結果が出ない。もしプロジェクトAのみに集中して終わらせれば少なくともプロジェクトAの結果は10日後に出るのに関わらずである。 このやり方がまずいのは当たり前に見えるのだが、気をつけないとやってしまいがちである。なぜなら少しずつ進めれば、他の関係メンバーに「自分

    価値が出るポイントまで一気に進めてから次のタスクに取り組む - $shibayu36->blog;
    Cetus
    Cetus 2024/07/25
  • 本の内容が頭に入ってくるのは結局は知見まとめノートを作っている時 - $shibayu36->blog;

    最近は読書のやり方を変えてみたら知識の吸収速度・引き出し速度が上がった話 - $shibayu36->blog;に書いているやり方で読書をしている。こういう流れだ。 (1)学びたいと思った知識が書いてありそうなを2~5冊選ぶ (2)1冊ずつざっくり読みながら、面白かった部分・気になった部分はKindleで黄色にハイライトしておく (3)全冊読み終わったら、ハイライトした部分だけ眺めて、やっぱりおもしろいと思ったところは赤のハイライトを付け直す (4)赤のハイライトを眺めて、読書ノートに転記する (5)とくにおもしろい部分については、自分の知見まとめノートにカテゴリごとに整理する しばらくこれを続けて感じたのは、結局のところ(4)〜(5)に至るまで書籍の内容が全然頭に入っていないということだ。(4)(5)の時に、はじめて「書いている内容が言いたかったのはこういうことだったのか」と頭が急に理

    本の内容が頭に入ってくるのは結局は知見まとめノートを作っている時 - $shibayu36->blog;
    Cetus
    Cetus 2024/02/19
  • 優れたテストスイートの4本の柱を学ぶ - 「単体テストの考え方、使い方」を読んだ - $shibayu36->blog;

    良いテストケースの作成手法を学ぶ - 「はじめて学ぶソフトウェアのテスト技法」を読んだ - $shibayu36->blog;に引き続き、ソフトウェアテストの知識について言語化を進めたいと考え、「単体テストの考え方、使い方」を読んだ。 単体テストの考え方/使い方 作者:Vladimir Khorikovマイナビ出版Amazon このでは優れたテストスイートの4の柱を「退行に対する保護」「リファクタリングへの耐性」「迅速なフィードバック」「保守しやすさ」と定義し、これらの観点で優れたテストスイートを作る方法について教えてくれる。またこの4つの柱はトレードオフの関係にあるため、単体テスト・統合テスト・E2Eテストがそれぞれどの観点を重視すべきかなどについても言語化してくれている。 自分はこのは非常に勉強になった。なぜなら単体テスト・統合テストの指針が明快に記述されていて理解しやすく、また

    優れたテストスイートの4本の柱を学ぶ - 「単体テストの考え方、使い方」を読んだ - $shibayu36->blog;
    Cetus
    Cetus 2023/08/15
  • MySQL即効クエリチューニング読んだ - $shibayu36->blog;

    MySQL即効クエリチューニング ThinkIT Books 作者:yoku0825インプレスAmazon 最近クエリチューニングの仕事があったので、少し深めに知ろうと読んだ。 MySQLの内部構造がどうなっているかは置いておいて、どうすればクエリの問題を把握できるかが素早く知れる良いだった。90ページくらいですぐ読めるのも良い。個人的にはHandler_%変数を使った調査、innotopによる状況可視化、sys.innodb_lock_waitsによるロック状況の可視化あたりが非常に参考になった。 ちなみにさらに内部構造に踏み込んで理解しようとするなら、以下の記事がおすすめ。 雑なMySQLパフォーマンスチューニング MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ Rails Developers Meetup 2018 で

    MySQL即効クエリチューニング読んだ - $shibayu36->blog;
    Cetus
    Cetus 2023/07/20
  • MySQLでNested Loopなクエリはインデックスをどう辿っているか - $shibayu36->blog;

    タイムライン的なものをSELECTだけで実装しようと思った時に、Nested LoopなクエリでUsing temporary; Using filesortが出るようなそこそこ遅いクエリになる。その時にMySQLがインデックスをどう辿っているかを知りたかったので調べてみた。MySQLバージョンは8.0.33。 あまり自信はないので、もし間違った話をしていたら教えて欲しい。 どのようなクエリを検証するか タイムラインの取得ができるような、ユーザー・フォロー関係・投稿の3つのテーブルを作る。スキーマは次の通り。 CREATE TABLE users ( id INTEGER PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); CREATE TABLE follows ( id INTEGER PRIMARY KEY AUTO_I

    MySQLでNested Loopなクエリはインデックスをどう辿っているか - $shibayu36->blog;
    Cetus
    Cetus 2023/07/19
  • クラスター株式会社に入社しました - $shibayu36->blog;

    2023/07/01よりクラスター株式会社に入社しました。 corp.cluster.mu 今回もいくつかオファーをもらったが、次の理由からクラスター株式会社へ決めた。 とにかくクリエイターを応援したい 社内にもクリエイター気質の人が多そうだ リアルタイム通信サーバーなど、裏側のシステムにワクワクする VR自体が子供の教育を改善しうる とにかくクリエイターを応援したい 転職活動の際にいろんな転職軸を言語化していたのだが、結局のところ自分がどうしても貢献したいプロダクトでなければモチベーションを保てないと感じた。もう一度これまでの仕事を振り返った時、自分は「漫画家・小説家・ブロガーなどのクリエイターが、自分の作ったプロダクトによって報われた時」に非常に嬉しく感じる1ことに気づいた。 クラスター株式会社は現在clusterというメタバースプラットフォームを作っているが、単純にメタバースプラット

    クラスター株式会社に入社しました - $shibayu36->blog;
    Cetus
    Cetus 2023/07/03
  • あるレポジトリのサブディレクトリ配下を別のレポジトリへ履歴付きで移行する - $shibayu36->blog;

    Gitで開発していて、あるサブディレクトリ以下を別のレポジトリに移行したいと思うことがある。今回はそういうことをしてみたのでメモ。 まずGitHubにそのようなやり方の指南がある(Splitting a subfolder out into a new repository - GitHub Docs)。大体これで良いのだけれど、このやり方だとサブディレクトリのpathがそのままになってしまうという問題がある。大抵のケースで、あるサブディレクトリを別のレポジトリに分割したいとなった時、そのサブディレクトリがレポジトリルートに来てほしい。 そういう場合はGit Filter Repo — Splitting a Subfolder Into A New Repository | by Edward Ezekiel | Mediumにも紹介されているようにgit filter-repo --s

    あるレポジトリのサブディレクトリ配下を別のレポジトリへ履歴付きで移行する - $shibayu36->blog;
    Cetus
    Cetus 2023/06/28
  • CLIツールを作るとき、ユーザー設定ファイルやデータをどこに配置するか - $shibayu36->blog;

    chat-hatenablogをpip installでインストール可能にした - $shibayu36->blog;にてchat-hatenablogをpip installできるようにするとき、ユーザー設定ファイルやデータをどこに配置するかに迷った。このツールでは、環境変数の設定として.envファイルを、ブログデータのインデックスとしてindex.pickleファイルを使っている。 これらのファイルの置き場所について少しだけ調べたので、現状分かったことをメモしておく。 まず選択肢としては二つありそうだった。 ~/.chat-hatenablog/.envと~/.chat-hatenablog/index.pickle 例) ~/.asdf、~/.docker、~/.gemなど XDG Base Directoryの仕様に沿って、~/.config/chat-hatenablog/.en

    CLIツールを作るとき、ユーザー設定ファイルやデータをどこに配置するか - $shibayu36->blog;
    Cetus
    Cetus 2023/05/02
  • 不確実な状況に耐える力を学ぶ - 「ネガティブ・ケイパビリティ」を読んだ - $shibayu36->blog;

    自分は問題解決は得意な方だと思っている。しかし逆に不確実な状況・不安な状況・課題がある状況をそのままにして耐える力をもっと付けたいなと思っている。そこで最近目にした「どうにも答えの出ない、どうにも対処しようのない事態に耐える能力」であるネガティブ・ケイパビリティについて学ぶためを読んでみた。 ネガティブ・ケイパビリティ 答えの出ない事態に耐える力 (朝日選書) 作者:帚木 蓬生朝日新聞出版Amazon 正直、この歴史的な話とか雑談も多く、少し頭に入りにくかったが、一方で示唆のあることを学べた。例えば どうにも対処が難しい課題を見つけた時に、拙速に解決策を見出すのではなく、興味を抱いてその宙吊りの状態を耐えると良い。それによって深い理解に行き着く 問題解決があまりに強調されると、まず問題設定の時に、問題そのものを平易化してしまう傾向が生まれる。この時、複雑さを削ぎ落としているので、現実

    不確実な状況に耐える力を学ぶ - 「ネガティブ・ケイパビリティ」を読んだ - $shibayu36->blog;
  • コード変更で抜け漏れやミスを少なくするための習慣 - $shibayu36->blog;

    自分はこれまでの仕事で、バグ修正や機能追加でPullRequestを送るときに、考慮の抜けもれやケアレスミスが非常に少ない方であると思っている。振り返ってみて、これは自分に課している習慣が大いに効いていると思っているので、メモしておく。 毎回のcommit時 必要な部分だけをgit addし、git diff --cachedによって差分をセルフコードレビューした上でcommitする PullRequest作成時 filesの内容をセルフコードレビューし、直した方が良い部分は直す + わかりにくい部分にGitHub上でラインコメントを行う + コード上にコメントを残した方がいいならコメントする ユーザーの導線に影響するコードなら、必ず自動テストだけでなく、自分自身でユーザーの行動をトレースし、違和感がある部分が存在しないかチェックする。チェックした流れについては、PullRequest上に

    コード変更で抜け漏れやミスを少なくするための習慣 - $shibayu36->blog;
    Cetus
    Cetus 2022/04/25
  • 株式会社はてなを退職しました - $shibayu36->blog;

    2021年8月13日の日が最終出社日でした。しばらく休暇を取り、10月から別の会社でエンジニアをする予定です。 はてなには2010年4月にアルバイトとして入社し、2012年4月からは社員として入社したので、アルバイト2年、社員9年4ヶ月と非常に長い間所属した。仕事の中で、周囲の人の優秀さに圧倒されながら学習とアウトプットをし続け、またいろんなチームや職種を経験させてもらえたおかげで、自分自身がかなり成長できた。はてなに入社できたことで、エンジニア経験がほぼないところから大きく成長できたため、誇張なく人生が変わったと思う。 はてなで経験できたこと 当に色々経験できたのだが、自分の中で当に良い仕事ができたなーと思ったことはこんな感じ。 世界規模で動く通知システム はてなブログMediaの立ち上げ カクヨムの立ち上げ 魔法のiらんどのリプレース ブログチームでのチーム改善や、Mackere

    株式会社はてなを退職しました - $shibayu36->blog;
    Cetus
    Cetus 2021/08/13
  • 「プロフェッショナルSSL/TLS」を読んだ - $shibayu36->blog;

    [asin:4908686009:detail] 最近ふとSSL/TLSの仕組みについて知りたくなったので、「プロフェッショナルSSL/TLS」を読んだ。 かなりいろんな話題を網羅していて、かつ具体的な設定例なども書かれていて良かった。TLSに関する仕事をするときや、SSL/TLSやHTTPS周りで何回かハマったことがあるなら非常にお勧めできる。 仕組みを理解したいなら1章 SSL/TLSと暗号技術・2章 プロトコル・3章 公開鍵基盤が参考になった。実運用なら8章 デプロイ・9章 パフォーマンス最適化・16章 Nginxの設定あたりが参考になりそう。またTLS周りでハマった時のトラブルシューティングには12章のOpenSSLによるテストが使えるだろう。 ただ最新のTLS 1.3に関してはそこまで多く言及はなかった(電子書籍版の巻末の付録のみ)ので、これについては別書籍や別資料で学ぶ必要があ

    「プロフェッショナルSSL/TLS」を読んだ - $shibayu36->blog;
    Cetus
    Cetus 2021/05/13
  • プロジェクト初期は理想日見積もりし、徐々に相対見積もりへ移行する - $shibayu36->blog;

    プロジェクトマネジメントにおいて、見積もりをどのように行うかは結構難しい。僕は理想日見積もりの形式も、相対見積もり(ストーリーポイント)の形式も試したことがあるが、どちらも一長一短であった。 最近色々試す中で、プロジェクト初期は理想日見積もりし、徐々に相対見積もりへ移行するという方式がやりやすいと感じた。今回はその様子を紹介してみる。 理想日見積もりと相対見積もりそれぞれのメリット・デメリット 見積もりの基礎知識と「ストーリーポイント vs 理想日」の考察の記事を読むと、理想日見積もりと相対見積もり(ストーリーポイント)それぞれのメリット・デメリットがさっと把握しやすい。自分としては、それぞれ以下のように思っている。 理想日見積もり : 他の割り込みが全くなく、1日中タスクに取り組んだ場合を1理想日とする見積もり方式 メリット: 他に基準となるタスクがなくてもとりあえず雑に出せる。相対見積

    プロジェクト初期は理想日見積もりし、徐々に相対見積もりへ移行する - $shibayu36->blog;
    Cetus
    Cetus 2021/04/06
  • 1