天野 仁史さん、Hamachiya2さん(はまちちゃん)との対談の後編です。
優れたエンジニアって
弾:毎度おなじみの質問です。優れたエンジニアとして重要なのはどんなことでしょうか。タグは綴じようとか(笑)。
天:俺は自分1人でどこまで作れるかっていうことだと思います。上から下まで自分でどのくらい作れるか。そういう意味では、自分はまだまだかなぁと思うんですけど。
は:そういう人がそばにいたら、何でもお願いしたくなっちゃうかも。アイディアが湧いたら「こんなの作って」とかって。この人に言ったら、上から下まで全部できちゃうみたいな。
弾:いやでも何でもやらされるようになるんだよね…。
天:でもアイディアもその人が持っているっていうのが、やっぱり俺は優れたエンジニアだと思う。行動力とスピード感と、あとまんべんなく知ってて作りきるだけの技術力みたいな。
は:確かにそれは優れたエンジニアだね。
弾:はまちちゃんは?
は:エンジニアに限った話じゃないけれど、ぼくが思うのは、やっぱり視点かな。すごく大きい視点と、顕微鏡みたいに小さい視点、両方を持ち合わせている人!
弾:人に物事をお願いするのが上手な人っていうのはどうなんだろう?
天:俺は必要ないと思います。確かにビジネスとかでは必要かなと思うんですけど、エンジニアはそうじゃなくてもいいかなぁと。全部自分で作りたがって、アップアップになって、でもなんとか作りきる!みたいな。
弾:俺はCPAN Autherでもあるので、その重要性っていうのはわかるのね。こいつにはこういう言い方をするとへそを曲げるとか。結構社会工学が入ってるかな。ただ、できるところまではやろうっていうのはあるよね。たとえ自分の実装でなくて、ほかの実装のほうが世の主流になるとしても、俺はここまで動かしてみましたっていうのは欲しいじゃん? 自分が作ったものが世の標準になっちゃったら、それはそれで大変なんだけどねぇ。
天:UNICODEとか?
弾:いやいや、UNICODEみたいなのは、俺みたいなのじゃないと誰も面倒見てくんないよ。みんな文句は言うんだよ! 文句は(笑)
Webアプリ開発で重要なこと
弾:多くのユーザが利用するWebアプリケーションですが、開発する上でもっとも重要なことは?
は:勢いですね!
天:あー勢い重要ですね!
は:何か思いついたら、その日のうちに、実際に動くプロトタイプを作っちゃうくらいの勢い。
弾:作って出しちゃうっていうのは、本当重要だよね。それが本当に肌でわかったのは、ブログを書き出してから。変なクオリティなものを人様に出せるかいではなくて、出してもいいんですよ。人に突っ込まれたらそのときに直せばいい。
天:脆弱性の話にも通じる感じですよね。脆弱性とか気にしてないでとりあえずシンプルにリリースする。
は:ネガティブなことは考えずに、とにかく勢いで作ろう。ほかに重要なのは、自分が欲しいって思うものを作ることかな。仕事だと、なかなかそうもいかないときもあるだろうけれどね。できる限り、自分が欲しいと思うものを作りたいね。
天:livedoor Readerも、一番RSSリーダを活用してる人が作ったんですもんね。
弾:よくできてるよねー。あれは本当すごいよね、JavaScriptでここまでできるのかっていう。
天:登録ブログ数でいうと(作者の)ma.laさんの上に3人くらいしかいないらしいんですよ。それを考えると、本当にそれを必要とした人が作ってるっていうのが、いいものにつながるのかなぁと。
は:こういうのが欲しい!って思ったら、それが欲しい人はほかにも必ずいるはずだから。
天:もしそれが一般的に必要じゃなくても、自分が満足できるし、結局は。それでまた新しいのができればいいし。
弾:勢いだそうです。自分も勢いだと思います。
CSRF・XSS対策
は:あと、セキュリティで気をつけておいたほうがよいことなんだけど、最近よく見かけるのはJavaScript内でのXSSかな。最近GoogleとかYahoo!で見つけたのもそうだったよ。動的にJavaScriptを出力するときに、うっかりHTML用のエスケープ処理で通してしちゃってシングルクォートとかバックスラッシュなんかが変換されずに、コードが実行されちゃうとか。そんなのが多いかな。だから、たとえば何かのサービスに後からJavaScriptで機能を付けたときとか、別のエンジニアがJavaScriptを書き足したりしたときなんかは、特に気をつけたほうが良いと思うよ。
弾:セキュリティに限らず、ソフトウェアの不具合ってたいてい、境目で起こるんだよね。
天:そこにイレギュラーが集まってますからね。
弾:一度は全部自分でやってみようっていうのは、あるよね。境目がなくなるから、それだけでも。人が作ったものを、組み合わせてちゃんと動くものを作れるっていうのも才能としてはなんぼのものだと思います。でもやっぱり一度は、自分でいけるところまでいってみたいよね。