優秀なフロントエンジニアの特徴
次に,
優秀なエンジニアは,
- 自分の哲学を持っていて,
この哲学という抽象概念をプログラミングという具体的な形のあるものに変える力を持っていること。 - 他の人から見たら他愛もないと感じるかもしれないが,
細部にこだわりを持ち続けられること。 - もし前提条件が変わったとしたら,
そのこだわりを潔く捨て去ることができること。
また,
Webの利用者の多くは単純に消費したいだけで,
これらを挙げた上で,
プロダクトへ継続した責任を持つこと
斉藤氏は,
どのようなアプリケーションでも,
そして,
変化への対応力は,多くの環境を考えておくこと
先ほどからWebは変化を続けると言及しているように,
レスポンシブWebデザインを採用したthe Boston Globeのサイトは,
それにより,
デバイスやネットワークなどの環境を考えると,
パフォーマンス
斉藤氏は,
Twitterは,
JavaScriptベースのViewではパフォーマンスを向上することができなかったため, サーバサイドのテンプレートを使ってViewを整形する選択をしました。 filament groupが昨年12月に,
様々な通信環境におけるAngular. js, Backbone. js, Ember. jsなどのパフォーマンスを検証しています。3G環境のモバイル端末における最初にレンダリングされるまでの時間 (first render times;先読み込み時間) を計測したところ, 1,000msの壁を越えたフレームワークは一つもなかったと報告しています (Backbone. jsだけは1,020msで, ギリギリ合格ラインとのこと)。斉藤氏は 「先読み込み時間だけを見て, パフォーマンスが悪いから使ってはダメという結論にはならないが, 完全に無視していい結果でもない」 と話します。この問題に対してEmber. jsはFastBootという興味深い回答を出してきています。 2013年にNicholas C. Zakas氏は,
フロントエンドにおいてNode. jsを組み込むアプローチ を提案しました。今ではIsomorphic JavaScriptと呼ばれています。よくあるサーバサイドとこれまでのクライアントサイドの間に,緩衝材としてNode. jsをおいてViewの部分をまかなうという仕組みです。 先日,
FlipboardのWeb版のサイトがリニューアルしました。その際, React. jsを使ったCanvas操作 を用いることで,レンダリングのパフォーマンスが60fpsを越えるくらい速く, ネイティブアプリかと思えるくらいスムーズなアニメーションを実現しています。しかし, 多く人が指摘している通り, パフォーマンスを最優先してしまうあまりアクセシビリティどころか, すべてCanvasなので, 文字のコピーすらもできないという状態です。斉藤氏は 「話がパフォーマンスから離れてまったが, アクセシビリティもまたエンジニアが担うべき責任です。もちろんFlipboardの開発者がそういった問題を認識していないわけではありません。技術を使って, 存在し続けている問題に新たな提案をしてくれた」 と述べました。