SlideShare a Scribd company logo
1 of 25
Download to read offline
ソースコードを読んでみよう




 Eclipse Plugin 開発勉強会
          2007/12
本日のテーマ
ソースコード読
アジェンダ

    連絡事項



        20:00 まで借りています
    


        その後懇親会 / 忘年会やりたいです。
    


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



    自己紹介




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



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



    EclipsePlatform のコードを読むには ( 深海編 / こ



    んぴろ )
今回の自己紹介
    新規ご参加 ITEngineer さん




    その他リピーターさんいらっしゃい




    でもやるよ自己紹介

お題 ( お一人様最大 5 分 )

    お名前 (HN でもいいですよ )




    普段のお仕事




    母国語 ( プログラミング言語 )




    ソースコード読んでます or 書くだけです or そう



    いうお仕事ではありません etc...
へたこいた orz

    1 枚ペらシート用意お願いするのわすれたー!




    次回こそ必ず !

こんぴろの場合

    近藤寛喜と申します




    お仕事 :EclipseRCP を使ったアプリ開発




    言語変遷 C+Pascal+Fortran( 学校 )→PHP



    +SQL( 文化祭 )→VHDL/Ada( オブジェクト指向と
    出会う )→EmacsLisp→Perl( 研
    究 )→Python(Zope)→Java( お仕事 )→Ruby( 読
    むよ !)
    そーすこーどは読み物です。




    書いたものは作品です。




    英語にチャレンジ中

みなさんどうぞ!

    時計回りで。

ソースコード読んでますか ?

    ソースコードを読む利点



        コンテキストって聞いたことありませんか ?
    


        オブジェクト指向言語ではよく出てきます。
    


            例 servletContext(J2EE)
        


            例 Context(.NET)
        



        その場の状態などを知っているもの = コンテキスト
    


        ソフトウェアに携わるものにとっての「空気」
    


        ソースコードを読んでいないとコミュニケーションしづら
    


        い ( 形式手法 ( 仕様記述言語 ) でも同じ )
ソースコードを読んでみよう




Eclipse Plugin の場合 ( 基礎編 )
アジェンダ

    環境整備




    プラグインを彩るライブラリについて知っておく




    プラグインの基礎情報を知る



        依存関係について
    


        拡張ポイントから攻める
    



    PDE の使い方を共有する



        ( っていうか、未だによくわからん )
    
環境整備

    Eclipse 3.3 から環境ごとの配布になりました。




    プラグインのソースを読む場合は以下



        Eclipse for RCP/Plug-in Developers
    


        Eclipse Classic
    



    その他 EclipseSpy を入れておくと便利です。



        kojihaji さんバックポートありがとう
    


        https://bugs.eclipse.org/bugs/show_bug.cgi?
    

        id=210162
プラグインを彩るライブラリ

    Eclipse は UI に Swing/AWT を使いません



        JFace/SWT を使います。
    


        org.eclipse.swt や org.eclipse.jface のパッケージ
    


        よくわかんないクラスは基本ぐぐる(やっぱり重要)
    



    プラグインのベースについて知っておく



        Equinox(OSGi) を使ってるということ程度
    
プラグインの基礎情報について知る

    依存関係について



        プラグインは基本的に既存のプラグインに機能を追加
    


        していく
        「 Plugin Registry 」ビューから「 Open Dependency 」
    


        で依存しているプラグインを見られます。
             もちろん PDE エディタでも見られます
         



    拡張ポイントについて



        既存のプラグインが機能を追加されるポイント
    


             org.eclipse.ui.views とか org.eclipse.ui.editors とか
         
ui プラグインと何もないプラグイン
            について
    ほとんどのプロジェクトで JUnit で自動テストをして



    います。
    Mylyn/ECF は CI もやってます。



        http://mylyn.eclipse.org/bitten/
    



    テスト容易性を上げるため、 ui 関係のライブラリが



    必要なプラグインとそうではないプラグインとで分
    けられています。
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
EclipseProject のコードを読む

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


    公開してない
    CVS から落とすべし




    各プロジェクトでリリース時に打たれたタグを元に



    探す
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)

PDE の使い方

    プラグインの依存関係や拡張ポイントを探すため



    のパースペクティブ
    Ui の拡張は Spy を使うと激しく便利




    みなさんどうやって使われてますか ?

EclipseSpy について




昨日いきなり振ってごめんなさい(毛利さん)
EclipsePlatform のコードを読む
          ( 深海編 )




        こんぴろより
なぜ EclipsePlatform か

    もはや Eclipse はただの IDE はない。




    ポータブルに持ち運べる「環境」



        Rich Ajax Platform
    


        Rich Server Platform
    
EclipseLauncher

    各プラットフォームごとにランチャーを作成



        プロジェクト内で各プラットフォームごとにソースがある
    


        EclipsePlatform の org.eclipse.equinox.executable
    


        にソースコードがある
        JRE 用のパスを用意するとそっちを参照したり、実は起
    


        動スプラッシュと EclipseWorkbench の起動は別のプ
        ロセスで立ち上がってるとかおもしろい
Equinox

    Eclipse の基盤フレームワーク



        ソースは添付済み
    


        どうやってクラスをロードしているのか
    


        どうやってプラグイン間の依存関係を作成しているのか
    


        OSGi コンソールへのコマンドの追加方法
    


        どんな風に Eclipse が起動しているのか
    
その他

    org.eclipse.equinox.registry



        拡張ポイントのプラグイン
    



    org.eclipse.update



        更新サイト用のプラグイン
    


        だけと思いきや、起動時にプラグインを読み込むプラグ
    


        イン

More Related Content

What's hot

Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Yusuke Kawasaki
 
あなたにもできるアジャイルプラクティス2008
あなたにもできるアジャイルプラクティス2008あなたにもできるアジャイルプラクティス2008
あなたにもできるアジャイルプラクティス2008Seiji Kaneko
 
GIGAPOD OFFICEHARD
GIGAPOD OFFICEHARDGIGAPOD OFFICEHARD
GIGAPOD OFFICEHARDtripodworks
 
RSGT2021 NTTみたいな企業で新アプリをスクラム開発してみんな笑顔になった
RSGT2021 NTTみたいな企業で新アプリをスクラム開発してみんな笑顔になったRSGT2021 NTTみたいな企業で新アプリをスクラム開発してみんな笑顔になった
RSGT2021 NTTみたいな企業で新アプリをスクラム開発してみんな笑顔になったSatoru KawaBuchi
 
ルーティングを使って シンプルなアプリケーション開発を
ルーティングを使ってシンプルなアプリケーション開発をルーティングを使ってシンプルなアプリケーション開発を
ルーティングを使って シンプルなアプリケーション開発をKousuke Ebihara
 
2009年4月8日セミナー 2.Sedue新機能
2009年4月8日セミナー 2.Sedue新機能2009年4月8日セミナー 2.Sedue新機能
2009年4月8日セミナー 2.Sedue新機能Preferred Networks
 
2009年4月8日セミナー 1.オープニング
2009年4月8日セミナー 1.オープニング2009年4月8日セミナー 1.オープニング
2009年4月8日セミナー 1.オープニングPreferred Networks
 
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴opengroove
 
Bluetoothでつなごう!
Bluetoothでつなごう!Bluetoothでつなごう!
Bluetoothでつなごう!Shin Ise
 
プロモーション用DVDコンテンツ制作におけるUser Centered Design視点の導入について
プロモーション用DVDコンテンツ制作におけるUser Centered Design視点の導入についてプロモーション用DVDコンテンツ制作におけるUser Centered Design視点の導入について
プロモーション用DVDコンテンツ制作におけるUser Centered Design視点の導入についてKatsumi TAZUKE
 
2009年4月8日セミナー 4.レコメンデーション Q&A
2009年4月8日セミナー 4.レコメンデーション Q&A2009年4月8日セミナー 4.レコメンデーション Q&A
2009年4月8日セミナー 4.レコメンデーション Q&APreferred Networks
 
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~devsumi2009
 
Web技術勉強会11回目
Web技術勉強会11回目Web技術勉強会11回目
Web技術勉強会11回目龍一 田中
 
enNetforum Wakamatsu Presentation
enNetforum Wakamatsu PresentationenNetforum Wakamatsu Presentation
enNetforum Wakamatsu PresentationForum
 
enNetforum Fukuoka Panelist
enNetforum Fukuoka PanelistenNetforum Fukuoka Panelist
enNetforum Fukuoka PanelistForum
 
個人知識管理達人 淺談提升個人效率的方法及規劃工具的使用
個人知識管理達人 淺談提升個人效率的方法及規劃工具的使用個人知識管理達人 淺談提升個人效率的方法及規劃工具的使用
個人知識管理達人 淺談提升個人效率的方法及規劃工具的使用勝輝 周
 
2009年4月8日セミナー 3.SSD向け全文検索エンジン
2009年4月8日セミナー 3.SSD向け全文検索エンジン2009年4月8日セミナー 3.SSD向け全文検索エンジン
2009年4月8日セミナー 3.SSD向け全文検索エンジンPreferred Networks
 

What's hot (20)

XS Japan 2008 Ganeti Japanese
XS Japan 2008 Ganeti JapaneseXS Japan 2008 Ganeti Japanese
XS Japan 2008 Ganeti Japanese
 
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
Mashup and new paradigm - マッシュアップ技術とインターネットの新しい潮流
 
あなたにもできるアジャイルプラクティス2008
あなたにもできるアジャイルプラクティス2008あなたにもできるアジャイルプラクティス2008
あなたにもできるアジャイルプラクティス2008
 
GIGAPOD OFFICEHARD
GIGAPOD OFFICEHARDGIGAPOD OFFICEHARD
GIGAPOD OFFICEHARD
 
PFI会社案内
PFI会社案内PFI会社案内
PFI会社案内
 
RSGT2021 NTTみたいな企業で新アプリをスクラム開発してみんな笑顔になった
RSGT2021 NTTみたいな企業で新アプリをスクラム開発してみんな笑顔になったRSGT2021 NTTみたいな企業で新アプリをスクラム開発してみんな笑顔になった
RSGT2021 NTTみたいな企業で新アプリをスクラム開発してみんな笑顔になった
 
ルーティングを使って シンプルなアプリケーション開発を
ルーティングを使ってシンプルなアプリケーション開発をルーティングを使ってシンプルなアプリケーション開発を
ルーティングを使って シンプルなアプリケーション開発を
 
2009年4月8日セミナー 2.Sedue新機能
2009年4月8日セミナー 2.Sedue新機能2009年4月8日セミナー 2.Sedue新機能
2009年4月8日セミナー 2.Sedue新機能
 
090601-dotplot
090601-dotplot090601-dotplot
090601-dotplot
 
2009年4月8日セミナー 1.オープニング
2009年4月8日セミナー 1.オープニング2009年4月8日セミナー 1.オープニング
2009年4月8日セミナー 1.オープニング
 
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
イントラネット検索・「ジーラ・ドキュメント・サーチ」の機能と特徴
 
Bluetoothでつなごう!
Bluetoothでつなごう!Bluetoothでつなごう!
Bluetoothでつなごう!
 
プロモーション用DVDコンテンツ制作におけるUser Centered Design視点の導入について
プロモーション用DVDコンテンツ制作におけるUser Centered Design視点の導入についてプロモーション用DVDコンテンツ制作におけるUser Centered Design視点の導入について
プロモーション用DVDコンテンツ制作におけるUser Centered Design視点の導入について
 
2009年4月8日セミナー 4.レコメンデーション Q&A
2009年4月8日セミナー 4.レコメンデーション Q&A2009年4月8日セミナー 4.レコメンデーション Q&A
2009年4月8日セミナー 4.レコメンデーション Q&A
 
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~
 
Web技術勉強会11回目
Web技術勉強会11回目Web技術勉強会11回目
Web技術勉強会11回目
 
enNetforum Wakamatsu Presentation
enNetforum Wakamatsu PresentationenNetforum Wakamatsu Presentation
enNetforum Wakamatsu Presentation
 
enNetforum Fukuoka Panelist
enNetforum Fukuoka PanelistenNetforum Fukuoka Panelist
enNetforum Fukuoka Panelist
 
個人知識管理達人 淺談提升個人效率的方法及規劃工具的使用
個人知識管理達人 淺談提升個人效率的方法及規劃工具的使用個人知識管理達人 淺談提升個人效率的方法及規劃工具的使用
個人知識管理達人 淺談提升個人效率的方法及規劃工具的使用
 
2009年4月8日セミナー 3.SSD向け全文検索エンジン
2009年4月8日セミナー 3.SSD向け全文検索エンジン2009年4月8日セミナー 3.SSD向け全文検索エンジン
2009年4月8日セミナー 3.SSD向け全文検索エンジン
 

Viewers also liked

斜め上行くリッチクライアントの考え方(仮)
斜め上行くリッチクライアントの考え方(仮)斜め上行くリッチクライアントの考え方(仮)
斜め上行くリッチクライアントの考え方(仮)Hiroki Kondo
 
A Scottish Prayer By Mafalda And InéS
A Scottish Prayer By Mafalda And InéSA Scottish Prayer By Mafalda And InéS
A Scottish Prayer By Mafalda And InéSTweenyWeeny
 
どこでも Trac Wiki (Moba S Conflicted Copy 2009 07 14)
どこでも Trac Wiki (Moba S Conflicted Copy 2009 07 14)どこでも Trac Wiki (Moba S Conflicted Copy 2009 07 14)
どこでも Trac Wiki (Moba S Conflicted Copy 2009 07 14)Hiroki Kondo
 
斜め上行くリッチクライアントの考え方(仮)
斜め上行くリッチクライアントの考え方(仮)斜め上行くリッチクライアントの考え方(仮)
斜め上行くリッチクライアントの考え方(仮)Hiroki Kondo
 
Mylynとおともだち
MylynとおともだちMylynとおともだち
MylynとおともだちHiroki Kondo
 
分散環境でのTrac
分散環境でのTrac分散環境でのTrac
分散環境でのTracHiroki Kondo
 
分散環境でのTrac
分散環境でのTrac分散環境でのTrac
分散環境でのTracHiroki Kondo
 
業務システムで使うSpring Dynamic Modules
業務システムで使うSpring Dynamic Modules業務システムで使うSpring Dynamic Modules
業務システムで使うSpring Dynamic ModulesHiroki Kondo
 

Viewers also liked (8)

斜め上行くリッチクライアントの考え方(仮)
斜め上行くリッチクライアントの考え方(仮)斜め上行くリッチクライアントの考え方(仮)
斜め上行くリッチクライアントの考え方(仮)
 
A Scottish Prayer By Mafalda And InéS
A Scottish Prayer By Mafalda And InéSA Scottish Prayer By Mafalda And InéS
A Scottish Prayer By Mafalda And InéS
 
どこでも Trac Wiki (Moba S Conflicted Copy 2009 07 14)
どこでも Trac Wiki (Moba S Conflicted Copy 2009 07 14)どこでも Trac Wiki (Moba S Conflicted Copy 2009 07 14)
どこでも Trac Wiki (Moba S Conflicted Copy 2009 07 14)
 
斜め上行くリッチクライアントの考え方(仮)
斜め上行くリッチクライアントの考え方(仮)斜め上行くリッチクライアントの考え方(仮)
斜め上行くリッチクライアントの考え方(仮)
 
Mylynとおともだち
MylynとおともだちMylynとおともだち
Mylynとおともだち
 
分散環境でのTrac
分散環境でのTrac分散環境でのTrac
分散環境でのTrac
 
分散環境でのTrac
分散環境でのTrac分散環境でのTrac
分散環境でのTrac
 
業務システムで使うSpring Dynamic Modules
業務システムで使うSpring Dynamic Modules業務システムで使うSpring Dynamic Modules
業務システムで使うSpring Dynamic Modules
 

More from Hiroki Kondo

Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料Hiroki Kondo
 
Coderetreat in KIT 資料/
Coderetreat in KIT 資料/Coderetreat in KIT 資料/
Coderetreat in KIT 資料/Hiroki Kondo
 
Coderetreat in KITスポンサー資料
Coderetreat in KITスポンサー資料Coderetreat in KITスポンサー資料
Coderetreat in KITスポンサー資料Hiroki Kondo
 
Eclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtipsEclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtipsHiroki Kondo
 
10分で出来る!?プラグインライブコーディング
10分で出来る!?プラグインライブコーディング10分で出来る!?プラグインライブコーディング
10分で出来る!?プラグインライブコーディングHiroki Kondo
 
JRubyでカードアプリを作ろう
JRubyでカードアプリを作ろうJRubyでカードアプリを作ろう
JRubyでカードアプリを作ろうHiroki Kondo
 
モジュール指向勉強会-コードリーディングを始める前に-
モジュール指向勉強会-コードリーディングを始める前に-モジュール指向勉強会-コードリーディングを始める前に-
モジュール指向勉強会-コードリーディングを始める前に-Hiroki Kondo
 
Javaにおけるモジュラリティ元年
Javaにおけるモジュラリティ元年Javaにおけるモジュラリティ元年
Javaにおけるモジュラリティ元年Hiroki Kondo
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-Hiroki Kondo
 
Kanban Vs Scrum日本語版
Kanban Vs Scrum日本語版Kanban Vs Scrum日本語版
Kanban Vs Scrum日本語版Hiroki Kondo
 
どこでもTrac Wiki
どこでもTrac WikiどこでもTrac Wiki
どこでもTrac WikiHiroki Kondo
 
HELP ME! 説明書
HELP ME! 説明書HELP ME! 説明書
HELP ME! 説明書Hiroki Kondo
 
Rodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜRodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜHiroki Kondo
 
5分で分かるSpringDMとS2AP
5分で分かるSpringDMとS2AP5分で分かるSpringDMとS2AP
5分で分かるSpringDMとS2APHiroki Kondo
 
Spring Dynamic Modules
Spring Dynamic ModulesSpring Dynamic Modules
Spring Dynamic ModulesHiroki Kondo
 

More from Hiroki Kondo (17)

Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料Coderetreat in KIT 導入資料
Coderetreat in KIT 導入資料
 
Coderetreat in KIT 資料/
Coderetreat in KIT 資料/Coderetreat in KIT 資料/
Coderetreat in KIT 資料/
 
Coderetreat in KITスポンサー資料
Coderetreat in KITスポンサー資料Coderetreat in KITスポンサー資料
Coderetreat in KITスポンサー資料
 
Eclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtipsEclipseデバッガを活用するための31のtips
Eclipseデバッガを活用するための31のtips
 
10分で出来る!?プラグインライブコーディング
10分で出来る!?プラグインライブコーディング10分で出来る!?プラグインライブコーディング
10分で出来る!?プラグインライブコーディング
 
JRubyでカードアプリを作ろう
JRubyでカードアプリを作ろうJRubyでカードアプリを作ろう
JRubyでカードアプリを作ろう
 
モジュール指向勉強会-コードリーディングを始める前に-
モジュール指向勉強会-コードリーディングを始める前に-モジュール指向勉強会-コードリーディングを始める前に-
モジュール指向勉強会-コードリーディングを始める前に-
 
Javaにおけるモジュラリティ元年
Javaにおけるモジュラリティ元年Javaにおけるモジュラリティ元年
Javaにおけるモジュラリティ元年
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
 
なぜ今OSGiか
なぜ今OSGiかなぜ今OSGiか
なぜ今OSGiか
 
Kanban Vs Scrum日本語版
Kanban Vs Scrum日本語版Kanban Vs Scrum日本語版
Kanban Vs Scrum日本語版
 
どこでもTrac Wiki
どこでもTrac WikiどこでもTrac Wiki
どこでもTrac Wiki
 
HELP ME! 説明書
HELP ME! 説明書HELP ME! 説明書
HELP ME! 説明書
 
Help Me!
Help Me!Help Me!
Help Me!
 
Rodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜRodから聞いたことを全部話すぜ
Rodから聞いたことを全部話すぜ
 
5分で分かるSpringDMとS2AP
5分で分かるSpringDMとS2AP5分で分かるSpringDMとS2AP
5分で分かるSpringDMとS2AP
 
Spring Dynamic Modules
Spring Dynamic ModulesSpring Dynamic Modules
Spring Dynamic Modules
 

EclipSky200712

  • 3. アジェンダ 連絡事項  20:00 まで借りています  その後懇親会 / 忘年会やりたいです。  特に予約はしてません。自由参加です  自己紹介  プラグインのコードを読むには ( 基礎編 / こんぴろ )  EclipseSpy のコードを読んでみる ( 毛利さん )  EclipsePlatform のコードを読むには ( 深海編 / こ  んぴろ )
  • 4. 今回の自己紹介 新規ご参加 ITEngineer さん  その他リピーターさんいらっしゃい  でもやるよ自己紹介 
  • 5. お題 ( お一人様最大 5 分 ) お名前 (HN でもいいですよ )  普段のお仕事  母国語 ( プログラミング言語 )  ソースコード読んでます or 書くだけです or そう  いうお仕事ではありません etc...
  • 6. へたこいた orz 1 枚ペらシート用意お願いするのわすれたー!  次回こそ必ず ! 
  • 7. こんぴろの場合 近藤寛喜と申します  お仕事 :EclipseRCP を使ったアプリ開発  言語変遷 C+Pascal+Fortran( 学校 )→PHP  +SQL( 文化祭 )→VHDL/Ada( オブジェクト指向と 出会う )→EmacsLisp→Perl( 研 究 )→Python(Zope)→Java( お仕事 )→Ruby( 読 むよ !) そーすこーどは読み物です。  書いたものは作品です。  英語にチャレンジ中 
  • 8. みなさんどうぞ! 時計回りで。 
  • 9. ソースコード読んでますか ? ソースコードを読む利点  コンテキストって聞いたことありませんか ?  オブジェクト指向言語ではよく出てきます。  例 servletContext(J2EE)  例 Context(.NET)  その場の状態などを知っているもの = コンテキスト  ソフトウェアに携わるものにとっての「空気」  ソースコードを読んでいないとコミュニケーションしづら  い ( 形式手法 ( 仕様記述言語 ) でも同じ )
  • 11. アジェンダ 環境整備  プラグインを彩るライブラリについて知っておく  プラグインの基礎情報を知る  依存関係について  拡張ポイントから攻める  PDE の使い方を共有する  ( っていうか、未だによくわからん ) 
  • 12. 環境整備 Eclipse 3.3 から環境ごとの配布になりました。  プラグインのソースを読む場合は以下  Eclipse for RCP/Plug-in Developers  Eclipse Classic  その他 EclipseSpy を入れておくと便利です。  kojihaji さんバックポートありがとう  https://bugs.eclipse.org/bugs/show_bug.cgi?  id=210162
  • 13. プラグインを彩るライブラリ Eclipse は UI に Swing/AWT を使いません  JFace/SWT を使います。  org.eclipse.swt や org.eclipse.jface のパッケージ  よくわかんないクラスは基本ぐぐる(やっぱり重要)  プラグインのベースについて知っておく  Equinox(OSGi) を使ってるということ程度 
  • 14. プラグインの基礎情報について知る 依存関係について  プラグインは基本的に既存のプラグインに機能を追加  していく 「 Plugin Registry 」ビューから「 Open Dependency 」  で依存しているプラグインを見られます。 もちろん PDE エディタでも見られます  拡張ポイントについて  既存のプラグインが機能を追加されるポイント  org.eclipse.ui.views とか org.eclipse.ui.editors とか 
  • 15. ui プラグインと何もないプラグイン について ほとんどのプロジェクトで JUnit で自動テストをして  います。 Mylyn/ECF は CI もやってます。  http://mylyn.eclipse.org/bitten/  テスト容易性を上げるため、 ui 関係のライブラリが  必要なプラグインとそうではないプラグインとで分 けられています。
  • 16. 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
  • 17. EclipseProject のコードを読む 行儀の悪いプロジェクトはソースを添付したものを  公開してない CVS から落とすべし  各プロジェクトでリリース時に打たれたタグを元に  探す
  • 18. 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) 
  • 19. PDE の使い方 プラグインの依存関係や拡張ポイントを探すため  のパースペクティブ Ui の拡張は Spy を使うと激しく便利  みなさんどうやって使われてますか ? 
  • 21. EclipsePlatform のコードを読む ( 深海編 ) こんぴろより
  • 22. なぜ EclipsePlatform か もはや Eclipse はただの IDE はない。  ポータブルに持ち運べる「環境」  Rich Ajax Platform  Rich Server Platform 
  • 23. EclipseLauncher 各プラットフォームごとにランチャーを作成  プロジェクト内で各プラットフォームごとにソースがある  EclipsePlatform の org.eclipse.equinox.executable  にソースコードがある JRE 用のパスを用意するとそっちを参照したり、実は起  動スプラッシュと EclipseWorkbench の起動は別のプ ロセスで立ち上がってるとかおもしろい
  • 24. Equinox Eclipse の基盤フレームワーク  ソースは添付済み  どうやってクラスをロードしているのか  どうやってプラグイン間の依存関係を作成しているのか  OSGi コンソールへのコマンドの追加方法  どんな風に Eclipse が起動しているのか 
  • 25. その他 org.eclipse.equinox.registry  拡張ポイントのプラグイン  org.eclipse.update  更新サイト用のプラグイン  だけと思いきや、起動時にプラグインを読み込むプラグ  イン