魔法使いの卵

WEBエンジニアの卵の成長記録

webエンジニアの教科書を読んでみたメモ1

WEBエンジニアがやっていること

WEBエンジニアはだいたい以下のことをやっている

  • TWITTER
  • 要件定義
  • 設計
  • 開発
  • テスト
  • エラーの原因調査
  • バグ修正
  • ログ分析
  • 技術調査
  • コードレビュー

必要とされている技術

  • HTML
    • 特殊な理由(IE等)がない限り基本的にはHTML5
    • 今まではIDやclass等で指定していたタグがより簡単に使えるようになった
    • 動画や位置情報等も扱えるのでサービスの幅が広がる
  • CSS
  • フロントエンド
  • サーバサイド

各言語別主なFW

言語 Framework
Ruby Rails, Sinatra, Padrion
PHP CakePHP, FuelPHP, Symfony, Laravel
Perl Catalyst, Mojolicious, Mojolicious::Lite
Python Django, Tornado, Flask, Bottle
  • データベース

    • アマゾンはページ表示が0.1秒遅くなると売上が1%低下
    • Googleでは0.5秒遅くなるとアクセス数が20%減
    • ページを素早く表示させるためにインデックスの設定などの知識が必須
  • WEBサーバ

    • 最近主流になってきているのはNginx
  • AWS
    • 色々な企業が実際に使っているため今後は使えるが前提になりそう
  • Github
    • マスト

新しい技術

新しい技術がでてきても、それを楽しめることが大切

  • NoSQL
    • リレーショナルデータベースのあまり得意ではない部分に対して強い
    • 適材適所をで利用することが大切
  • JavaScriptのFramework
  • Fluentd
    • 複数のサーバで運用している場合ログを見たいときに簡単にすべてのログを見ることができない
    • Fluentdを使うと複数のサーバに点在するログをほぼリアルタイムで特定のサーバへ集めることが可能
    • 大切なことは必要になった時にすぐに調査できる状態をつくっておくこと
  • グラフによる可視化
  • 仮想化技術
    • VagrantやDockerが登場し仮想化技術は非常に盛り上がっている
    • メリットとしては開発環境の構築を自動化したり”めんどくさい”といった心理的ハードルを下げてくれる
  • プロビジョニングツール
    • プロビジョニングツールとは
      • 必要なライブラリやミドルウェアをインストールし期待したサーバの状態にすること
    • ChefやAnsible等のツールをつかうことで上記ができる
    • メリット
      • 複数のサーバに対してまとめて処理を実行できる
        • あるサーバにはインストールされているが別のサーバにはインストールされているない等の不整合を防ぐことができる

今後WEBエンジニアで食っていくために

  • 技術のスペシャリストになること
  • しかしスペシャリストになることは容易ではない
  • 多くのエンジニアは今回上げた技術とは別に得意分野を持っている
  • 自分の武器を持ち幅広い知識が必要になっていく

読んでいる本
Webエンジニアの教科書