Open19

サイボウズ エンジニア新人研修 2021 メモ

odanodan

Webアプリケーション概要 2021 / Web Application Overview 2021 - Speaker Deck

  • Socket からプロセスとスレッドの話、C10K に触れていて良さそう
  • 未だに CGI の仕組みをよくわかってないんだよな
    • 考古学ぽく、知る必要性もないしいいかなって思ってる
  • 永続化の文脈で memcached を挙げるの怖くない?
    • Web アプリケーションだけが再起動してもデータは残るのは正しいけど...
  • ログインのところで IDaaS に触れてもいい気がする
    • 今どきログインの処理をフルスクラッチで書くことは少ない気がするので
  • Qualys SSL Labs
    • 知らなかった
  • 特に知らないことが書いてなくて安心した(?)
odanodan

HTTP and DNS 2021 - Speaker Deck

  • ハンズオンらしい
    • すごい良さそう
    • 個人的に新卒の頃は LB と AP の違いとかに対する理解がなかった
  • AAAA レコードが IPv6 なんだ
    • 知らなかった
    • v4 の4倍だからAが4つぽい
      • おしゃれ
  • 普段クラウドだから ZONE ファイルの形式知らなかった
  • telnet で HTTP しゃべる演習するのわかる
    • 懐かしいやった
  • HTTPS の説明はそうって感じ
odanodan

ソフトウェアライセンス 2021 / Software license 2021 - Speaker Deck

  • 著作権違反になるのは「利用」したとき
  • ライセンスとは、著作権法に基づく利用許諾条件

    • わかりやすい説明
    • あくまでも許諾なので自由に利用して良いわけではない
  • コピーレフトの具合によってライセンスを分類するのわかりやすい
  • 気をつけるポイントはホントそう
  • OSS のガイドラインが整備されているのいいなあ
odanodan

ソフトウェアテスト / Software testing - Speaker Deck

    • 実数を含む入力
    • 負の数を含む入力
    • 三角不等式を満たさない整数の組の入力
    • 2**64 を超える整数の入力
    • 正三角形な入力
    • 二等辺三角形な入力
    • 三角不等式を満たす整数の入力
    • 3つの整数すべて0の入力
    • まあせやな
  • JSTQB認定テスト技術者資格 の資料がベースっぽい?
  • 「正しくものを作っているか?(検証)」と「正しいものを作っているか?(妥当性確認)」の違いは意識したことなかった
    • 言われた今もイマイチ違いがわからない
    • ↑の三角形の例題は前者だと思うけど、後者の例が思いつかない
  • テスト計画、テスト設計、テスト分析とか考えてテストを書いたことないや
    • 雰囲気でテストを書いている
  • リファインメントでテスト分析、スプリントプランニングでテスト分析とテスト設計を行うのは良い視点
odanodan

テスト自動化 / Test automation - Speaker Deck

  • ソフトウェアテストと、テスト自動化は別のセクションなんだ
    • jest からテストに入門した自分にとっては同じだと思っていた
  • Selenium IDE の紹介
  • 自動化したテストが使われなくなる理由
    • メンテナンスにコストがかかるのはそう
    • メインロジックとなるところだけにテストを書くのは、この理由もありそう
      • メインロジック = 変更回数が多いところとか
    • ユニットテストからE2Eテストをよしなに使い分けるのはそう
    • 戦略的なテストの書き方、考えたことないなあ
      • 最近は基本的にユニットテストばっかり
        • E2E はメンテナンスコストの他に導入のコストもそれなりにかかる
  • Autify 使ってみたい
  • メンバーによって最適解が異なるのはわかる
    • 単にプラクティスを適用するのでは難しい
odanodan

Docker2020 - Speaker Deck

  • コンテナと Docker に関する説明が丁寧で良い
  • ハンズオンも手厚い
  • Docker のここまでの知識を手に入れるって機会はそう多くないので、きっかけとして良さそう
    • 大抵プロジェクトに入ったら Docker があって、言われたコマンドを実行しているだけってパターンが多そう
  • Docker のベストプラクティスはそう
    • 本番運用用の Dockerfile を書く前に見る資料としても良い
    • アプリケーション編もあるの手厚い
  • 全体的に良かった
    • Docker 知らない人だけじゃなくて、開発環境とかでは使ったことある人が次に読む資料としても良いのが高評価
odanodan

サイボウズのアジャイル・クオリティ / Agile Quality at Cybozu - Speaker Deck

  • 新人研修で品質やクオリティの認識合わせをしているの良すぎる
    • 文化を学ぶのと同じぐらい大事そう
    • どんどんデリバリしてフィードバックのサイクルを回せるのがソフトウェアのいいところだよなあ
      • 個人的にソフトウェアのプログラミングが好きになった理由はフィードバックのサイクルの速さなのでわかる
  • 「狩野モデル」
    • どうでもいいけど「かのう」と「かりの」どっちだっけってなりがち
    • デリバリの前に当たり前品質を満たしておく
    • 大事
    • DevOps と同じく対立するんじゃなくて同じ目的を向きたいみたいな話だと思った
odanodan

デザイン研修 2021 / Design training 2021 - Speaker Deck

    • コンテキストによるのでは?って思っていたけどあっていた
    • 自明な間違いじゃない限りデザインの方向性の良し悪しはコンテキストに依存するよね
      • 自明な間違い = WCAG 違反、明らかに使い勝手の悪そうな UI とか
    • なので、デザインに依頼する人は、デザインで達成する目的を含めて伝える必要があるはず
  • UX の説明良い
    • あくまで UI を作り込むことは良い UX を達成するための how の1つであることは覚えておかないといけない
      • ついつい人は how が楽しくなりがち
  • 「UX はプロダクトに関わるすべての人に関係がある」
    • 本当にこれ!
  • ダークパターン、初耳だった
  • 社内でデザインに関するフィードバックがあるの良さそう
odanodan

MySQLとインデックスと私 - Speaker Deck

  • index の仕組みを冗長に別途別テーブルを作って解説する研修ぽい
  • WHERE狙いのキーORDER BY狙いのキー 概念はわかるけど、これが必要なレベルで最適化が必要な場面にまだ出会ったことがない
  • インデックスに仕組みについてつまずいたときに、戻って参照するのに良さそう
odanodan

CI/CD 2021 - Speaker Deck

  • CI
    • 高速なフィードバックが得られる、自動的にテストが動くことの安心感、わかる
  • CD
    • デプロイパイプライン
  • 最初から導入するのが大事
    • これはそう
      • わかる :innocent:
      • 「高速なフィードバックループは不確実性を下げ、学びを最大化する」
        • いい言葉
odanodan

開運研修2021 セキュリティ / Security 2021 - Speaker Deck

  • サイボウズにはセキュリティ専門のチームがあるんだ
  • CWE はセキュリティ上の脆弱性の通し番号
    • CVE は個々の脆弱性の通し番号
      • CVE は知っていたけど、CWE は知らなんだ
    • 理想的には CWE のそれぞれの脆弱性は網羅できていると良さそう?
    • CWE-89 は SQL インジェクション
odanodan

Introduction to Kubernetes

  • 研修資料が Speaker Deck じゃなくてウェブサイトだ
  • とりあえず https://cybozu.github.io/introduction-to-kubernetes/introduction-to-kubernetes.html を読む
    • Docker の知識を前提
    • k8s の構築、運用の話ではなくアプリ開発者向けの話
  • OS がハードウェアとソフトウェアを疎結合にしたように、Kubernetes はアプリケーションとサーバーを疎結合にし、独立して開発・運用ができるようにしてくれます
    • わかりやすい
  • Pod仮想マシン の概念に対応
  • Service を使うと「ある特定の Pod」ではなく「特定の ラベル を持つ Pod のどれか」にアクセスすることができます
    • 「所望の機能を提供する Pod のどれか」 と通信ができるようになる
    • k8s 様々なタイミングで軽く入門していたけど、やっと Service を理解した気がする
  • デバッグの仕方について紹介しているの良い
    • 実際に触り始めるとこういう知識が大事になる
odanodan

モニタリング入門 / Monitoring Feat. VictoriaMetrics - Speaker Deck

  • 数年後には「Observability 入門」みたいなタイトルになって内容もそっち方向になるんだろうか
  • へぇ
  • VictoriaMetrics というツールを使っているらしい
    • オンプレ?の k8s をやっている世界線、全くの無知
  • PromQL は Prometheus Query Language のことらしい
    • Prometheus はたまに名前を聞く、触ったこと無いけど
  • ちょくちょく入門監視が引用されてる
    • 読まないとなあ
odanodan

ymmt2005/grpc-tutorial: gRPC tutorial for Japanese readers

  • gRPC チュートリアル
  • README にすべて書かれているタイプ
  • gRPC は Remote Procedure Call, RPC の1つ
    • ネットワーク越しに関数呼び出しができるような機能
    • IDL のコンパイラは言語間のシリアライザの互換性を吸収してくれる
  • よく比較される gRPC/REST/GraphQL の比較表助かる
    • 技術選定時とかに参考になりそう
  • さて、ここからは残念なお知らせです。 実際にコードを生成する方式は Java, Go, Python といった言語毎に激しく異なります。
    • つらい :innocent:
    • Node.js は動的に読み込むって書いてるけど TS と相性悪くない?
      • 型定義は別途静的に生成とかできるんだろうか
  • Node.js で手を動かしてみたい