Upgrade to Pro — share decks privately, control downloads, hide ads and more …

インターン生・新卒向け、学校でもっと教えてほしいITエンジニア基本スキル

 インターン生・新卒向け、学校でもっと教えてほしいITエンジニア基本スキル

More Decks by NearMeの技術発表資料です

Other Decks in Programming

Transcript

  1. 1 ユニットテスト • ユニットテストとは ◦ プログラムコードでは、一箇所変更したら、思わぬ箇所でエラーになったりする。これを毎回手作業 でテストするのはコードが大きくなる程難しくなる。そこで、プログラムの挙動を細かな単位で自動で テストできるようにして動作を保証するのがユニットテストである。 • 綺麗に書かないとテストを書くのが難しい

    ◦ “因数分解”(リファクタリング)されたコードの部品部分をテストする方が、それらが混じったものをテス トするよりも簡潔にわかりやすく書ける。 ◦ 逆にテストを書こうとすることにより、コードが綺麗になるという副作用もある。 • Print文よりテスト駆動開発 ◦ Print文書きながらコード書いてますか?そのPrint文を書く代わりにテストを書くようになれば”いけて る”技術者です。 ◦ テストを先に書いてテストに導かれながら本体コードを書くことをテスト駆動開発と言う。
  2. 2 データベース • データベースはサービスの根幹 ◦ サービスを作るとき、まずはデータベースの構造を考える。 ◦ データベースが大元にあって、バックエンドのAPI、フロントエンドのUIが付随する。 • インデックス

    ◦ データ量が増えていくと、単純にレコードを選択すると全データ走査するため遅くなる。 ◦ そこであらかじめインデックス(索引)を用意しておいて、素早くレコードを引き当てる。 ◦ 複合インデックスなど複雑なインデックスの方法も覚えよう。 ◦ インデックスの張りすぎに注意。レコード挿入・更新が遅くなるので。 • トランザクション ◦ 複数のレコードを一度に処理したいとき、途中で障害が起きると、中途半端な状態になる。 ◦ このとき一連の処理をトランザクションにまとめることで、元の状態に戻せる。 • その他 ◦ ジョイン、外部キー制約、ロック、N+1問題なども把握しておこう。
  3. 3 その他 • インターネット ◦ IPアドレス、ポート番号、ドメイン、HTTP、SSL/TLS、など。 ◦ クラウド上でサーバーを建ててインターネットに公開してみるといい。 ▪ インターネットに公開してログを眺めたら、世界中から攻撃されてるのがわかる。

    • ターミナル操作 ◦ GUIが使えない環境で操作することが求められる。 ◦ シェルスクリプト、viのエディタ操作などは、とっつきにくいけど覚えておいた方がいい。 • 正規表現 ◦ プログラムの文字列処理で重宝。 ◦ エディタで検索する時も利用。 • 情報収集 ◦ はてなブックマーク、Twitterでプログラマーをフォロー、Feedlyで技術ブログを購読。 ◦ 海外の情報も積極的に取り入れる。英語の苦手意識をなくす。