<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>PHPスクール:::PHPアカデミー 東京校</title>
    <link>http://php.pcoach.jp/</link>
    <description>PHPアカデミー</description>
    <!-- optional tags -->
    <language>ja</language>           <!-- valid langugae goes here -->
    <generator>Nucleus CMS v3.24</generator>
    <copyright>ｩ</copyright>             <!-- Copyright notice -->
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://php.pcoach.jp/images/php/logo.gif</url>
      <title>PHPスクール:::PHPアカデミー 東京校</title>
      <link>http://php.pcoach.jp/</link>
    </image>
    <item>
 <title><![CDATA[綺麗なソースコード]]></title>
 <guid>http://php.pcoach.jp//item/3669</guid>
 <link>http://php.pcoach.jp//item/3669</link>
<description><![CDATA[きれいなソースコードを書けるようになるためには<br />
<a href="http://blog.shibu.jp/article/28983162.html">http://blog.shibu.jp/article/28983162.html</a><br />
<br />
<b>A:きれいな設計</b><br />
一次創造　二次創造というアプローチで解決説明できます。<br />
<br />
世の中のモノや行動には一次創造と二次創造によって説明できます。<br />
一次創造とは、「チャーハン作ろう」とか「字を書こう」とかプランを作成すること。<br />
二次創造とは、「フライパンに油を引くこと」とか「字を書いているとき」といった実行すること。PLAN-DO-SEEフレームワークで言う、PLANとDOです。<br />
<br />
<br />
テーマとなるソースコードは、プログラムを書くという一次創造による二次創造の結果です。二次創造によってできたソースコードが綺麗に書かれているためにはその一次創造である設計がきれいでなくてはなりません。<br />
<br />
要は、こうなる。<br />
きれいなPLAN -> きれいなDO -> きれいなPLAN -> きれいなDO -> きれいなソースコード<br />
<br />
大本となるビジネスプランが綺麗であり、その次の要件定義や設計が綺麗であり、それを綺麗に実装すれば綺麗なソースコードができあがると思います。]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=3669</comments>
 <pubDate>Thu, 14 May 2009 16:15:40 +0900</pubDate>
</item>

<item>
 <title><![CDATA[PHPのerror_report]]></title>
 <guid>http://php.pcoach.jp//item/2726</guid>
 <link>http://php.pcoach.jp//item/2726</link>
<description><![CDATA[PHPパーサ内部ではいろいろなエラーが出力されます。それらのエラーは重要度に応じていくつかの種類があります。また、ユーザが自分で発生させたエラーにも重要度をつけられます。本文ではこの重要度をエラーレベルと呼びます。エラーレベルはphp.iniでも定義できますし、error_report関数などでも設定できます。<br />
<br />
詳細はこちら：<a href="http://jp.php.net/error_reporting" rel="nofollow">http://jp.php.net/error_reporting</a><br />
<br />
今回は、E_NOTICEのエラーレベルを出力するか否かについて議論したいです。<br />
E_NOTICEはすごい細かい情報を出してくれて、バグの混入リスクを下げる利点があるのに対し、PHPの利点でもあるコードの柔軟性（適当なコードでも動く）が失われてしまい、開発スピードが低下したり、コードが見づらくなってしまいます。<br />
<br />
では、周りではどうなっているかを調査してみます。<br />
<br />
<dl><br />
<dt>php-5.2.5のphp.ini-recommended</dt><br />
<dd>error_reporting  =  E_ALL</dd><br />
</dd><br />
<dt>php-5.2.5のphp.ini-php.ini-dist</dt><br />
<dd>error_reporting  =  E_ALL & ~E_NOTICE</dd><br />
<dt>はてなーのみなさん</dt><br />
<dd>多い方が、「E_NOTICEを出していない」<br /><img src="http://q.hatena.ne.jp/enquetegraph?qid=1222338708&qnum=1&size=160" /></dd><br />
<dt>Unohラボは出してる見たい</dt><br />
<dd><a href="http://labs.unoh.net/2006/11/e_notice.html" rel="nofollow">http://labs.unoh.net/2006/11/e_notice.html</a><br />
<dt>なんかばんざい（E_NOTICEを出すのに反対しているみたい）</dt><br />
<dd><a href="http://tt25.org/blog/20080510/php-e-notice">http://tt25.org/blog/20080510/php-e-notice</a><br />
</dl><br />
<br />
次に、E_NOTICEを出したときの利点と欠点を整理します。<br />
<dl><br />
<dt>利点</dt><br />
<dd><br />
<ul><br />
<li>未定義変数を発見できる</li><br />
</ul><br />
</dd><br />
<br />
<dt>欠点</dt><br />
<dd><br />
<ul><br />
<li>定義されていないhashのキーを参照するとエラーになってしまう。定義されているかわからないキーを使うときには、変数へアクセスするためのwrapperが必要になるだろう。</li><br />
</ul><br />
</dd><br />
（追記があったら教えて下さい）<br />
<br />
<br />
上記の反論：<br />
未定義変数の発見→PHPEclipseなどのエディタを使うことで発見できるから、コンパイラでチェックしなくてもいい。<br />
<br />
<br />
まとめ：いまのところ、E_NOTICEを出力する決定的な強みはないのでプロジェクトの好みで使えばいいと思う。<br />
<br />
考察：E_NOTICEの回避方のノウハウなどがほとんど無いから、一般ではあんまり使われて無いだろうなぁ。PHPのデフォルトでもE_NOTICEは無効になっているし。<br />
]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=2726</comments>
 <pubDate>Fri, 26 Sep 2008 11:09:27 +0900</pubDate>
</item>

<item>
 <title><![CDATA[ソフトウェア設計哲学]]></title>
 <guid>http://php.pcoach.jp//item/1581</guid>
 <link>http://php.pcoach.jp//item/1581</link>
<description><![CDATA[最近この本を読んでいる。<br />
<br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=matsubokkur06-22&o=9&p=8&l=as1&asins=489100455X&fc1=000000&IS2=1&lt1=_blank&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
<br />
洋書の日本語訳です。amazonの評価が高かったので買ってみました。<br />
<br />
今日は、いいフレーズを見つけたので紹介します。<br />
「複雑さへの対処は、ソフトウェア開発における技術面での最も重要なテーマである。」<br />
<br />
構築するシステムが大きくなってくると実装する項目も多くなってくる。また、ソフトウェアへのも複雑になってくる。<br />
<br />
設計で一番重要だと最近思っているのは、<br />
<strong>複雑な要求をシンプルに設計する。</strong><br />
こと。複雑な要求をそのままシステムへ落とし込むことは簡単。だって、要求をそのままコードに落とせばいいだけだから。しかし、要求の本質、今後の拡張性、他のコンポーネントとの依存性、重複性、その機能自体の役割、といったいろいろな視点でソフトウェアを考え、設計することはとても難しい。<br />
<br />
一度だけ設計して、システムをくみ上げるのと、日々機能を拡張するソフトウェアでは、100倍ぐらい後者の難易度が高い。<br />
<br />
建築にたとえると、前者は「10階建てのビルをくみ上げる」。　後者は、最初は「2階建ての建物でいいけど、今後、増築する可能性がある」ということで、増築の内容は不明である。5階分の増築があることを見越して設計しても、10階分の増築があると大変だ。基礎から作り直すことになってしまう。<br />
<br />
ソフトウェアの設計は奥が深い。]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=1581</comments>
 <pubDate>Thu, 31 Jan 2008 00:29:22 +0900</pubDate>
</item>

<item>
 <title><![CDATA[MySQLのトランザクション]]></title>
 <guid>http://php.pcoach.jp//item/1575</guid>
 <link>http://php.pcoach.jp//item/1575</link>
<description><![CDATA[ストレージエンジンがInnoDBの場合はトランザクションを使えます。<br />
そのトランザクションを使うときの定義を一言でまとめると、<br />
<br />
「外部キーが張ってあるテーブル間で、deleteかupdateを発行するとき」<br />
と定義できます。<br />
<br />
トランザクションの説明は掲載されていますが、トランザクションを使うときの明確な定義が記載されていない場合が多いため、記載しておきます。<br />
]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=1575</comments>
 <pubDate>Mon, 28 Jan 2008 18:41:30 +0900</pubDate>
</item>

<item>
 <title><![CDATA[MySQLのYEAR型]]></title>
 <guid>http://php.pcoach.jp//item/1293</guid>
 <link>http://php.pcoach.jp//item/1293</link>
<description><![CDATA[MySQLのYEAR型が変！<br />
http://dev.mysql.com/doc/refman/5.0/en/year.html<br />
<br />
0を文字列として入れると、2000になったり、99を入れると1999になったりするみたい。<br />
予期しないバグが発生する可能性があるため、YEAR型は使わない方がよさげ。<br />
<br />
年だけを保存するカラムは、unsigned medium intがよさげ。]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=1293</comments>
 <pubDate>Sun, 18 Nov 2007 20:22:16 +0900</pubDate>
</item>

<item>
 <title><![CDATA[卒業生]]></title>
 <guid>http://php.pcoach.jp//item/1066</guid>
 <link>http://php.pcoach.jp//item/1066</link>
<description><![CDATA[先日のレッスンで、PHPアカデミー初の卒業生が誕生しました。<br />
<br />
生徒の方は、システム開発会社の経営者の方で、週に1、2回ほど遠方から足を運んでいただいていました。PHPアカデミー初の生徒だったので生徒が満足できる知識を伝えられるか心配でしたが、マンツーマンで教えることによって、生徒が納得するまでとことん教えられたと思っております。<br />
<br />
最後にいただいた感想では満足していらっしゃるとの言葉をいただき、安心しました。IT業界のスピードはとても速いので日々新鮮な知識を得て、お役に立てるように引き続き精進していきます。]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=1066</comments>
 <pubDate>Wed, 26 Sep 2007 14:15:12 +0900</pubDate>
</item>

<item>
 <title><![CDATA[MySQLのOSごとのパフォーマンス]]></title>
 <guid>http://php.pcoach.jp//item/1019</guid>
 <link>http://php.pcoach.jp//item/1019</link>
<description><![CDATA[MySQLのベンチマークについて調査していたら、OSごとにベンチマークを行っているサイトがあったので紹介します。<br />
<br />
OSごとにベンチマークをとるのはかなりの手間なので役立ちます。<br />
<br />
Comparing MySQL performance<br />
<a href="http://www.linux.com/articles/41348">http://www.linux.com/articles/41348</a><br />
<br />
<br />
Net BSD2.0が一番早いですが、それ以降はLinux系があり、大きく開いてFree BSDがあります。特にNet BSDを使う理由が無ければLinux使っておけばいいっしょ。<br />
<img src="http://www.linux.com/var/slashimages/32f570dd606d7b23156f0ce9c3816ddf.gif" alt="graph" /><br />
]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=1019</comments>
 <pubDate>Thu, 13 Sep 2007 14:07:26 +0900</pubDate>
</item>

<item>
 <title><![CDATA[Yahoo UI　（YUI)]]></title>
 <guid>http://php.pcoach.jp//item/922</guid>
 <link>http://php.pcoach.jp//item/922</link>
<description><![CDATA[ここ2日ぐらい、Yahoo UIの利用用途について調べてました。<br />
<a href="xml-rss2.php/nucleus/index.php?imagepopup=2/20070824-WS0358.JPG&amp;width=1387&amp;height=853&amp;imagetext=Yahoo+UI" onclick="window.open(this.href,'imagepopup','status=no,toolbar=no,scrollbars=no,resizable=yes,width=1387,height=853');return false;" class="thumbnail"><a href="http://n.pcoach.jp/nucleus/media/thumbnail/2_20070824-WS0358.JPG">Yahoo UI</a></a><br />
<br />
<a href="http://developer.yahoo.com/yui/">YahooUI</a>では以下のような機能たちがそろってます。<br />
Web2.0的なWebを作る上で必要なユーザインターフェイスを簡単に構築できそうです。<br />
    * Animation Utility<br />
    * Browser History Manager beta<br />
    * Connection Manager (for XHR/Ajax)<br />
    * DataSource Utility beta<br />
    * Drag and Drop Utility<br />
    * Element Utility beta<br />
    * ImageLoader Utility [experimental]<br />
    * The YUILoader Utility beta<br />
    * The YUI Test Utility beta<br />
<br />
確かにこれらのライブラリはすばらしいのですが、利用する側が書くコードも思った以上に膨大になることがわかりました。<br />
<br />
利用者側のイメージとしては、必要最低限の記述をすれば使えて、高度な機能を使う場合は付加情報を与えるというのが理想です。しかしながら、毎回YahooUIではライブラリの初期化や、イベントハンドラに登録しなければ行けなかったり無駄な作業を多くしなければなりません。<br />
<br />
費用対効果が見いだせませんでした。もっと利用者にとって使いやすい設計にしてほしいですね。<br />
その点、<a href="http://www.google.com/apis/maps/">Google Maps API</a>は利用者のことをとてもよく考えていて使いやすいです。]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=922</comments>
 <pubDate>Fri, 24 Aug 2007 17:25:15 +0900</pubDate>
</item>

<item>
 <title><![CDATA[PHP初心者の勉強法]]></title>
 <guid>http://php.pcoach.jp//item/851</guid>
 <link>http://php.pcoach.jp//item/851</link>
<description><![CDATA[先週、レッスンの時に以下のような相談をされました。<br />
「本を読み進めて勉強しているんだけど、何が要点かわからない。同じ事をやるのに2つ例が示されていて、どちらがいい方なのかわからない」<br />
<br />
全体を把握していない、初心者にとっては、いろいろ示されてもわかりづらいと思います。<br />
初心者に対しての本ならば、一本筋を通して書いて欲しいと感じました。<br />
「これやって、あれやって、これを覚えて」とか。<br />
<br />
そこで、おすすめするのがPHPの本家サイトにあるドキュメントです。<br />
<a href="http://www.php.net/manual/ja/">http://www.php.net/manual/ja/</a><br />
<br />
比較的わかりやすく書かれています。　公式ドキュメントってなんだか取っつきにくいかもしれませんが一読の価値はあります。<br />
サンプルコードとともにわかりやすく解説されています。<br />
<br />
<br />
書籍を買うときは、amazonなので書評を読んでから買うことをおすすめします！<br />
最近は、技術書の品質が悪い本も多く見受けられますので、事前に調査して購入することをお勧めします。<br />
<br />
私が勉強し始めた頃は、PHPの本は2冊しか発行されていなかったので選択肢はありませんでしたが、品質はとても良かったです。何度も繰り返して参照しました。わからないことがあったら、速攻googleで調べていました。]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=851</comments>
 <pubDate>Mon, 6 Aug 2007 13:20:42 +0900</pubDate>
</item>

<item>
 <title><![CDATA[相性問題]]></title>
 <guid>http://php.pcoach.jp//item/588</guid>
 <link>http://php.pcoach.jp//item/588</link>
<description><![CDATA[今日は、独り言です。<br />
<br />
apache 2.2.4 +.PHP 5.2.2で挙動がおかしくなります。。。。<br />
自分のところだけかもしれませんが、2台の別サーバで不具合が起こりました。<br />
<br />
どんな具合だったかというと、不定期にプロセス数が増加してゆき、それにつられてロードアベレージもあがります。<br />
そして、HTTPでapacheにアクセスしても応答が無くなります。<br />
<br />
apacheにはエラーログははかれていませんでした。<br />
<br />
解決策はapacheを再起動するのみです。<br />
<br />
<br />
<br />
open sourceのソフトウェアはサポートも保障もないのでテストはしっかり自己責任で行わなければなりません。<br />
PHPなどのオープンソースソフトウェアでの開発はPHPだけに精通しているだけではなく、PHPに関係するソフトウェアも把握しておかなければ問題が起きたときに対処ができなくなってしまいます。<br />
<br />
運用環境へ不具合を持ち込まないためには運用環境にできるだけ近いテスト環境を構築するべきです。<br />
上記のような、よくわからない不具合がたまーに発生します。それを回避するためには実際に使ってみるしかありません！<br />
<br />
Linux,apache,MySQL,PHPこの4つがちゃんと動いてこそ、安定したプログラムを書けるようになります。]]></description>
 <category>General</category>
<comments>http://php.pcoach.jp/index.php?itemid=588</comments>
 <pubDate>Mon, 18 Jun 2007 02:34:49 +0900</pubDate>
</item>


  </channel>
</rss>