こんにちは、@p1assです。
普段利用しているブックマークサービスである Pocket の API を使って、今年ブックマークした記事の一覧をまとめてみました。 大体 280 記事くらいあるので、目次をみつつ漁ってみてください。 バックエンドからインフラ、設計、フロントエンド、マネジメントまで幅広くあります。
なお、記事の一覧は下記のスクリプトを使って生成しました。 急いで作ったので拡張性はないです。 使いたい方は適当に手直しして使ってください。
注意: タグはかなり適当
バックエンド
Go
- Nintendo Switch™ ネイティブバイナリへの Go コンパイルを成功させた話
- Go の入力バリデーションパッケージ ozzo-validation を試した。
- k0kubun/pp: Colored pretty printer for Go language
- OpenTelemetry in Go
- Go のロギングライブラリ 2021 年冬
- GraphQL の静的解析基盤を作った
- Go のリリースプロセスとブランチ戦略
- Go 1.16 の signal.NotifyContext()
- Go has both make and new functions, what gives ? – The acme of foolishness
- Go のトランザクションマネージャ作った
- Go の最初の手順 - Learn | Microsoft Docs
- スレッドセーフなテスト用の時間を固定するライブラリを作った
Java
- JAX-RS 入門および実践
- 私からあなたへ 一人前の Java エンジニアになるためのロードマップを送ろう
- Immutable でスレッドセーフになった Java の新しい日時 API の基礎知識
- Singleton をモックする。
- How to print out all dependencies in a Gradle multi-project build?
- Groovy を知らない人のための build.gradle 読み書き入門
- Indeed.com の Java コード 2014-12-14
- 拙訳 JUnit 5 User Guide
- OWASP Dependency-Check を使って Maven の依存ライブラリの脆弱性を確認する
- 10 年間 Java を書いていた僕が Effective Java 第 2 版を読み返して新人に薦められるのかを考えてみた
- JUnit5 使い方メモ
- VisibleForTesting と RestrictTo
- final を付けるのをやめてみた
- Java17 対応版!Java コーディング規約の紹介 | フューチャー技術ブログ
- Java プログラミングスキルの更新
- Gradle のタスク定義のあれこれ
- Java の例外処理について
- Gradle のネイティブ Bom サポートについて
- java.util.Objects を使おう
- 「maven と書いて達人と読む」という勉強会を 4 日連続でやった話
- Add build dependencies
- JavaEE 使い方メモ(CDI)
- lombok val
- Effective Java 第3版 「ほぼ全章」を「読みやすい日本語」で説明してみました。
- BOM プロジェクトとは
- JDK 8 の jdeps で JAR ファイル間の依存関係を可視化
- Struts を使い続けることの問題点&現在有力な Java EE、Spring、Play Framework の基礎知識とアーキテクチャ
- Java コーディング規約 | Future Enterprise Coding Standards
Gradle
Perl
- Perl Hackers Hub:連載| gihyo.jp … 技術評論社
- hatena/Hatena-Textbook: はてな研修用教科書
- Perl 入学式 | Perl Entrance
- どうしても業務命令で Perl を使わざるを得ないあなたに送る、IDE(IntelliJ)で Perl を殴る方法。
- macOS(mojave)に DBD::mysql をインストールしたいっ!
- Perl の勘所をマスターしよう! コンテキストとリファレンスを我が物に!
- Perl と型とコンテキスト
- Perl 基礎入門
- Perl5 plugins for IntelliJ IDEA
Rust
- Rust の最初のステップ
- Rust Cookbook for Beginners
- Rust Design Patterns
- Rust を始めるための資料集
- 時間がかかる複数の CLI タスクを Rust 製ツールの Pueue で管理する
C++
設計
Architecture
Application Architecture
- 初期に人数が多すぎると、プロジェクトは重要な設計作業を省略せざるをえない
- 技術的負債は開発者体験を悪化させる
- ソフトウェア設計原則は変更容易性に通ず
- ソフトウェア設計の Why & What & How
- 決済システムの残高管理周りの DB 設計と戦略 - カンムテックブログ
DDD
- ドメイン駆動設計で保守性をあげたリニューアル事例 〜 ショッピングクーポンの設計紹介
- ユビキタス言語策定したらビジネス理解がめっちゃ捗った話
- ■DDD(ドメイン駆動設計)、理念に大賛成、実装に大反対。
- ドメイン駆動設計の集約のわかりにくさの原因と集約を理解するためのヒント
- スケールする要求を支える仕様の「意図」と「直交性」
- 実は DDD ってしっくりこないんです
UML
インフラ
Infra
Nginx
Docker
Kubernetes
SRE
ISUCON
gRPC
Microservice
クラウド
AWS
- GitHub Actions に「強い」AWS の権限を渡したい ~作戦 3 - AssumeRole with Google ID Token ~
- 形で考えるサーバーレス設計
- 20190305 AWS Black Belt Online Seminar Amazon EC2
- [AWS Black Belt Online Seminar] Amazon Aurora MySQL Compatible Edition ユースケース毎のスケーリング手法 資料及び QA 公開
- 詳細: Fargate データプレーン
- Event Source Data Classes
- [AWS Black Belt Online Seminar] 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説 資料及び QA 公開
- Black Belt Online Seminar AWS Amazon RDS
- AWS Well-Architected
- AWS のグローバル IP の空間はインターネットなのか?
- AWS DevDay Online Japan に「AWS CDK はどう使いこなすのか、初期開発から運用までのノウハウ」というタイトルで登壇しました #AWSDevDay
- AWS IAM User アクセスキーローテーションの自動化
- Docker Compose と Amazon ECS を利用したソフトウェアデリバリの自動化
- スタートアップのためのコンテナ入門 – AWS Fargate 編
- AWS の Parameter Store と Secrets Manager、結局どちらを使えばいいのか?比較
- Amazon ECS でのコンテナデプロイの高速化
- IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた
- AWS-01:今だからこそ知りたい、AWS のデータベース 2020 基礎
- 20200630 AWS Black Belt Online Seminar Amazon Cognito
ECS
- ECS とローカル間でファイルをコピーしたり、対話形式で run-task や exec できるデバッグ特化の CLI ツールを作りました
- Amazon ECS タスクのイベントとログを時系列で出す tracer を作った
- AWS Black Belt コンテナシリーズのあるきかた 2021 年まとめ
- ECS + firelens で大きなサイズのログを NewRelic に転送する
- Amazon ECS と AWS Fargate を利用した Twelve-Factor Apps の開発
Terraform
- Terraform 職人入門: 日々の運用で学んだ知見を淡々とまとめる
- AWS CDK と Terraform を n 個の観点で徹底比較/compare-aws-cdk-and-terraform-from-n-perspectives
- Terraform 職人再入門 2020
- Terraform の state 操作を git にコミットしたくて tfmigrate というツールを書いた
CDN
PubSub
Cognito
Deploy
CircleCI
データベース
MySQL
- データベースを自動でチューニングしてくれるサービス「OtterTune」
- DB 変更リリースの停止時間を最小化するには?「DevOps with Database on AWS」 #AWSDevDay
- Aurora MySQL のバックアップは本当にそれでいいのだろうか?
- ALTER TABLE を上手に使いこなそう。
- facebook / mysql-5.6
- pingcap/parser (MySQL 互換) で SQL を手軽に解析
- トランザクションの分離レベルで出てくる用語
- MySQL 8.0 リファレンスマニュアル
- MySQL でプライマリキーを UUID にする前に知っておいて欲しいこと
TiDB
技術全般
Auth
- セキュアなトークン管理方法
- 『クラウドを支えるこれからの暗号技術』
- ユーザー アカウント、認証、パスワード管理に関する 13 のベスト プラクティス 2021 年版
- ID 連携の標準化仕様紹介とセキュアな実装のためのアプローチ ~ 2021
- Digital Identity 技術勉強会 #iddance Advent Calendar 2020
- ソフトウェア2段階認証
- 認証と認可の超サマリ OAuth とか OpenID Connect とか SAML とかをまとめてざっと把握する本
- ID Token and Access Token: What Is the Difference?
- 図解 DPoP (OAuth アクセストークンのセキュリティ向上策の一つ)
- 完全無料の IDaaS??Google Cloud Identity Free を試してみる
- Digital Authentication Guideline
- 全員が OAuth 2.0 を理解しているチームの作り方 #devio2021
- OpenID Foundation Japan
- SPA でのバックエンド認証用トークンの管理方法に関する考察
Security
- Spectre の脅威とウェブサイトが設定すべきヘッダーについて
- SPA セキュリティ入門~ PHP Conference Japan 2021
- Qiita や Zenn よりも便利? IPA の資料を読もう!
- Introduction - OWASP Cheat Sheet Series
JWT
UUID
Git
- git worktree コマンドを使って複数ブランチを並行して操作する
- Git リポジトリ内を grep する git grep はシンプルで超便利
- 大きな Git リポジトリをクローンするときの工夫を図解します
- git bisect で問題箇所を特定する
- GitHub の GPG Key を設定する
Cookie
Haskell
Web フロントエンド
TypeScript
React
Nuxt.js
Next
Deno
Frontend
開発全般
Development
- エンジニアのための技術選定のポイントとやり方
- How to use HTTPS for local development
- 新しくプロダクト開発に入ったときにやっていること
- 知らない Web アプリケーションの開発に途中から JOIN したとき、どこから切り込むか? / PHPerKaigi 2020
- 新しくプログラミング言語に入門するときの流れ
- 大事ではないことを大事だと錯覚した結果、オーバーエンジニアリングになる
- ヤフーでは開発迅速性と品質のバランスをどう取ってるか
- そのシャッフル、本当にシャッフルですか?何気ない落とし穴にハマった話
- Pull Request から社内全チームの開発パフォーマンス指標を可視化し、開発チーム改善に活かそう
Docs
Education
- List of Free Learning Resources In Many Languages
- 研修資料まとめ.md
- リクルートテクノロジーズ エンジニアコース新人研修の内容を公開します!(2019 年度版)
Feature Flag
i18n
Credentials
GitHub
JetBrains
Test
プロダクト開発
Product
- UX ライターが解説する超実践的 UX ライティング入門| nao
- 【翻訳】 図解 プロダクトづくりの構造
- 無料プランは百害あって一利なし
- 【CEDEC 2018】明快で軽快! Nintendo Switch の UI を触るだけで楽しい理由
- プロダクト・ポートフォリオ・マネジメント
Design
ソフトスキル
Management
- 後輩が自走できるようにサポートするぞー
- 人は常に本末転倒している
私の PM 論 - 技術的に難しいことを力技でやってしまうこと
- リーンスタートアップの限界への雑感
- 事業をスケールさせるエンジニアリング〜技術のコモディティ化にエンジニアは敗北する〜
- プロダクトの強い軸を作るために「大切なものランキング」を作ろう| Tably | note
- 仕事のインパクトを大きくしようとすると人を巻き込む必要がある
- Engineering Manager をやめた
- ペア制度を導入して、開発チーム内の相談しやすさ向上・知見展開・透明性向上を狙う
- Atomic Scrum 個人の生産性を最大化する方法
- No を伝える技術 #pmconf2021
- なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのか
- Culture | メルカリエンジニアリング
- なぜスクラムチームをスケールしたくなるのか
- かつて EM をやりたくなかった俺たちへ
- 言いたいことを言える場の設計
- 「何か質問や意見ありますか」の後の無言対策
- Engineering Manager の役割を無くしてみた
- 自走できるエンジニアとは
- プロダクトマネジメント入門
- プロジェクトをリードする技術
- KPT の K がいまいち膨らまないチームに贈るパワフルな質問
- 5~8 人の Backend チーム編成を目指そう
- 意見を言ってくれた人を孤立させない立ち振る舞い
- NTT Com オンボーディングハンドブック
- メンバーが増えると出力が落ちる「リンゲルマン効果」と対策としての DRI
- 振り返りで積み上げた開発プラクティス(2020 年総まとめ)
- 再現性と質を高める「意思決定のフロー化」 ―― 開発畑のプロダクトマネージャーの失敗から学べ
- 10 年エンジニアリングマネージャーをやって気づいた 4 つの大事なポイント 【EM はもっと自由でいい】
- スクラムマスターって何をする人なの?
- エンジニアリングマネージャーとしてどんなことをしているのか?
- 体制を考えるときに意識していること
- キャリアキーノートとはなにか
- アジャイル開発におけるスケジュールを継続的に見直す
- アーキテクトを目指すエンジニアの最短ルート
- 良い上司の条件・悪い上司の条件
- はじめてのエンジニア 1on1 メンター
- 組織デザイン概論 - WDA 研究会 191121
Career
- 圧倒的に成長している時は実感がない
- Dropbox Engineering Career Framework
- エンジニアリングマネージャーを目指す若者の戦略
- 評価の満足度を劇的にあげた秘訣。Continuous Feedback のすすめ
- チームにいると頼りになるソフトウェアエンジニア
Values
クライアント
Electron
Flutter
Unity
日常生活
引っ越し
- ソフトウェアエンジニア、建売を買う
- ソフトウェアエンジニア、家を買う
- UR 賃貸住宅が最強な理由と優先的な空室の見つけ方
- 都内に引っ越す際の物件選びの話
- マンション購入記(勢いで購入を決めるまで)
- 上京したて新卒 1 年目エンジニアの生活費を公開します|ぽこひで| note
- 地方で働こうと思ったあなたへ、移住時に検討すべき 5 つのこと
- モダンインテリア 6 つのスタイル&真似たいおしゃれな厳選 47 実例
- アパートは光回線に対応してる?ネットで確認する方法
- 中古マンションを契約したので備忘録| dyoshimitsu | note
- 「モノトーン」に徹底してこだわる。大人のひとり暮らしインテリア
- 物件契約時の初期費用を交渉したときのメモ
- 無垢フローリングに雰囲気の良い木の家具でつくる。小さなワンルームの暮らし方
- 一人暮らし準備
- 満足度の高い引越しのためにやったこと
- 物件探し確認事項
- 満足できる物件を探すために僕がした事
- 持ち家派ではなかったけど家持ちになった
- そろそろ引っ越しシーズンが近づいてきたので、計 10 回以上の引っ越し経験で培った「良い物件の見つけ方」をシェアします。
Investment
Food
Insurance
Sake
Music
その他
個人開発
Job Hunting
Lab
English
終わりに
「読んだっけ?」って記事が沢山見つかって、記憶力が心配になりました。