eclipsky200712

25
ソースコードを読んでみよう Eclipse Plugin 開発勉強会 2007/12

Upload: hiroki-kondo

Post on 28-May-2015

1.732 views

Category:

Technology


0 download

DESCRIPTION

Eclipse Plugin開発勉強会200712の資料です。

TRANSCRIPT

Page 1: EclipSky200712

ソースコードを読んでみよう

Eclipse Plugin開発勉強会2007/12

Page 2: EclipSky200712

本日のテーマソースコード読

Page 3: EclipSky200712

アジェンダ

連絡事項 20:00まで借りています その後懇親会 /忘年会やりたいです。

特に予約はしてません。自由参加です

自己紹介 プラグインのコードを読むには (基礎編 /こんぴろ )

EclipseSpyのコードを読んでみる (毛利さん )

EclipsePlatformのコードを読むには (深海編 /こんぴろ )

Page 4: EclipSky200712

今回の自己紹介

新規ご参加 ITEngineerさん その他リピーターさんいらっしゃい でもやるよ自己紹介

Page 5: EclipSky200712

お題 (お一人様最大 5分 )

お名前 (HNでもいいですよ ) 普段のお仕事 母国語 (プログラミング言語 ) ソースコード読んでます or 書くだけです or そう

いうお仕事ではありません etc...

Page 6: EclipSky200712

へたこいた orz

1枚ペらシート用意お願いするのわすれたー! 次回こそ必ず !

Page 7: EclipSky200712

こんぴろの場合

近藤寛喜と申します お仕事 :EclipseRCPを使ったアプリ開発 言語変遷 C+Pascal+Fortran(学校 )→PHP

+SQL(文化祭 )→VHDL/Ada(オブジェクト指向と出会う )→EmacsLisp→Perl(研究 )→Python(Zope)→Java(お仕事 )→Ruby(読むよ !)

そーすこーどは読み物です。 書いたものは作品です。 英語にチャレンジ中

Page 8: EclipSky200712

みなさんどうぞ!

時計回りで。

Page 9: EclipSky200712

ソースコード読んでますか ?

ソースコードを読む利点 コンテキストって聞いたことありませんか ? オブジェクト指向言語ではよく出てきます。

例 servletContext(J2EE) 例 Context(.NET)

その場の状態などを知っているもの =コンテキスト ソフトウェアに携わるものにとっての「空気」 ソースコードを読んでいないとコミュニケーションしづらい (形式手法 (仕様記述言語 )でも同じ )

Page 10: EclipSky200712

ソースコードを読んでみよう

Eclipse Pluginの場合 (基礎編 )

Page 11: EclipSky200712

アジェンダ

環境整備 プラグインを彩るライブラリについて知っておく プラグインの基礎情報を知る

依存関係について 拡張ポイントから攻める

PDEの使い方を共有する (っていうか、未だによくわからん )

Page 12: EclipSky200712

環境整備

Eclipse 3.3から環境ごとの配布になりました。 プラグインのソースを読む場合は以下

Eclipse for RCP/Plug-in Developers Eclipse Classic

その他 EclipseSpyを入れておくと便利です。 kojihajiさんバックポートありがとう https://bugs.eclipse.org/bugs/show_bug.cgi?

id=210162

Page 13: EclipSky200712

プラグインを彩るライブラリ

Eclipseは UIに Swing/AWTを使いません JFace/SWTを使います。 org.eclipse.swtや org.eclipse.jfaceのパッケージ よくわかんないクラスは基本ぐぐる(やっぱり重要)

プラグインのベースについて知っておく Equinox(OSGi)を使ってるということ程度

Page 14: EclipSky200712

プラグインの基礎情報について知る

依存関係について プラグインは基本的に既存のプラグインに機能を追加していく

「 Plugin Registry 」ビューから「Open Dependency 」で依存しているプラグインを見られます。

もちろん PDEエディタでも見られます

拡張ポイントについて 既存のプラグインが機能を追加されるポイント

org.eclipse.ui.viewsとか org.eclipse.ui.editorsとか

Page 15: EclipSky200712

uiプラグインと何もないプラグインについて

ほとんどのプロジェクトで JUnitで自動テストをしています。

Mylyn/ECFは CIもやってます。 http://mylyn.eclipse.org/bitten/

テスト容易性を上げるため、 ui関係のライブラリが必要なプラグインとそうではないプラグインとで分けられています。

Page 16: EclipSky200712

org.eclipse.ui

EclipsePlatformの GUIのほとんどの機能を提供しているプラグイン

エディタだったら org.eclipse.ui.editors

ビューだったら org.eclipse.ui.views

拡張ポイントのヘルプも参考に(英語 ) http://help.eclipse.org/help33/topic/org.eclipse.platform.d

oc.isv/reference/extension-points/index.html

Page 17: EclipSky200712

EclipseProjectのコードを読む

行儀の悪いプロジェクトはソースを添付したものを公開してない

CVSから落とすべし 各プロジェクトでリリース時に打たれたタグを元に探す

Page 18: EclipSky200712

CVSの設定 (リポジトリパス )について

巨大なプロジェクトはそれぞれリポジトリが作成ずみ WTP/TPTP

Platformには Eclipseの基盤プロジェクト Equinox/Launcher/JDT/PDE/SWT/JFace

Toolsには開発を補助するツールのプロジェクト Mylyn/GEF

Technologyには新規技術のプロジェクト ECF/RAP/Babel

その他詳しくはWebで (http://wiki.eclipse.org/CVS_Howto)

Page 19: EclipSky200712

PDEの使い方

プラグインの依存関係や拡張ポイントを探すためのパースペクティブ

Uiの拡張は Spyを使うと激しく便利 みなさんどうやって使われてますか ?

Page 20: EclipSky200712

EclipseSpyについて

昨日いきなり振ってごめんなさい(毛利さん)

Page 21: EclipSky200712

EclipsePlatformのコードを読む(深海編 )

こんぴろより

Page 22: EclipSky200712

なぜ EclipsePlatformか

もはや Eclipseはただの IDEはない。 ポータブルに持ち運べる「環境」

Rich Ajax Platform Rich Server Platform

Page 23: EclipSky200712

EclipseLauncher

各プラットフォームごとにランチャーを作成 プロジェクト内で各プラットフォームごとにソースがある EclipsePlatformの org.eclipse.equinox.executableにソースコードがある

JRE用のパスを用意するとそっちを参照したり、実は起動スプラッシュと EclipseWorkbenchの起動は別のプロセスで立ち上がってるとかおもしろい

Page 24: EclipSky200712

Equinox

Eclipseの基盤フレームワーク ソースは添付済み どうやってクラスをロードしているのか どうやってプラグイン間の依存関係を作成しているのか OSGiコンソールへのコマンドの追加方法 どんな風に Eclipseが起動しているのか

Page 25: EclipSky200712

その他

org.eclipse.equinox.registry 拡張ポイントのプラグイン

org.eclipse.update 更新サイト用のプラグイン だけと思いきや、起動時にプラグインを読み込むプラグイン