PHPカンファレンス関西2014
PHPでOSSを維持し
続けるには
baserCMS: 江頭 竜二 さん
concrete5 : 菱川 拓郎 さん
Drupal         : 紀野 惠さん
 
1. 初めに

2. 各位の自己紹介兼OSS紹介

3. ディスカッション


維持

 

保守

 
新機能開発
バグ対応
Version Up!

     
    OSSでは


     

    自己紹介

    OSS紹介

     

    そのOSSを一言で言うと何でしょうか?

    ほとんど管理画面からのみで
    オリジナルCMS、グループウェア、
    ECサイトなどが開発できる
    Webアプリ・フレームワーク。

    大学、政府、多国籍企業などでの
    シェアは非常に高く、熱心で巨大なコミュニティを誇っています。

    そのOSSを一言で言うと何でしょうか

    ユーザーに優しい直感的な操作と、
    デベロッパーの開発しやすさの両立を目指したオープンソースCMSです。
    もちろんPHP製です

    そのOSSを一言で言うと何でしょうか

    コンテンツ
        マネージメント
            システム
    (ホームページ
          更新システム)です

    開発体制を教えて下さい

    開発はGitHub上で行なわれています。
    メインコミッタのAndrewが全体をリードし、ほとんどのコードを書いています。
    コミュニティから約100人のコントリビューターが開発に参加しています

    開発体制を教えて下さい

    ソースコードの管理に github を利用し、バグトラッキングに redmine を利用しています。

    体制としては、開発方針や、新機能策定を行う、「コアデベロッパーズ」というチームに17名在籍し、
    フィードバックを頂けるユーザーズフォーラムには会員が約800名の登録があります。

    githubのコントリビューターは、コアデベロッパーズのメンバーの一部を含めてもまだ18名とすくないので今後増やしていきたいです。

    開発体制を教えて下さい

    33,366人のDeveloperがコアや26,778のモジュール、2,000のThemeなどをdrupal.org内のProject管理ツールで開発しています。
    VCSはgitを利用。

    また、すべてのコアとモジュールの共同翻訳システムもlocalize.durpal.org内で統合管理されています。

    コミュニティはgroups.drupal.orgというSNSにて活動。
    もちろん、これらのサイトはすべてDrupal製です。

    これまでPHPで開発を続けてきて、

    良かった点を教えてください

    メイン開発者ではないので
    なぜPHPを採用したかは分かりませんが、

    サードパーティの機能拡張の開発者を含め、
    たくさんの開発者が集まっている点は良いと思います

    これまでPHPで開発を続けてきて、
    良かった点を教えてください

    いまはDrupalを使うための言語だと思って使っています。

    コミュニティの大きさを担保するためには裾野の広いユーザーが必要なので、
    PHPを選択したのは正解だったでしょう。

    これまでPHPで開発を続けてきて、

    良かった点を教えてください

    CMSというシステムは、レンタルサーバーで
    動作させる事が多いのですが、
    PHPは数多くのレンタルサーバーで動作するので
    助かっています。

    また、情報量が多いので開発で詰まる事も少ないのもいいところ。

    個人的には、潤沢な開発予算の確保が難しいWEB業界において、PHPのゆるさがとても合っていると思います。

    現在のPHP文化に対してどう取り組んでいるか

    concrete5は今年、ここ数年のPHP文化の変化に対応する大規模なコードのリファクタリングと
    バージョンアップを行なうことになりました。

    また、すでにアプリケーションのビルドはGruntを使用するようになっています。

    リードデベロッパーも、コミュニティメンバーも、両方から新しい文化に対応していこうと言う動きがあります

    現在のPHP文化に対してどう取り組んでいるか

    急速にプロフェッショナルなDeveloper指向になっていっているので、キャッチアップするのが楽しいです。

    DrupalがSymfonyを選択したこともきっかけの一つになったのか、急速に様々なCMSがSymfonyベースに舵を切りつつあります。

    PHPフレームワークの標準化が進む可能性もあるかなと思っています。

    現在のPHP文化に対してどう取り組んでいるか

    基本的に、baserCMSは、レンタルサーバーでの動作を前提としていますので、 現在のレンタルサーバーにおけるPHPのバージョンの現状を考えると、逆に最新バージョンに対応しにくいと考えています。

    今のところのネックは、5.3以降のネームスペース対応ですが、baserCMSのフレームである、 CakePHPの次期最新バージョンがネームスペース前提となっているので、CakePHPの最新バージョン対応も含め、 こちらをどのタイミングで対応させるかが課題となっています。
    現時点では、来年の年末ぐらいが目処というところでしょうか。

    自分の目を疑うようなコードや関数、

    クラス(黒歴史)を見たことはありますか?

    concrete5のコードはきれいな方だと思いますが、
    ところどころ秘伝のforeach文とか、
    コメントも書かれているメソッドの中身がまるごとコメントアウトされてたりとか、地雷が置いてあります…。
    コードをクリーニングするプルリクエストは時々届きます。

    自分の目を疑うようなコードや関数、
    クラス(黒歴史)を見たことはありますか?

    baserCMSは、ベースとなるほとんどのコードを僕が書いているので
    「あっ」と思う時は大体過去の自分のコードですが、
    もちろんあります。

    見つけたら大体改善するのですが、
    全てをチェックする事ができず、
    現在のパッケージにも存在していると思います。

    このバージョンアップはスゴイというのを教えてください


    コンテンツの互換性はきっちり守ってきているDrupalですが、
    モジュールを多用することが前提なので、メジャーバージョンアップには苦労が伴うことがありました。

    次期Drupal8からはMigration機構がコアに入り、
    Drupal同士だけでなく他のシステムからの移行も楽になります。
    また、CMSでは初と 言って良いのですが、
    すべての管理画面からの操作がコード化され、
    コンフィグとコンテンツの分離が実現するのでCI/継続的デリバリが本格的になるでしょ う。

    このバージョンアップはスゴイというのを教えてください

    パッと思い浮かばないのですが、
    baserCMSは、
    Webシステムの開発のベースとしてや、
    Webサイトの制作のベースとして利用してもらうという前提があるので、

    API系の新機能や新概念ができた時は嬉しいです。

    このバージョンアップはスゴイというのを教えてください

    今年進行中のバージョン5.7は、
    スゴいバージョンアップになるとおもいます。

    独自のMVCフレームワークだった前バージョンから、Synfony2コンポーネントの全面的な採用、
    PSR-4クラスローダーへの対応、
    データベース抽象化レイヤーのADOdbからDoctrineへの変更、
    UIの刷新など、 
    かなり意欲的な内容になっています。

    これはスゴイというコードや関数があれば、

    紹介してください

    ウィジェット機能とそのAPIについては、
    Ajaxガリガリで、書いているのですが、
    今、そのコードを見ると、
    その時は神が降臨してたんだなと関心します。

    これはスゴイというコードや関数があれば、

    紹介してください

    現在のバージョンでもありますが、
    権限関係のクラスの実装はスゴいです。
    あらゆるオブジェクトに対して
    権限設定を行なうことができるconcrete5のCMSとしての
    特徴を支えています。

    この作業は好き、これはチョット...

    といったのがあれば教えてください

    Ajaxのコードを書くのが一番楽しいです。
    (javascriptを含め)

    ドキュメント化が一番つらいです。

    この作業は好き、これはチョット...

    といったのがあれば教えてください

    好きな作業はPHPとは関係ないですが、翻訳です。
    もともと翻訳からconcrete5のコミュニティに入ったのですが、最近はコードもコミットしています。
    主にマルチバイト言語への対応作業をしていますが、PHPはほんとマルチバイトの扱いがイマイチだな…と思います

    …iconvに統一されろ!

    PHPはバージョンアップされ、機能が追加されています。

    それに対する今後の課題を教えてください

    新しいバージョンが文句なく以前よりよくなっているので、すぐに使いたいところです。

    ただ、サポートが切れたPHPバージョンが多くのOSではまだ現役なので、

    フレームワーク側が思い切ったジャンプができないのがもったいないかなと思います。

    PHPはバージョンアップされ、機能が追加されています。

    それに対する今後の課題を教えてください

    まずは、最新版の機能を把握する事が課題なのですが、

    その前に、ネームスペースとコンポーザーになんとか対応したいと考えています。

    PHPはバージョンアップされ、機能が追加されています。

    それに対する今後の課題を教えてください

    テストやデバッガとの親和性をプロダクト側でどう取り組んでいくかと言う点は、
    コミュニティでも議論されています。

    また、CMSの製品上の特性と言いますか、古いPHPが動き続けているサーバーをどうするかは常に議論の的です。

    今回、散々議論した末にようやくPHP5.2を切れましたが、難しい問題です。


    質問!

    コミュニティの中心的な人でも、
    名前空間知らないとかそういう人もいるので、
    どうやって足並みを揃えるかというのは難しいなぁと思いますが、
    他のプロジェクトではどうしてるんでしょう?

    質問1


    議論が割れた場合は

    どう収束していきましたか?

    質問2


    (コミュニティを)

    保守的だと思いますか

    革新的だと思いますか

    質問3

    (開発)コミュニティ参加への敷居は高い?低い?

    初めるなら、どこ(何)から

    PHPカンファレンス関西2014

    ご清澄ありがとうございました