わからないことリスト
わからないことを調べ始めると止まらないので、わからないことを書いていくメモ
最終更新日:2023-02-21
興味が薄れたら削る。わからないからといって学ぶとは限らない。
本番の運用がどう変わるのかが知りたい
大人数がいる組織構造と関係性がある?
Dockerは便利な環境構築ショートカットツールとして利用するが、k8sの利用/運用経験はない
大学院時代に少し使ったぐらい。数理モデルをきちんと扱えといわえると困る
理論的背景よりも実世界応用に興味がある
Kaggleも面白そうだ
自分の人生にこれがどれぐらい必要なのか見極められていない
クラウド
背景
旧来実サービスの場合アプリケーション開発者とネットワーク設計をする人は全く別だった。クラウド時代にIaaCが実現可能になった結果アプリケーション開発者がその一部を行えるようになった。
全体のアーキテクチャは専門家に任せるべきだが、アプリケーションが動くサーバーのネットワーク設定はアプリケーション開発者が行うことが増えた
コミュニケーションコストとリードタイムが減り、アジリティが上がる
AWS/GCPのようなものを使い倒した経験がほぼないので、落とし穴を知らない
触っているが、相応に複雑でありコンサル会社が業績が良い理由もわかる
皆自信を持って扱えないのだと思う
一般的な知識に加えてクラウドベンダ固有の知識が必要になる
「GCPではこうやるけどAWSやAzureではどうなの?」みたいなことに答えられる人はかなり少ないはず
実サービス運営でその経験を積むにはかなりの時間が必要となる
昔はどんなに小さなサービスでもインフラ調達や構築は必須だっただろうから、その手間がなくなったという意味でとてつもなく省力化されている(分業できている)と捉えるのが良い
「コンテナ時代のAWS設計」みたいなものは全くわからない
ドキュメントがだいぶあるので学習はやろうと思ったら行けそう
個人開発はだいたいHerokuでやっている
Herokuはバックエンドの知識をほとんど必要とせず、アプリケーションに集中するためのプラットフォーム
AWSで大規模システムを構築するようなNetworkの設定を気にすることはない
ネットワーク
TCP/IPは何度か本を読んだので概要だけ知っている
インターネットがどうすれば早くなるのかについては何も知らない
輻輳制御アルゴリズムが複数個あることを知っている。このあたりでインターネットのスループットが向上する可能性がある。(TCP BBR) ルーターが悪さをすることがあるらしい。HTTPS化でルータがパケットを覗けなくなったので高速化するみたいな話をGoogleが発表していたような気がする。
ネスペの試験にあたり一通り学習したのでこの辺りがわかるようになってきた
IPv6のことはほとんど何も知らない
分散システム
まるで何もわからない。タネンバウムの本を読めばいいですか??
詳しい人は論文をバリバリ追っている印象が強い
コンピュータアーキテクチャ
CPUを作ったことも、言語を書いたこともない。興味はあるが、時間もとてもかかるのでいつやるか予定が立っていない。
データベース(ストレージ技術)
MySQLやPostgreSQLでかんたんなクエリを書くことはできる。複雑なクエリやビューは書いたことがない。
複雑なクエリは書かないに越したことはない
パフォーマンスチューニングが難しくなる
RDBの場合、外部キー制約をはったり、データの一貫性を担保するのはDB側でやるが、それ以外はアプリケーション側で頑張れるんじゃないかと思っている。間違っているかもしれない。
NoSQLを使い倒したことはない。設計方法がRDBと異なるので下調べが必要ということだけ知っている(NoSQLのテーブル設計) システムパフォーマンス
「推測するな、計測せよ」という言葉だけ印象に残っているので、まず計測するんだろうなと思っている。
モニタリング/ロギング
ログは必要なときに必要なものをすぐに解析できるようにしなければならない
パフォーマンスチューニングはボトルネックがいくつもある
I/Oは常に問題になる
クエリが遅い
N+1をやるようなことはないが、込み入ってくると大変
WebVR
Mozillaほかがなにかやろうとしていることだけ知っている
WebでVRをやるのが一般的になる未来が想像できていない。計算リソースが激しいものがうまく動くように思えない。いまやるならOculusQuest向けにUnityでアプリを作るほうがいいんじゃないの?
Unityでネイティブのアプリケーションを触った