Open19
サイボウズ エンジニア新人研修 2021 メモ
2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ の各資料を読んで感想を書く
1日1個ずつぐらい書いていきたい
Webアプリケーション概要 2021 / Web Application Overview 2021 - Speaker Deck
- Socket からプロセスとスレッドの話、C10K に触れていて良さそう
- 未だに CGI の仕組みをよくわかってないんだよな
- 考古学ぽく、知る必要性もないしいいかなって思ってる
- 永続化の文脈で memcached を挙げるの怖くない?
- Web アプリケーションだけが再起動してもデータは残るのは正しいけど...
- ログインのところで IDaaS に触れてもいい気がする
- 今どきログインの処理をフルスクラッチで書くことは少ない気がするので
-
Qualys SSL Labs
- 知らなかった
- 特に知らないことが書いてなくて安心した(?)
HTTP and DNS 2021 - Speaker Deck
- ハンズオンらしい
- すごい良さそう
- 個人的に新卒の頃は LB と AP の違いとかに対する理解がなかった
- AAAA レコードが IPv6 なんだ
- 知らなかった
- v4 の4倍だからAが4つぽい
- おしゃれ
- 普段クラウドだから ZONE ファイルの形式知らなかった
- telnet で HTTP しゃべる演習するのわかる
- 懐かしいやった
- HTTPS の説明はそうって感じ
ソフトウェアライセンス 2021 / Software license 2021 - Speaker Deck
- 著作権違反になるのは「利用」したとき
- 「使用」と「利用」は別
-
https://twitter.com/mattn_jp/status/1419855978971811840
- これはプロセス間通信で「利用」の範囲を狭めているのか
-
ライセンスとは、著作権法に基づく利用許諾条件
- わかりやすい説明
- あくまでも許諾なので自由に利用して良いわけではない
- コピーレフトの具合によってライセンスを分類するのわかりやすい
- 気をつけるポイントはホントそう
- OSS のガイドラインが整備されているのいいなあ
ソフトウェアテスト / Software testing - Speaker Deck
-
- 実数を含む入力
- 負の数を含む入力
- 三角不等式を満たさない整数の組の入力
- 2**64 を超える整数の入力
- 正三角形な入力
- 二等辺三角形な入力
- 三角不等式を満たす整数の入力
- 3つの整数すべて0の入力
-
- まあせやな
- JSTQB認定テスト技術者資格 の資料がベースっぽい?
- 「正しくものを作っているか?(検証)」と「正しいものを作っているか?(妥当性確認)」の違いは意識したことなかった
- 言われた今もイマイチ違いがわからない
- ↑の三角形の例題は前者だと思うけど、後者の例が思いつかない
- テスト計画、テスト設計、テスト分析とか考えてテストを書いたことないや
- 雰囲気でテストを書いている
- リファインメントでテスト分析、スプリントプランニングでテスト分析とテスト設計を行うのは良い視点
テスト自動化 / Test automation - Speaker Deck
- ソフトウェアテストと、テスト自動化は別のセクションなんだ
- jest からテストに入門した自分にとっては同じだと思っていた
- Selenium IDE の紹介
- 今後 https://github.com/puppeteer/recorder に置き換えされていくんだろうか
- 自動化したテストが使われなくなる理由
- メンテナンスにコストがかかるのはそう
- メインロジックとなるところだけにテストを書くのは、この理由もありそう
- メインロジック = 変更回数が多いところとか
- ユニットテストからE2Eテストをよしなに使い分けるのはそう
- 戦略的なテストの書き方、考えたことないなあ
- 最近は基本的にユニットテストばっかり
- E2E はメンテナンスコストの他に導入のコストもそれなりにかかる
- 最近は基本的にユニットテストばっかり
- Autify 使ってみたい
- メンバーによって最適解が異なるのはわかる
- 単にプラクティスを適用するのでは難しい
アクセシビリティ 2021 / Accessibility 2021 - Speaker Deck
- アクセシビリティとは
-
- この定義わかる
- 個人的な解釈として、バリアフリーというよりユニバーサルデザインだと思っている
-
- それぞれについて、概要と役立つ人とやるべきことが列挙されていてわかりやすい
-
- ずっとこれが疑問なんだけど、やっぱり「文字色」と「背景色」のコントラスト比しか言及されてないなあ
- 次読む
- コーディングWebアクセシビリティ: WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション | Heydon Pickering, 太田良典, 伊原力也, 株式会社Bスプラウト | 工学 | Kindleストア | Amazon
- デザイニングWebアクセシビリティ: アクセシブルな設計やコンテンツ制作のアプローチ | 太田良典, 伊原力也 | インターネット・Web開発 | Kindleストア | Amazon
-
インクルーシブHTML+CSS & JavaScript: 多様なユーザーニーズに応えるフロントエンドデザインパターン | Heydon Pickering, 太田良典, 伊原力也, 株式会社Bスプラウト | インターネット・Web開発 | Kindleストア | Amazon
- これは読んだことあって、いい本だった
- Web Content Accessibility Guidelines (WCAG) 2.1
Docker2020 - Speaker Deck
- コンテナと Docker に関する説明が丁寧で良い
- ハンズオンも手厚い
- Docker のここまでの知識を手に入れるって機会はそう多くないので、きっかけとして良さそう
- 大抵プロジェクトに入ったら Docker があって、言われたコマンドを実行しているだけってパターンが多そう
- Docker のベストプラクティスはそう
- 本番運用用の Dockerfile を書く前に見る資料としても良い
- アプリケーション編もあるの手厚い
- 全体的に良かった
- Docker 知らない人だけじゃなくて、開発環境とかでは使ったことある人が次に読む資料としても良いのが高評価
開運研修 2021 Chrome Developer Toolsの使い方 / Chrome Developer Tools - Speaker Deck
- こういう細かいテク、伝承だったりでしか後世に伝わらないものだと思っているので、研修があるのすごい
- リモートワーク下だと積極的にペアプロとかしないと難しそう
- (コメントしにくい)
- 良い資料でした
サイボウズのアジャイル・クオリティ / Agile Quality at Cybozu - Speaker Deck
- 新人研修で品質やクオリティの認識合わせをしているの良すぎる
- 文化を学ぶのと同じぐらい大事そう
-
- どんどんデリバリしてフィードバックのサイクルを回せるのがソフトウェアのいいところだよなあ
- 個人的にソフトウェアのプログラミングが好きになった理由はフィードバックのサイクルの速さなのでわかる
- どんどんデリバリしてフィードバックのサイクルを回せるのがソフトウェアのいいところだよなあ
- 「狩野モデル」
- どうでもいいけど「かのう」と「かりの」どっちだっけってなりがち
- デリバリの前に当たり前品質を満たしておく
-
- 大事
- DevOps と同じく対立するんじゃなくて同じ目的を向きたいみたいな話だと思った
デザイン研修 2021 / Design training 2021 - Speaker Deck
-
- コンテキストによるのでは?って思っていたけどあっていた
- 自明な間違いじゃない限りデザインの方向性の良し悪しはコンテキストに依存するよね
- 自明な間違い = WCAG 違反、明らかに使い勝手の悪そうな UI とか
- なので、デザインに依頼する人は、デザインで達成する目的を含めて伝える必要があるはず
- UX の説明良い
- あくまで UI を作り込むことは良い UX を達成するための how の1つであることは覚えておかないといけない
- ついつい人は how が楽しくなりがち
- あくまで UI を作り込むことは良い UX を達成するための how の1つであることは覚えておかないといけない
- 「UX はプロダクトに関わるすべての人に関係がある」
- 本当にこれ!
- ダークパターン、初耳だった
- 社内でデザインに関するフィードバックがあるの良さそう
MySQLとインデックスと私 - Speaker Deck
- index の仕組みを冗長に別途別テーブルを作って解説する研修ぽい
-
WHERE狙いのキー
とORDER BY狙いのキー
概念はわかるけど、これが必要なレベルで最適化が必要な場面にまだ出会ったことがない - インデックスに仕組みについてつまずいたときに、戻って参照するのに良さそう
CI/CD 2021 - Speaker Deck
- CI
- 高速なフィードバックが得られる、自動的にテストが動くことの安心感、わかる
- CD
- デプロイパイプライン
- 最初から導入するのが大事
- これはそう
-
- わかる :innocent:
-
- 「高速なフィードバックループは不確実性を下げ、学びを最大化する」
- いい言葉
- 「高速なフィードバックループは不確実性を下げ、学びを最大化する」
開運研修2021 セキュリティ / Security 2021 - Speaker Deck
- サイボウズにはセキュリティ専門のチームがあるんだ
- CWE はセキュリティ上の脆弱性の通し番号
- CVE は個々の脆弱性の通し番号
- CVE は知っていたけど、CWE は知らなんだ
- 理想的には CWE のそれぞれの脆弱性は網羅できていると良さそう?
- CWE-89 は SQL インジェクション
- CVE は個々の脆弱性の通し番号
モブに早く慣れたい人のためのガイド / A guide of mob programing in Cybozu - Speaker Deck
- 今のチームだと自分はどちらかというと慣れている側の人
- なので新人の方にとってつらくないモブにしないとなと思った
- ペア、モブプロが初めての人がいるときに毎回みんなで読み直しても良さそうな資料
-
- モブが使えるのはプログラミングだけじゃないんだ
- 設計でも有効
正規表現 / RegExp_2021 - Speaker Deck
- 実地的な内容
- このサンプルは大事
- セキュリティ
- メールアドレス :innocent:
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 を理解した気がする
-
- デバッグの仕方について紹介しているの良い
- 実際に触り始めるとこういう知識が大事になる
モニタリング入門 / Monitoring Feat. VictoriaMetrics - Speaker Deck
- 数年後には「Observability 入門」みたいなタイトルになって内容もそっち方向になるんだろうか
- へぇ
- VictoriaMetrics というツールを使っているらしい
- オンプレ?の k8s をやっている世界線、全くの無知
- PromQL は Prometheus Query Language のことらしい
- Prometheus はたまに名前を聞く、触ったこと無いけど
- ちょくちょく入門監視が引用されてる
- 読まないとなあ
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 で手を動かしてみたい