ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changes between Version 8 and Version 9 of pne-book-9-5


Ignore:
Timestamp:
Mar 19, 2008, 3:28:18 PM (12 years ago)
Author:
imoto
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • pne-book-9-5

    v8 v9  
    1919
    2020OpenPNE2でユニコード化された理由としては多くの需要があったことと、OpenPNEを日本だけではなく、世界の人にも使ってもらえるようにと思い、開発しました。そして、今回OpenPNE3でも多くの要望や意見を交えながら、バージョンアップの開発に踏み切っています。[[BR]]
    21 このバージョンアップで多くの機能を取り入れていく予定なので、その目玉機能についてみていきましょう。
    22 
    23 == 目玉機能 ==
     21このバージョンアップで多くの機能を取り入れていく予定なので、その注目機能についてみていきましょう。
     22
     23== 注目機能 ==
    2424
    2525・フレームワーク採用[[BR]]
     
    2828・外部連携(OpenID、OpenSocial)[[BR]]
    2929
    30 OpenPNE3にもいくつか目玉機能があります。[[BR]]
    31 それではそれぞれについて簡単に解説していきます。[[BR]]
     30OpenPNE3にもいくつか注目機能があります。[[BR]]
     31それではそれぞれの注目機能について簡単に解説していきます。[[BR]]
    3232
    3333
     
    3737 しかし、ドキュメントの不足や設計なども問題から、なかなか開発者に受け入れてもらいにくいという現状もあります。OpenPNEはPHPフレームワークを開発しているわけでないのでフレームワークについてのドキュメントを書くなら少しでもOpenPNEの開発をしたいという思いがあり、これまでフレームワークについてのドキュメントはありませんでした。[[BR]]
    3838 しかし、OpenPNEがここまで世の中に広まり、今後もより良いものにしていくためには多くの開発者と共に作り上げないと考えています。[[BR]]
    39  そこで、このOpenPNE3では独自のフレームワークではなく、外部開発のフレームワークを採用したいと考えました。外部のフレームワークを採用することにより、まずフレームワークについてのドキュメント整備が必要なくなります。そして、慣れ親しんだフレームワークを採用することにより、多くの開発者と共に開発することが出来るという点もあります。[[BR]]
    40  また、最近は簡単で迅速に開発できるフレームワークも増えてきました。この様な迅速に開発できるフレームワークを採用することによりOpenPNEの開発スピードを上げたいといういもあります。[[BR]]
     39 そこで、このOpenPNE3では独自のフレームワークではなく、外部開発のフレームワークを採用したいと考えました。外部のフレームワークを採用することにより、まずフレームワークについてのドキュメント整備が必要なくなります。そして、慣れ親しんだフレームワークを採用することにより、多くの開発者と共に開発することができるという点もあります。[[BR]]
     40 また、最近は簡単で迅速に開発できるフレームワークも増えてきました。この様な迅速に開発できるフレームワークを採用することによりOpenPNEの開発スピードを上げたいといういもあります。[[BR]]
    4141 
    4242 
     
    4444 そのフレームワークとは、「CakePHP」「symfony」「ethna」「ZendFramework」「maple」「CodeIgniter」です。
    4545 
     46 [[Image(https://trac.openpne.jp/svn/prj/pne-book/pne-book-9/pne-book-9-5/GoogleTrends.png,650)]]
     47 
     48 
    4649 実績、Googleトレンドでの比較、実際に簡単なアプリケーションを作ってみての結果、今のところOpenPNE3に採用するフレームワークはsymfonyになりました。
    4750 
    48  ただ、やはりいくつか越えなければならない懸念点もあります。それはフレームワークならではの表示の遅さです。[[BR]]
    49  特にsymfonyは多くの設定ファイルを読み込むため、普通のフレームワークより表示が遅いと言われています。しかし、symfonyにはその遅さをカバーできるだけの強力なキャッシュ機能を備えているので、そのキャッシュ機能を活かしていきたいと考えています。
     51 ただ、やはりいくつか越えなければならない懸念点もあります。一番の懸念点は現在のパフォーマンスを維持、そして高めることができるかということです。[[BR]]
     52 特にsymfonyは多くの設定ファイルを読み込むため、普通のフレームワークより表示速度が遅いと言われています。しかし、symfonyにはその遅さをカバーできるだけの強力なキャッシュ機能を備えているので、そのキャッシュ機能を活かしていきたいと考えています。
    5053 
    5154 また、symfonyはCakePHPなどと違いPHP4では動作しません。つまり、PHP5以上でなければなりません。フレームワークの選定に入った当初はこの点は非常に懸念点でした。なぜなら、レンタルサーバがほとんどPHP4だったからです。しかし、2007年7月にPHPコミュニティで、PHP4のメンテナンス終了に関して発表があり、2007年12月31日をもって、PHP4の機能追加を終了し、2008年8月8日にはセキュリティパッチの提供も終了という通知が出されました。[[BR]]
     
    6669 しかし、テンプレートが見にくく開発スピードが上がらないなどの点からこのOpenPNE3ではテンプレートのXHTML+CSS化に取り組むことにしました。
    6770 
    68  このXHTML+CSS化はOpenPNE2.0のころから要望があったのですが、なかなか実現出来ていない機能でした。すでにOpenPNE2.12でXHTML+CSS化にに取り組み始めています。そして、OpenPNE3では完全にXHTML+CSS化している予定です。[[BR]]
     71 このXHTML+CSS化はOpenPNE2.0のころから要望があったのですが、なかなか実現できていない機能でした。すでにOpenPNE2.12でXHTML+CSS化にに取り組み始めています。そして、OpenPNE3では完全にXHTML+CSS化している予定です。[[BR]]
    6972 このXHTML+CSS化により、ソースコードの量が格段に減ります。[[BR]]
    7073 一番少ないテンプレートでは、ソースコード量が約3分の1まで減ります。
     
    9699 OpenPNE2からユニコード化し、ソースコードレベルでは国際化していました。[[BR]]
    97100 確かにOpenPNE2でユニコード化したことで多くのSNSに採用されることになりました。しかし、もっと多くの人に使ってもらいたいという思いからOpenPNE3では本格的に国際化のに取り組みます。[[BR]]
    98  具体的に、国際化とはメニューなどを日本語だけではなく各国の言語にしていきたいと考えています。この国際化の取り組みにより、あまりプログラミングの知識を必要としない海外の人もテンプレートやソースコードを触ることなく、簡単にSNSを立ち上げることが出来る様になります。
     101 具体的に、国際化とはメニューなどを日本語だけではなく各国の言語にしていきたいと考えています。この国際化の取り組みにより、あまりプログラミングの知識を必要としない海外の人もテンプレートやソースコードを触ることなく、簡単にSNSを立ち上げることができるようになります。
    99102 
    100103 国際化にあたり、まずは英語版OpenPNEをリリースすることを目標にしています。[[BR]]
     
    106109 === 外部連携 ===
    107110 この外部の連携はOpenPNE2でも取り組んできました。[[BR]]
    108  そのOpenPNE2で取り組んでたものとはOpenPNEAPI、小窓、MasterPNE、SlavePNEです。[[BR]]
     111 そのOpenPNE2で取り組んでたものとはOpenPNEAPI、小窓、MasterPNE、SlavePNEです。[[BR]]
    109112 最近はOpenPNEと何か他の外部アプリケーションを一緒に使いたいという要望もあります。[[BR]]
    110113 その様な要望に答えるべく、ID連携のためにOpenIDに対応していきたいと考えています。[[BR]]
    111  現在もOpenPNEのID連携は出来ます。しかし、現在のID連携はSlavePNEを中心としたID連携です。しかし、今後はMasterPNEでのID連携も強化するためにOpenIDに対応していきたいと考えています。[[BR]]
     114 現在もOpenPNEのID連携はできます。しかし、現在のID連携はSlavePNEを中心としたID連携です。しかし、今後はMasterPNEでのID連携も強化するためにOpenIDに対応していきたいと考えています。[[BR]]
    112115 また、Googleが提供するSNS向けのアプリケーションAPIであるOpenSocialにも対応していく予定です。[[BR]]
    113116 この2つの機能に関してはすでにプロジェクト化しある程度実装も進んでいるので詳しく解説していきます。[[BR]]
     
    116119  ==== OpenID ====
    117120 
    118   OpenIDとはWEBサイトを超えて認証システムを構築できるシステムです。[[BR]]
     121  OpenIDとはWebサイトを超えて認証システムを構築できるシステムです。[[BR]]
    119122  OpenPNEがOpenIDに対応することで、外部のアプリケーションとのID連携が容易になります。[[BR]]
    120123  OpenPNEにおけるOpenIDの対応方法は2パターン考えられます。[[BR]]
     
    122125 
    123126  OpenPNEがOpenIDのプロバイダになると、OpenIDに対応する外部サービス、ソフトウエアに対して認証情報を提供できるようになります。[[BR]]
    124   例えば、OpenPNEにログインしている人だけ、MediaWikiが編集出来たり、OpenPNEにログインしている人だけ、MovableTypeで立ち上げたブログにコメントをつけることが出来る様になります。 [[BR]]
    125  
    126   OpenPNEがOpenIDのカスタマになると、他のOpenIDプロバイダのURLでOpenPNEにログイン出来る様になります。例えば、ライブドアのアカウントで、OpenPNEにログイン出来たり、OpenID.ne.jpのアカウントで、OpenPNEにログイン出来る様になります。[[BR]]
     127  例えば、OpenPNEにログインしている人だけ、MediaWikiが編集できたり、OpenPNEにログインしている人だけ、MovableTypeで立ち上げたブログにコメントをつけることができるようになります。 [[BR]]
     128 
     129  OpenPNEがOpenIDのカスタマになると、他のOpenIDプロバイダのURLでOpenPNEにログインできるようになります。例えば、ライブドアのアカウントで、OpenPNEにログインできたり、OpenID.ne.jpのアカウントで、OpenPNEにログインできるようになります。[[BR]]
    127130 
    128131  まずはOpenPNEがOpenIDのプロバイダになるための実装から開発を行っています。[[BR]]
     
    140143 
    141144  ==== OpenSocial ====
    142   OpenSocialとはGoogleが提供するSNS向けのアプリケーションAPIです。 SNSの中にWEBアプリケーションを埋め込むために使います。[[BR]]
     145  OpenSocialとはGoogleが提供するSNS向けのアプリケーションAPIの共通仕様です。[[BR]]
    143146  OpenSocialはJavaScriptと単純なHTMLで動作します。[[BR]]
    144147  現在OpenSocialが対応しているのは、プロフィール情報の吐き出し、フレンドリンク情報の吐き出し、新着情報の吐き出しです。
    145148 
    146   この機能が実現出来る様になれば、iGoogleに新着情報を出すことが出来る様になりSNSの利用がますます便利になります。
     149  この機能が実現できるようになれば、iGoogleに新着情報を出すことができるようになりSNSの利用がますます便利になります。
    147150 
    148151  [[Image(https://trac.openpne.jp/svn/prj/pne-book/pne-book-9/pne-book-9-5/igoogle.png,650)]]
     
    162165== OpenPNE3になることによってどう変わるか ==
    163166OpenPNE2がOpenPNE3になって誰にどのような形で影響を与えるのかという視点で考えていきたいと思います。[[BR]]
    164 今回は、開発者、オーナー、ユーザーの三者の視点からOpenPNE3がどの様に影響を与えるのかを解説します。OpenPNE3のキーワードである「フレームワーク採用」「XHTML+CSS化」「国際化」「外部連携」の4点を中心に見ていきます。
     167今回は、開発者、オーナー、ユーザーの三者の視点からOpenPNE3がどの様に影響を与えるのかを解説します。OpenPNE3のキーワードである「フレームワーク採用」「XHTML+CSS化」「国際化」「外部連携」の四つの中で影響を与えそうな機能を中心に見ていきます。
    165168
    166169
     
    171174  これまでOpenPNEにはフレームワークのドキュメントなどは一切ありませんでした。ドキュメントを書かなかった理由としては、ドキュメントを書くよりOpenPNEのソースコードを一行でも書く方がいいと考えていたからです。OpenPNEはPHPフレームワークを作っている訳ではないので、PHPフレームワークの設計などはsymfonyに任せることで、SNSエンジンの設計に集中できます。
    172175 
    173   また、symfonyをフレームワークに採用した場合は、O/Rマッパーなどを使用することで迅速に開発を進めることが出来ます。まず、迅速に開発をして、表示が遅いようであれば直接SQLを書き直したりキャッシュ機能を使って負荷を軽減することも出来ます。
     176  また、symfonyをフレームワークに採用した場合は、O/Rマッパーなどを使用することで迅速に開発を進めることができます。まず、迅速に開発をして、表示が遅いようであれば直接SQLを書き直したりキャッシュ機能を使って負荷を軽減することもできます。
    174177 
    175178 
     
    180183  ==== 国際化 ====
    181184  国際化により、多くの人にOpenPNEを使用してもらえる機会が増えます。そして、国際化を足ががりに日本だけではなく、海外の人も巻き込んで一緒にOpenPNEを開発していくことも可能になります。[[BR]]
    182   現在OpenPNEは国内で開発されて国内で使用されています。しかし、OpenPNE3で国際化することで、世界中の人で開発され世界中の人に使用されるソフトを目指すことが出来る様になります。 
     185  現在OpenPNEは国内で開発されて国内で使用されています。しかし、OpenPNE3で国際化することで、世界中の人で開発され世界中の人に使用されるソフトを目指すことができるようになります。 
    183186 
    184187 === オーナー ===
    185188  ==== フレームワーク採用 ====
    186   もしフレームワークにsymfonyを採用した場合、スペックの低いレンタルサーバだと非常に重くなる可能性はあります。しかし、symfonyには強力なキャッシュ機能が備わっているのでそのキャッシュ機能でカバー出来ると考えています。[[BR]]
     189  もしフレームワークにsymfonyを採用した場合、スペックの低いレンタルサーバだと非常に重くなる可能性はあります。しかし、symfonyには強力なキャッシュ機能が備わっているのでそのキャッシュ機能でカバーできると考えています。[[BR]]
    187190  また、symfonyを採用した場合はPHPのバージョンがPHP5である必要があります。現在、レンタルサーバはPHP4が多いですが、PHP4のサポートがなくなるという発表があったことで今後PHP5への以降が盛んになると思われます。
    188191 
    189   symfonyを採用することによりOpenPNE本線の開発スピードが上がればそれによってより多くの機能が使えたりOpenPNEが便利になったりと恩恵を受けることが出来ます。
     192  symfonyを採用することによりOpenPNE本線の開発スピードが上がればそれによってより多くの機能が使えたりOpenPNEが便利になったりと恩恵を受けることができます。
    190193 
    191194  ==== XHTML+CSS化 ====
    192   XHTML+CSS化によりソースコードが見やすくなります。これまでテンプレートはソースコード量が多く、どこに何が書いているのか分からない状態で修正などをしたい場合も手を加えることが困難だったが、XHTML+CSS化されることで、あまり知識がない人も簡単なテンプレートの修正を行うことが出来ます。
     195  XHTML+CSS化によりソースコードが見やすくなります。これまでテンプレートはソースコード量が多く、どこに何が書いているのか分からない状態で修正などをしたい場合も手を加えることが困難だったが、XHTML+CSS化されることで、あまり知識がない人も簡単なテンプレートの修正は行うことができます。
    193196
    194197  ==== 国際化 ====
    195   国際化によって、テンプレートなどを触る必要なく日本語以外の言語に対応したSNSを立ち上げることが出来ます。[[BR]]
     198  国際化によって、テンプレートなどを触る必要なく日本語以外の言語に対応したSNSを立ち上げることができます。[[BR]]
    196199  これまでカニチィの様な二国間SNSや国際交流SNSを立ち上げたいと考えた場合ある程度ソースコードやテンプレートを修正する必要があったのである程度の知識は必要でした。
    197   しかし、国際化することでほとんど知識がない人でも国際化したSNSを立ち上げることが出来る様になります。
     200  しかし、国際化することでほとんど知識がない人でも国際化したSNSを立ち上げることができるようになります。
    198201 
    199202 
    200203  ==== 外部連携 ====
    201   外部連携を強化することで、これまでカスタマイズが必要で強引にOpenPNEと連動させて一緒に使用していたものが簡単にOpenPNEと外部のサービスを連動させることが出来る様になります。[[BR]]
     204  外部連携を強化することで、これまでカスタマイズが必要で強引にOpenPNEと連動させて一緒に使用していたものが簡単にOpenPNEと外部のサービスを連動させることができるようになります。[[BR]]
    202205  例えば、よくOpenPNEにwikiを入れたいという話を聞きますが、wikiを直接OpenPNEに組み込むのはそれなりにカスタマイズが必要です。[[BR]]
    203   しかし、この外部連携を使えばOpenPNEとMediaWikiをOpenIDでID連携することが出来で、簡単にOpenPNEとWikiを使用することが出来ます。[[BR]]
    204   また、OpenPNEのソースコードを直接書き換えているのでOpenPNEのバージョンアップに追従できていなかったものが、外部連携でそのカスタマイズを置き換えることでOpenPNEのバージョンアップに追従できるになります。[[BR]]
    205   また、導入することが出来る機能の幅も広がるので、SNSの可能性を広げることが出来ます。
     206  しかし、この外部連携を使えばOpenPNEとMediaWikiをOpenIDでID連携することができで、簡単にOpenPNEとWikiを使用することができます。[[BR]]
     207  また、OpenPNEのソースコードを直接書き換えているのでOpenPNEのバージョンアップに追従できていなかったものが、外部連携でそのカスタマイズを置き換えることでOpenPNEのバージョンアップに追従できるようになります。[[BR]]
     208  また、導入することができる機能の幅も広がるので、SNSの可能性を広げることができます。
    206209 
    207210 
    208211 === ユーザー === 
    209212  ==== 外部連携 ====
    210   外部連携によって多くの機能を使うことが出来ます。[[BR]]
    211   ID連携をすることで、OpenPNEと同じIDで外部アプリケーションにログイン出来たり、外部アプリケーションのIDでOpenPNEにログインすることが出来る様になり、管理が楽になります。[[BR]]
    212   また、外部連携によって他のアプリケーションを使うことが出来る様になるのでSNSを便利に使用することが出来ます。[[BR]]
     213  外部連携によって多くの機能を使うことができます。[[BR]]
     214  ID連携をすることで、OpenPNEと同じIDで外部アプリケーションにログインできたり、外部アプリケーションのIDでOpenPNEにログインすることができるようになり、管理が楽になります。[[BR]]
     215  また、外部連携によって他のアプリケーションを使うことができるようになるのでSNSを便利に使用することができます。[[BR]]
    213216 
    214217  ==== レビュー機能の廃止 ====
     
    216219 
    217220  ただ、一方的にレビューを廃止するというわけではなく、現在あるレビューに関しては日記などに置き換える予定です。[[BR]]
    218   これまでのレビューというのはAmazonの商品だけでのレビューでした。しかし、これから小窓を拡張することで、Amazonの商品だけではなく他にもレビューすることが出来る様になりレビューの幅が広がります。[[BR]]
     221  これまでのレビューというのはAmazonの商品だけでのレビューでした。しかし、これから小窓を拡張することで、Amazonの商品だけではなく他にもレビューすることができるようになりレビューの幅が広がります。[[BR]]
    219222 
    220223 
     
    230233  現時点で見えてるのは、「SNSは人間関係を表現するソフト」だと考えているので、そこは見失わないでいきたいと思っています。[[BR]]
    231234 
    232   具体的には「日記」「あしあと」「コミュニティ」など、非常に面白い機能はありますが、SNSの本質を考えたときに、究極的はこれらの機能が含まれなくても良いと思います。[[BR]]
     235  具体的には「日記」「あしあと」「コミュニティ」など、非常に面白い機能はありますが、SNSの本質を考えたときに、究極的はこれらの機能が含まれなくても良いと思います。[[BR]]
    233236  この様に書くと「それじゃ面白い機能が何も無いじゃん」と誤解を受けるかも知れないが、多くの機能を中途半端に追加するより「人間関係の表現」に特化する必要があるということです。[[BR]]
    234   その「人間関係の表現」が出来てこそ、「日記」「あしあと」「コミュニティ」などの各機能がより良く機能すると考えています。だからこそ、常にSNSは何のためのソフトなのかということを意識しながら開発を進めていきたいと考えています。
     237  その「人間関係の表現」ができてこそ、「日記」「あしあと」「コミュニティ」などの各機能がより良く機能すると考えています。だからこそ、常にSNSは何のためのソフトなのかということを意識しながら開発を進めていきたいと考えています。
    235238 
    236239  ==== 一隅を照らす ====
     
    269272 === OpenPNE3への想い ===
    270273 OpenPNE3がなぜ今開発されるのか。それは端的に言えば今のOpenPNE2に限界を感じたからです。[[BR]]
    271  OpenPNE1.0系がOpenPNE2.0系へメジャーバージョンアップした時も同じです。常に良いものを追い求めていたら、いつかは枠に収まりきらなくなり大きな壁にぶち当たります。その時、その壁を突き破ることが出来なければOpenPNEは終わりだと考えています。[[BR]]
     274 OpenPNE1.0系がOpenPNE2.0系へメジャーバージョンアップした時も同じです。常に良いものを追い求めていたら、いつかは枠に収まりきらなくなり大きな壁にぶち当たります。その時、その壁を突き破ることができなければOpenPNEは終わりだと考えています。[[BR]]
    272275 
    273276 OpenPNEはこれまで多くの人に使われてきました。そして多くの方に興味を持ってもらえるようになりました。しかし、今のソースコードや設計では興味を持ってもなかなか開発に踏み切れないということもあります。[[BR]]