この記事は aoitaku Advent Calendar 2016 の 3 日目の記事です。「日付またいでても朝が来るまでは当日」と供述しており(もう夜なんだよなあ)。
さて、携帯電話の組み込みアプリケーション開発の現場を出て、次に向かうのが Web 業界でした。もともと Perl でブログシステムを自作しようとかそういう志向だったので、Web 業界行きたいというのは就職するときからずっと思ってことではあります。
でも時代は Perl ではなかった。というか、ぼちぼち Ruby の時代っぽいな、ということを思っていました。
Ruby の時代っぽいなと思っていたのに、きょうのテーマは PHP です。
WordPress
なんで WordPress にしようと思ったのかはあんまり覚えていません。
自分のサイトをリニューアルするにあたって、Perl でブログシステム作るのはわりと大変なので、MySQL が使える PHP のほうがよいな、とか、XAMPP で Windows でも一発で一式揃うの楽だな、とか、背景にはいろいろあったと思います。
Ruby じゃなかったのは、Windows で Ruby がわりときつい印象があったのもたぶんあると思います。当時のぼくはインフラに対する知識がぜんぜんなくて、そのへんに手を出すことに少なからず抵抗がありました。
さて、自分のサイトに WordPress を導入してリニューアルすることにして、WordPress のテンプレートシステムとか見ていくわけですが、その手の情報は WWW 上に山のようにありました。ググってコード見て弄って、というのを繰り返すだけでだいたい思ったように動いて、なんだ PHP とかいうやつもしかして簡単なんじゃないか? そのときのぼくはそんなことを思っていたのです。
Web 業界にドボン
会社をやめてから数ヶ月の間、病気の療養をしつつ独学で PHP のコードを書いていました。WordPress のプラグイン作ったり、JQuery のプラグイン作ったりということもしていました。
そのへんの成果物をポートフォリオにして、何社か受けては落ちたりしつつも、従業員 10 人そこそこの小さな Web 制作会社に入社しました。
WordPress で企業のコーポレートサイトを作るのが主な業務で、デザイナーが起こしたデザインを元にひたすら WordPress でコーポレートサイト作るという感じのところでした。
まあ WordPress はわかるし大丈夫やろ。
ところがどっこいぼくが入社して二つ目に担当することになったプロジェクトは WordPress じゃなくて Symfony 使ったウェブサービスの構築でした。
不協和 Symfony
当時はまだ Symfony 2 でなくて 1 系だったんですが、なんにしても Web アプリケーションフレームワークはほとんど触ったことがなくて、Rails インスパイアな感じなんだろうなくらいのゆるい認識しかなかったんだけど、チュートリアルからしてもうぜんぜんわからない。
そもそもまず Windows があかんので仮想環境を構築するところからです。VirtualBox に Ubuntu 入れて、Symfony 入れて、コマンドラインからタスク叩いてプロジェクト生成して……。
このへんの手順がもう今までの開発とぜんぜん違う。Ubuntu のセットアップもめちゃくちゃ苦労した。
そもそも社内にノウハウがない。なんで社内にノウハウがないプロジェクトを受注してしまうんだ。とか思ったりはするものの、言ってもしょうがないので覚えるしかない。
社内の動作確認用のサーバが必要になって、そもそも社内の共有サーバが Windows サーバでめちゃくちゃ性能が悪くて、これもどうにかできないか、という声がほかのメンバーから上がってる状況で、いっそ Linux サーバ立てたらどうですか、という提案をしたら、ぼくが Linux サーバを立てることになっていた。
クライアントに見せるためのステージング環境が必要になって、さくらの VPS を借りて VPS にデプロイするとかそういうこともやることになりました。
いろんなこと覚えられたので給料もらいながら勉強できてよかったなー!とは思っています。
このプロジェクト、ぼくが入ったときにはすでに納期を 2 ヶ月オーバーしていて、ぼくが入る前にひとりやめてるんですが、彼がいたらたぶん円満にクローズできてたんだろうな、と思ったりしながら、結局最後まで鎮火することなく、炎上したままプロジェクトから手を引くという形で燃え尽きました。
フレームレスワーク
この会社は一年くらいでやめました。事前の予告なしにいきなり正社員からアルバイトに格下げするねと通達されて、何が起こったのかいまでも全然わからないんだけど、まあそういうことがありました。
それからしばらくしてべつの会社に入って、そこでは自社の Web サービスの改修を担当することになるんですが、「社内にわかる人間いないからさあ、フレームワーク?とかは使わないで作ってね~」というちょっと何を言ってるのかわからなかったんですけど、そういう事情でフラットな PHP で Web サービスを作っていました。
たぶんですけどググったら情報出てくるフレームワークのほうがオレオレフレームワークもどきよりぜったいほかの人にもわかるやつだと思うんですよね。
この会社には忘れられない思い出があるのでツイートを引用しておきます。
前任者の作ったDBが超絶スゴイテーブル設計でMySQLのCPU使用率が数百%でサーバが
— あおいたく@Lunatlazur (@aoitaku) May 22, 2014
https://t.co/xSfGbnvQWZ - 結局これの改修することになったんだけど今測定したらページ表示するたびにおよそ3000回クエリを投げていてなるほど納得だ
— あおいたく@Lunatlazur (@aoitaku) 2014年6月24日
この間話した前任者が作ったページを表示する毎に3000回のクエリを発行するプログラムの改修はこないだ無事に済んだんだけどそれを稼働させるからってことで日曜日はサーバの動向を見守るために会社で待機してくれってことになったので日曜出社だ。
— あおいたく@Lunatlazur (@aoitaku) 2014年7月9日
なお3000件というのは3000人なので3000人がアクセスすると3000*3000のクエリが
— あおいたく@Lunatlazur (@aoitaku) July 9, 2014
趣がありますね。
それから
あんまり PHP の話をしてないですが、PHP という言語に対して思うところは実はあんまりなかったりはします。
それでも PHP Matsuri 参加したりとかぼく自身 PHP という言語自体はそんなにきらいではなくて、最近の PHP の状況とかみるとめちゃくちゃよくなってきてるなという印象がありますし、でも実際に PHP を使っている現場はというと、上に書いたようなところもとても多いのではないかという気持ちがあります。ぼくがそういうところしか知らんだけなのかもしれないんだけど。
この会社には丸二年いました。ぼく以外のエンジニアがやめてしまってひとりだったのとか、あたらしい技術に触れたりすることもなさそうだなーとか、なんなら最後の方は HTML と CSS ばっか書いてたなーという感じで、くすぶってる感じでした。
そんなときに声をかけてもらって、今の会社に入ります。
それではまた次回。