🐙

[SAMPLE] OSS活動記録2024

OSS貢献活動記録 - 2024年

活動開始: 2024年3月
目標: 技術力向上、コミュニティ貢献
モチベーション: Githubの草を緑に、実践的な経験


📊 年間サマリー

貢献統計

項目件数
プルリクエスト18件
マージされたPR15件
Issueレポート8件
ドキュメント修正5件
バグ修正7件
機能追加3件

貢献したプロジェクト

  • Next.js(ドキュメント修正)
  • React(バグ報告)
  • TypeScript(型定義修正)
  • Prisma(ドキュメント改善)
  • Zod(サンプルコード追加)

🚀 主な貢献

1. Next.js - ドキュメント修正

日付: 2024/04/15
PR: #62345
ステータス: ✅ Merged

内容:
App Routerのドキュメントに日本語特有の問題について追記

変更内容:

## Internationalization (i18n) Next.js App Router supports internationalization out of the box. + **Note for Japanese users**: When using Japanese characters in dynamic routes, + make sure to properly encode the URLs using `encodeURIComponent()`.

学び:

  • OSSへの初めてのコントリビュート
  • コントリビューションガイドラインの重要性
  • レビュープロセスの厳格さ

所感:
緊張したけど、メンテナーが丁寧にレビューしてくれた。小さな貢献でも価値があると実感。


2. Prisma - 日本語サンプルコード追加

日付: 2024/06/20
PR: #21890
ステータス: ✅ Merged

内容:
日本語のユーザー名を扱う際のベストプラクティスを追加

変更内容:

// 日本語名のハンドリング例 const user = await prisma.user.create({ data: { name: "田中太郎", email: "tanaka@example.com", // 日本語名の読み仮名も保存 nameKana: "タナカタロウ" } });

学び:

  • 実際のプロダクトで困った経験が貢献に
  • グローバルなプロジェクトでも地域特有の課題は重要

所感:
自分の経験が他の日本人開発者の役に立てて嬉しい。


3. Zod - バリデーションエラーメッセージ改善

日付: 2024/08/10
PR: #3456
ステータス: ✅ Merged

内容:
日本語でのバリデーションエラーメッセージサンプルを追加

変更内容:

import { z } from "zod"; // カスタムエラーメッセージ(日本語) const userSchema = z.object({ email: z.string().email({ message: "有効なメールアドレスを入力してください" }), password: z.string().min(8, { message: "パスワードは8文字以上必要です" }), age: z.number().min(18, { message: "18歳以上である必要があります" }) });

学び:

  • i18n対応の重要性
  • エラーメッセージのUX

所感:
ドキュメントへの貢献は比較的ハードルが低く、初心者にもおすすめ。


4. TypeScript - 型定義の誤り修正

日付: 2024/10/05
PR: #56789
ステータス: ✅ Merged

内容:
Array.prototype.at() の型定義で負のインデックスの戻り値が undefined になる可能性を追加

変更内容:

// Before interface Array<T> { at(index: number): T; } // After interface Array<T> { at(index: number): T | undefined; }

学び:

  • TypeScriptの型システムへの深い理解
  • エッジケースの重要性

所感:
コア部分への貢献は難易度高いが、やりがいがある。


📝 Issue報告

1. Next.js - App Routerのキャッシュ挙動

日付: 2024/05/12
Issue: #61234
ステータス: Fixed in v14.2.0

内容:
動的ルートでキャッシュが意図せず効いてしまう問題を報告

再現手順:

// app/posts/[id]/page.tsx export default async function Post({ params }: { params: { id: string } }) { const post = await fetch(`https://api.example.com/posts/${params.id}`); return <div>{post.title}</div>; }

期待する挙動: 毎回最新データを取得
実際の挙動: 古いデータがキャッシュされる

結果: v14.2.0で修正された

学び:

  • 再現手順を明確に書くことの重要性
  • 最小限の再現コードを用意

2. Prisma - マイグレーションエラー

日付: 2024/07/08
Issue: #22456
ステータス: Won't fix (Design decision)

内容:
PostgreSQLでENUM型の削除時にエラー

結果: 仕様として意図された挙動だった

学び:

  • 全てのIssueが修正されるわけではない
  • デザイン決定を理解することも重要

💡 OSS貢献のコツ

初心者向け

1. ドキュメント修正から始める

  • タイポ修正
  • サンプルコード追加
  • 翻訳

理由:

  • ハードルが低い
  • レビューが通りやすい
  • プロジェクトの流れを学べる

2. "Good First Issue" を探す

  • GitHubのラベルで検索
  • 初心者向けの問題が見つかる

探し方:

label:"good first issue" language:TypeScript

3. 小さなPRから

  • 一度に多くを変えない
  • レビューしやすいサイズ

目安: 変更行数は50行以内


中級者向け

1. 実際に困った問題を解決

  • 自分が使っているライブラリ
  • 実務で遭遇したバグ

メリット:

  • モチベーション高い
  • 実用的

2. テストコードの追加

  • カバレッジ向上
  • バグの再現テスト

3. パフォーマンス改善

  • ベンチマーク測定
  • 最適化

🎯 2024年の成果

技術力向上

  • ✅ コードレビューの受け方を学んだ
  • ✅ Git/GitHubの高度な使い方を習得
  • ✅ 英語でのコミュニケーション力向上
  • ✅ テストの書き方を学んだ

コミュニティ貢献

  • ✅ 15個のPRがマージ
  • ✅ Issueで他の人を助けた
  • ✅ ドキュメント改善で日本人開発者をサポート

キャリア

  • ✅ GitHub profileが充実
  • ✅ 転職活動でアピールポイントに
  • ✅ 技術ブログのネタに

🚧 困ったこと

1. 英語の壁

  • ドキュメントを読むのに時間がかかる
  • レビューコメントを理解するのに苦労

対策:

  • DeepLを活用
  • 英語の技術記事を積極的に読む

2. レビューが厳しい

  • 些細な指摘も多い
  • 何度も修正を求められる

対策:

  • 学びの機会と捉える
  • コントリビューションガイドを熟読

3. PRが放置される

  • レビューされないまま数ヶ月
  • モチベーション低下

対策:

  • 活発なプロジェクトを選ぶ
  • Discordなどで軽く催促

📚 参考資料

書籍

  • 「Team Geek」
  • 「The Art of Readable Code」

サイト

  • First Timers Only
  • Up For Grabs
  • Good First Issue

🎯 2025年の目標

貢献目標

  • PR: 30件以上
  • マージ: 25件以上
  • 機能追加: 5件以上

新しい挑戦

  • メジャーなプロジェクトへの機能追加
  • 自分のOSSライブラリ公開
  • カンファレンスでのLT

OSS貢献、楽しい!
2025年も続けます!


タグ: @OSS @貢献 @GitHub @技術

0
0
0
0
投稿
0
フォロワー
0
いいね

プロパティ

ページ
LOG
比較学習PCReact
2024年1月1日
サム・アルトマンイーロン・マスク