狠狠撸

狠狠撸Share a Scribd company logo
ソースコードを読んでみよう




 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

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  更新サイト用のプラグイン  だけと思いきや、起動時にプラグインを読み込むプラグ  イン