WHAT'S NEW?
Loading...
bloggerのテンプレート、いろいろいじってきたけどそろそろ限界かなー。

というわけで、やりたいことが全然出来ないbloggerから引っ越す予定。

サーバかりたので、そっちに移行するよ。
移行と言ってもデータはこのまま放置な。

改めて作りなおす。

ドメインも、ちゃんとDNS立てるのでhalteria.comに戻すよ。



おい、自分のブログの存在を忘れておった。

何ヶ月経った?

うぅむ、ずいぶんと放置してしまったようだプゥ。
 近々復活しようかな、と。

(´・ω・`)

どうでもいいけど写真は木村沙織だ。知ってるか?
ならばよし。

おっぱいおっぱい。
思いの外長くなってしまったJavaScriptの基本的な話しだけど、もう少しで終わる予定なので、Node.jsやりたくて死にそうに焦ってる君には悪いが、少しの間お付き合い願いたい。


嫌ならあっち行け。


というわけで、関数に関してもう少し基礎をおさらいしていこうと思う。


おさらいだけで終わらないように祈っていてもらえると嬉しいかもね。


さてさて、JavaScriptの基礎を続けてやっていこうと思う。

なんでNode.jsの記事なのにJavaScriptの基礎から説明するの?って思うかもしれない。

恐らく多くの人が同じように疑問を持っていることだろう。

だがしかし!!そんなどうでもいい疑問は犬が食えばいい。俺はそんな面倒くさい質問に答えたくない。

多くのブログが、『こうやったらこうなった』しか書かない、ただのノイズ記事ばっかりなことに対し、俺は『こうやったらこうなったのはこうだから』までは書きたいと思ってる。

そして『そもそも何のためにそんなことするの?』ってのも、ある程度、そう、示唆する段階でいいので、念の為に書いておきたいとは思ってる。当然そこには基礎が含まれるわけだ。

というわけで、面倒くさいけど答えてみた。

もういいよ、行ってみよう。

なんていうか、また自分のブログの存在を忘れてて、ついつい更新が滞ってしまったようだ。

恐らくそういった要素をみんなが期待してると思うので特に悪いとか思ってないのでさっさと続けよう。

さぁ、NodeJSだ。

ところで記述の話になるけど、Node.jsなのか、nodejsなのか、NodeJSなのか、よくわかってないんだけど、一体全体どういう書き方をすればいいのか?

Node.jsだけじゃなくてAngular.JSとかもそうだよね。というわけで公式サイト見てみた。

node.js

Node.jsが正解らしい。でもページタイトルは『Node.js』じゃなくて『node.js』になってるんだよなぁ。
まぁいけどさ。一応、記事のタイトル書きなおした。


さて、Nodejsだよ。時代は10年前からJavaScriptだ。

Googleのおっさんおばさん、原理主義のクソガキたちが、それをすでに証明してるじゃないか。

もうPHPとかRubyとかどうでもいいわ(言い過ぎ)!!!

というわけでNodejsなわけである。

なんでNodejs?って思うかもしれないけど、それは各位おのおの方それぞれが勝手に無断で無許可に無節操に想像しておけば良い話で、特別俺が何か言い訳をするなんてナンセンスな事はしないよ。

残念なお知らせだ。

Yiiの記事を書いてからというもの、著しくアクセス数が落ちたことと、まるで読まれていないことと、業務でYii使ってたけど部署異動でやらなくなるし、それにモチベーション的にどうでも良くなったので、この連載は一時停止するよ。

以前、MySQLで正しくランキングを作る記事と、i18nをちゃんとやる記事を途中まで書いてたんだけど、今のところ再開の見込みはゼロ。やっぱり飽きちゃったというか、今それどころじゃないよね、という体。

今回のYiiに関してはもしかしたら再開する可能性がある。なので中止じゃないんだ。あくまで『もしかしたら再開』するかもしれないレベル。でも恐らく二度とやらない気もする。

さてさて、本日もMockeryでもっこりしていこうと思う。もっこり。

まずはYiiのシェルyiicをつかって、ベースとなるアプリケーションをさっくさくに作ってしまおうか。

yiicの使い方は簡単だけど、もしわからなかったり、忘れてしまったり、自信がなくなってしまったら、公式サイトを覗いてみればいいだろう。

公式サイトはここだ。
初めに:はじめてのYiiアプリケーションの作成

で、具体的な使い方はこうなる。
framework/yiic webapp <Webアプリ名>

さて、Mockeryだ。約束通りMockeryだ。

実はPHPUnitのepubをゲットしたので、全部読んだ後にもう一度PHPUnitやろうかと思ってたんだよね。

と言うのも、実は俺自身、あんまりテストとかってしたことがなくて、その重要性とかわかっていつつも、面倒臭いの一言でやらずじまいでいたわけよ。

そりゃ10年以上(15年くらい?)ほとんど一人で開発してれば、チーム開発手法(スクラムなどのアジャイル系)なんかさっぱりわからんし、GithubだってPull Requestなんか一度も使ったことがなかった。

今勤めてる会社は規模がデカイので、当然Githubなどのチーム開発向けのサービスも使ってるし、ちゃんとコードレビューもみんなでやってる。そしてPHPUnitをつかってテストもしてるんだ。

Seleniumというテストフレームワークもつかってるので、ブラウザで自動テストなんかもできてしまう。恐ろしい世の中だ。

テストなんか学生時代で終わらせておきたかった。このまま死ぬまでテストするのかと思うとめまいがしてくるけど、テストが通った時(グリーンな状態)は思ってたより嬉しかったりするんだよね。

というわけで、テストは大事だ。本能的には『テストなんか犬が喰えクソがッ!!』って思ってるけど、建前上、『テストは大事』ってことにして話を進めるので、気分の悪いお客様はとっとと去れ。

PHPUnitというのは、いわゆるxUnit系のテストフレームワークだ。

なにを言ってるの?と思うかもしれないけど、この記事を読み終わるときには余裕で他人に語れる程度には説明しておくので安心されたし!!

というわけで早速行ってみよう。

君がプログラマだとするとよくあるパターンだろうけど、実行中のプログラムの変数の値を画面に表示させてみたりすることがあると思う。

JavaScriptならalert()を使ってみたり、PHPならvar_dump()、もしくはprint_r()だ。

頭のなかでは$fooは(int)100、$barが(string)"hogefuga"のはずなので、それを画面にプリントアウトして目で確認しようという感じだ。俺もよくやってた。むしろ今でもやってたりする。

キャメルケース(CamelCase)というのはラクダのこぶのように、アルファベットの単語の1文字目を大文字にすることだ。

例えばカナダを代表するアーティスト、アヴリル・ラヴィーンをキャメルケースで表すと、彼女の名前はアヴリル・ラモーナ・ラヴィーンなので、Avril Ramona Lavigneとなる。これのスペースを省略し、一つの文字列にしたものがCamelCaseだ。

つまり、AvrilRamonaLavigneとなる。

昔はギタリストのウィヴリーと結婚していたのでアヴリル・ラモーナ・ラヴィーン・ウィブリーが本名だったけど、今はウィブリーではない。その分文字数が少なくなった。

さて、1文字目を大文字にしないで小文字のままにしておく場合もある。実を言うとこっちがキャメルケースだったりする。

composer(コンポーザ)というのは指揮者のことだ。何故かIT業界では、すでに存在する意味を持つ単語を節操もなくそのまま使うケースが多い。はっきりいって検索でどっちがヒットするのか不明な場合が多いし、迷惑だと思う。

だからcomposerって名前とか、日常でも使う単語をそのまま使ってるプロダクトはあんまり好きじゃない。

とは言え、好きじゃないのはネーミングだけで、機能は好きな場合が多い。

composerはphp専用のパッケージ管理ツールだ。もともとSymphonyという大げさで仰々しいPHPフレームワークについていたおまけ要素だったらしいが、便利なので独立したらしい。

映画で言うスピンアウト的なプロダクトだね。うん。そして案外簡単に設定できる。
環境というのは、例えばWindowsにVirtualBoxを乗せてその上でCentOSを走らせているようなVM環境で開発してたら、それがローカル環境だ。

どこかのサーバに一式アップロードし、自分たちと限られた人たちだけが閲覧可能な状態であれば、いわゆるステージングと呼ばれる環境かもしれない。

クライアントに最終チェックしてもらう前に、自分たちで限りなく本番に近い環境で且つ、自由にいじれる先進的な環境も持っているなら、それはテストサーバなのかもしれない。

いずれにせよ、環境というのはサーバ、基盤のことと考えていいと思う。でもこれらの環境には当然ながら設定に差異があり、設定ファイルにそれぞれ環境から判別させるロジックを書いていたら、面倒くさい。

今回はBootstrapとデバッグに関して書こうと思う。

チュートリアルではMVCの概念とか、エントリスクリプト(ポイント)とかデバッグに関して書いてあるんだけど、今回は少し独自解釈した内容でお届けする予定。

まぁそれほど大してすごい内容ってわけじゃないけどね。

ところでブートストラップってのはもう知ってると思うけど、知らない人のために説明しておくよ。

簡単に言うと、一つのポイントにリクエストするだけで、そこから順にライブラリなどをたどって、最終的に元の場所にレスポンスとして戻ってくるという流れだ。直訳すると、自力で進む、的な内容になる。

最近のフレームワークは昔のとは違い、ジェネレータ機能が最初から含まれてる場合が多いよね。

Ruby on Railsは残念ながら触ったことがないのでわからないけど、CakePHPにはbakeがある。

そしてこのYiiにはGiiがある。発音はギィでいいのかな。

余談だけどZiiというのもあるので、Giiをジィと呼ぶと紛らわしくなるので、カタカナでギィと発音することにするよ。

そしてジェネレータはややおせっかい度とホスピタリティが高いんだけど、のちのち嫌がらせにしか思えなくなる事請け合いなしなので、本当は個人的には使いたくない。

さぁ、やると言ったらやるんだ、俺的に。
早速行ってみよう。

ところでYiiってなに?なんでそんな変な名前なの?
井伊さんが作ったの?
それともすごく( ・∀・)イイ!!から?

そんなことはない。ロシア人と中国人が率先して作ってるわけで、わざわざ世界で一番面倒くさい日本語を使って命名してるとは思えない。

実は答えは単純で、なぁんだそうなんだ、で終わる。

PHPのフレームワークはいろいろ出てきてて、CakePHPやCodeIgniter、Symphonyなんかとくらべて全然知名度が低いYiiだけど、その命名の由来はこういうことらしい。
Is it fast? ... Is it secure? ... Is it professional? ... Is it right for my next project?
Yes, it is!
速い? ... 安全? ... プロが使える? ... 次のプロジェクトに合っている?
Yes, it is!
ね、なぁんだそういうことなんだ、でしょ。ようするになんでもできちゃう、的なニュアンスを醸し出したかったんだろうね。

はいご無沙汰ね。うん。
半年くらい開いちゃったかな。

いろいろなことがあってブログにまで手が回らなかったよ。

というわけでサクッと再開。

そうそう、PHPのフレームワークだけどさ、ずっとCakePHPを使ってたけど、今の職場がYii(1.1)使ってるので、Yiiを覚えようと思うんだよ。

今の職場でYiiをいじってて最初に思ったことは、Javaみたいだ!って感じ。

実は俺はJavaはほとんどできないんだけど、トレーニング的にチュートリアルを10個くらいやったことがある。

YiiはとにかくOOPだ。

すっかり忘れてた。
PHP Advent Calendar 2013だった。
今日は俺の担当だ。

というわけで、PHPの配列に関していろいろどうでもいい話をしようと思う。

まず俺がPHPを始めたのは2000年くらい。当時はバージョンが3だった。
PHPの名前もまだ、『PHP: Hypertext Preprocessor』の頭文字ではなく、『Personal Home Page』の略だった時代ね。そう、PHPはホームページやWebアプリ唯一専用のスクリプト言語だったんだよね。

当時はまだCGIが全盛期でPerlが主役だった時代。どの書店にいっても、ホームページコーナーにはCGIセクションがあり、そこにはPerl、CGIの2文字を冠した書籍しか見つけられなかったくらい。