Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

新卒2年目から始めるOSSのススメ~明日からできるコミットデビュー~

4,120 views

Published on

JJUG CCC Spring 2017での発表です。
http://www.java-users.jp/ccc2017spring/
ER図作成ツールである、ERFluteへのプルリクを通したOSS活動についてお話ししました。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

新卒2年目から始めるOSSのススメ~明日からできるコミットデビュー~

  1. 1. 新卒2年目から始めるOSSのススメ 〜明日からできるコミットデビュー〜 JJUG CCC Spring 2017 梶栗 芳夫 #ccc_m7 1
  2. 2. 目次 ■ 自己紹介 ■ ERFluteについて – 特徴紹介 ■ ERFluteを通したOSS活動について – 学び、コツ – 始めたキッカケ ■ まとめ 2
  3. 3. 自己紹介 ■ 梶栗 芳夫 ■ U-NEXT (動画配信サービス) ■ 2年目 サーバサイド エンジニア 3
  4. 4. ERFluteとは? ■ EclipseプラグインのERDツール(ER図作成ツール) ■ ERMaster をフォークした ERMaster-b をフォーク 4
  5. 5. ERFluteの特徴 ■ 特徴1. シンプルbutグラフィカル – テーブル間のカージナリティの表現 (0:n, 1:n) – テーブルのフォントや背景色の変更 – ダイアグラム上でのノートやグループ ■ 特徴2. シンプルbutファンクショナル – 対象DBMS用のDDL出力 – ダイアグラムモニターによるダイアグラムの移動 – Outlineによるテーブル検索、対象テーブルへの移動 (control+O) – 仮想ダイアグラムでカテゴリごとのモデリング ■ 特徴3. マージできるERD 引用 http://dbflute.seasar.org/ja/manual/function/helper/erflute/index.html 5
  6. 6. 特徴3. マージできるERD ■ ermファイルはxml形式。 ■ もし、コンフリクトしても人間がマージできるレベル。 6
  7. 7. OSSのススメ。 ■ 簡単な修正から始めよう。 ■ Githubのプルリクは簡単。 7
  8. 8. OSSのススメ。 簡単な修正から始めよう。 ■ 最初のプルリク – ノート削除時のヌルポ対応 – https://github.com/dbflute-session/erflute/pull/6 8
  9. 9. OSSのススメ。 簡単な修正から始めよう。 ■ 文字化け対応 – https://github.com/dbflute-session/erflute/pull/10 9
  10. 10. OSSのススメ。 Githubのプルリクは簡単。 2つのリモートを1つのgit管理下にすればよい。 ■ Origin => 自分のgitリポジトリ ■ Upstream => erfluteリポジトリ git remote add upstream git@github.com:dbflute-session/erflute.git git fetch upstream develop git branch develop upstream/develop ■ Upstream のdevelopからfeatureブランチを作成。 ■ Originに向けてpush。 erfluteリポジトリのdevelop対してプルリク。 10
  11. 11. 学びその1。 API修正とERFlute修正の違い。 ■ API – URLから対象クラスがすぐわかる。 – 例: member/get =>> memberGetAction.java – 関係しているクラスが少ない。 – 基本的な動作は保障されている上で業務ロジックを 考える。 ■ ERFlute – クラスたくさん。フィールド値もたくさん。 – どのクラスからどう引き継がれているのか、流れを 読むのが大変。全体像を把握するのがキツイ。 11
  12. 12. ERFluteアーキテクチャマップ 12引用 http://dbflute.seasar.org/ja/manual/function/helper/erflute/index.html#classworldmap
  13. 13. 学びその2。 業務とは異なるのエラー読み ■ 例 仮想ダイアグラムの削除 ■ https://github.com/dbflute-session/erflute/pull/18 普段より一階層深く潜ってエラーを読み取る必要があった。 ArrayList.javaの実装を初めて読むことに。 13 public int remove(ERVirtualDiagram vdiagram) { final int index = this.vdiagrams.indexOf(vdiagram); vdiagrams.remove(index); firePropertyChange(PROPERTY_CHANGE_MODEL_SET, null, null); return index; }
  14. 14. 学びその3。 タスク管理の重要性 ■ 業務はほぼ毎日、継続して行なっている。 ■ つまり、昨日書いたコードは覚えている。 ■ OSSは完全にプライベートな時間で不定期。 ■ 中途半端で終わると、次見た時に意味不明。 ■ 短い時間で完結する、細かいタスクに分解する必要があ る。 14
  15. 15. 学びその4。その他。 ■ 業務知識が関係ない – ソースコードに書いてあることがすべて。 – 業務だと、その業務に特化した知識が必要となる。 – OSSだとその前提が共有されているので、面白い。 ■ 自信になる。 – 先輩方より詳しいものがある。 15
  16. 16. なんでERFluteなの? 16
  17. 17. 特殊な環境。 ■ メインコミッターが会社の技術顧問 – 全く知らないプロジェクトではない。 – 取り組んでみないと誘われた。 ■ 明確に不具合が分かっていた。 - HPにプルリクエスト募集の項目がある。 http://dbflute.seasar.org/ja/manual/function/helpe r/erflute/index.html#pullreqreq – タスク化された。(ERFluteプルリク少林寺) 17
  18. 18. 18
  19. 19. 特殊な環境。 ■ 社内のプロジェクトで導入が決まっていた。 – 社内の雰囲気が新しい技術に前向き。 – 梶栗が直してくれるからねー。(諸刃の剣) – 自分も使うので改善すれば、助かる。 – 使ってもらう人が身近にいる。 19
  20. 20. 特殊な環境まとめ。 ■ 身近にメインコミッターがいた。 ■ 明確に不具合が分かっていた。 ■ 社内で導入が決まっていた。 20 取り組みやすい環境が整っていた 自分のメリットもはっきり分かっていた。
  21. 21. でも、そんな環境ないし。。。。 21
  22. 22. 明日からできるコミットデビュー ■ 明日、ERFluteもくもく会をするので参加する。 時間 5月21日 14:00 – 20:00 場所 Yahoo Japan Lodge (千代田区紀尾井町) https://lodge.yahoo.co.jp/ ■ その日のうちにERFluteのプルリクを送る。 22
  23. 23. 明日予定あるし。。。。 23
  24. 24. 数ヶ月後からできるコミットデビュー U-NEXT では、 Java8 を使ったWebアプリ開発者を募集しています! https://inside.unext.jp ■ OSSのプロジェクト色々始めています。 – 社内の開発改善からOSS公開へ:DBFluteのプラグインを開発したお話 – http://slides.com/nashcft/jjug_ccc_2016_fall#/ OSSを実際に使って、そして修正もして貢献をしていく。 それをU-NEXT社のエンジニアの精神としてやっていきたい。 24
  25. 25. まとめ ■ 簡単な修正から始めれば、プルリク自体は簡単にで きる。 ■ 業務以外にプログラムを触ると学びがたくさん。 – 特に社内で利用しているOSSだと身近にフィードバックがもらえ るのでモチベーションが保ちやすい。 ■ OSS活動を一般にすぐ始めることは難しいかも。 – 自分のためになる。やりたいという思いが来る日があるはず。 25
  26. 26. ご静聴ありがとうございました。 Special Thanks 偉大な先輩エンジニアの皆さん 26

×