新卒エンジニア研修【2ヶ月間でやったこと】


ベストベンチャー100に選ばれている企業に勤めております。
新卒研修の振り返りで2ヶ月間(4~5月)でやったことを残します。

4月第1週

総合職研修
- PDCA
- タスク管理
- ビジネスマナー

4月第2週

  • 開発手法

    • スクラム開発
      • 1スプリントを繰り返す開発手法
      • 1スプリントは、スプリントプランニング、デイリースクラム、スプリントレトロスペクティブ、スプリントレビュー
  • クラウドネイティヴ

    • クラウド技術を最大限活かそうという考え方
    • 開発スピードの向上、属人化を防ぐ、品質向上などの利点がある
  • 開発ステージについて

    • ローカル開発環境
    • テスト環境(プログラムが動くかどうかの確認)
    • ステージング環境(本番環境の検証のための環境)
    • 本番環境
  • Laravel環境構築

    • Docker for M1 Mac、Workbenchのインストール
    • PHP基本構文、DB、

4月第3週

  • [チーム・個人]におけるKPI(key performance indicator)について 目標を達成するために必要なアクティビティ
    • べロシティ →ストーリーポイント(タスクの難易度)をどれくらいこなしたか
    • デプロイ回数 →お客さんにどれだけデリバリーできたか
    • サーバー応答速度 → ブラウザの速度
    • 工数・工期予実達成率
  • 開発フローについて
    1. テスト設計
    2. テストケース作成
    3. 単体テスト
    4. 結合テスト
    5. 総合テスト
    6. UAT (User Acceptance Testの略)
  • 目標設定
    基本的には上長がこの1年間で期待していることを目標に定めた。
    サービス全体像の理解やサービスアーキテクチャの理解、他部門からの依頼処理など

  • ソフトウェアのテスト技法 の輪行開始

    • テストファーストな考え方を知る。 バグが出て修正する時間の方が勿体無い。
    • 良いコードとは。
      • 可読性
      • 保守・運用のしやすさ
      • 昔は少ないコード、処理速度に重点を置いていた(CPUやメモリの関係)
    • - ブラックボックステスト(要件定義署や仕様書に合っているか確認するテスト手法)
      • 同値クラステスト
      • 境界値テスト -ディシジョンテーブルテスト
      • ペア構成テスト
      • 状態遷移テスト
      • ドメイン分析テスト
    • ホワイトボックステスト(パスや処理の流れなどプログラム内部に沿ったテスト手法)
      • 制御フローテスト
      • データフローテスト
    • テストの終了条件
    • テストログ、テスト不具合レポート
      • エビデンス、ログを示す、再現手順がしっかりと書かれているかが大事。
    • xdebugを入れてPHPUnitを実行

正直、テストに関しては実際に作成&実践してみないと実感がわかない。

  • Dockerコマンド
    • docker-compose build
    • docker-compose up
    • docker-compose down
    • docker-compose exec アプリ名 シェル
  • Laravel
    • ディレクトリ構造
    • MVCモデル
    • artisan コマンド

4月第4週

  • CI/CDについて
    • CI(各開発者の作業結果を自動的に統合、単体テストや結合テストの自動化)
    • CD(開発物を素早くユーザに供給する)
  • AWSについて

    • ELB
    • ECS
    • Lambda
    • Cloudwatch
    • S3
    • DynamoDB
    • ECR
    • Fargate
    • Athena
    • QuickSight
  • GAS(Google Apps Script)環境構築

  • Golang デバッグ環境構築

5月第1週

  • Google チャットbot開発。新規入会者数を決まった時間に通知する。 使用した技術
  • Golang, CloudWatch、Lambda、APIGateway、DynamoDB

 所感

静的言語型付け言語を初めて触った。構造体やポインタの概念など改めて勉強になった。Golangの醍醐味である並列処理などは行っていないので、暇があったらやってみたい。

5月第2週

  • 記念日Slack通知bot開発 スプレッドシートから記念日を取得し、Slackに通知する。 要件定義から、運用計画、デモまで行った。

使用した技術
- GAS、SlackAPI

所感

開発したBotが初めて動いた時(エンジニアの誕生日を祝った)はとても嬉しかった。今後も社内で運用していくので、より良いサービスに改築していきたい。

5月第3週~4週

  • Github活動見える化 リポジトリ情報(プルリクやレビュー情報など)を大量に取得し、Amazon QuickSightでデータの可視化を行う。

使用した技術
- Golang、ECS、ECR、Fargate、athena、QuickSight、Github API

所感

チームや個人の貢献度を測るための指標づくりの一環として開発を行った。ビッグデータ
の取得やBIツールを使った分析方法を学べたのはよかった。