GitBucketを支えるJava技術とグローバルで使われるOSSの作り方
- 2. 自己紹介
● 竹添 直樹 @takezoen
● 株式会社ビズリーチ勤務
● Java→Scala
● GitBucketやScalatraなどのOSSを開発してい
ます
- 9. GitBucketの機能
● Public / PrivateなGitリポジトリ (httpとsshでアクセス可能)
● アクティビティのタイムライン表示を含むダッシュボード
● オンラインでのファイル編集も可能なリポジトリビューア
● Markdown書式が利用可能なWiki
● イシュー、プルリクエスト
● ソースコードへのコメント
● リポジトリのフォーク
● Eメールによる通知
● ユーザ、グループによる権限管理、LDAP連携
● Gravator連携
● GitHub互換のWeb API
● プラグインによる拡張
● H2 / MySQL / PostgreSQL Herokuでデモサイトが動いています:
http://gitbucket.herokuapp.com/
- 14. Scalaの特徴
● オブジェクト指向言語 + 関数型言語の機能
○ Javaよりも強力な型安全性
○ スクリプト言語のような柔軟性
● Javaとの相互運用性
○ 既存の膨大なJavaの資産を利用可能
○ 最新のScala 2.12ではJava8のサポートも強化
- 16. Slick: タイプセーフなクエリDSL
Issues
.filter { t1 =>
t1.issueId === issueId.bind
}
.innerJoin(Accounts).on { case (t1, t2) =>
t1.userId === t2.userId
}
.map{ case (t1, t2) =>
(t1.issueId, t1.title, t2.userName)
}
.list
- 24. こんなプラグインがあります
プラグイン 説明
Announce plugin ユーザにメールでのアナウンスをするためのプラグイン
H2 Backup plugin H2のデータをダンプするためのプラグイン
Desktop Notification デスクトップ通知を行うためのプラグイン
Gist plugin スニペットを管理するためのプラグイン
Commits graph plugin ユーザ毎のコミット数を表示するプラグイン
Asciidoc plugin Asciidocのレンダリングをできるようにするプラグイン
Bugspots plugin リポジトリのソースコードに Bugspotsを適用するプラグイン
Pages plugin リポジトリの内容をWebページとして公開するためのプラグイン
Network plugin コミットのネットワークグラフを表示するプラグイン
Emoji plugin WikiやIssuesなどで絵文字を使えるようにするプラグイン
RST plugin ReStructuredTextのレンダリングをできるようにするプラグイン
- 29. 私のOSS代表作
● FreeStyle Wiki 2003年〜
○ 日本人ユーザがターゲットだった
○ プラグインを作ってくださる方も多かった
● Project Amateras 2004年〜
○ 英語のWebサイト、ユーザインターフェースを提供
○ 海外:日本のユーザ比率 3:1くらいになったが、開発コミュ
ニティを作ることができなかった
● Seasar2, Apache Click 2008年〜
○ Apache Software Foundationへの移行、ASFコミッタと
しての活動を経験