MyUtils

View on GitHub

keyword 備忘録

三項演算子(ternary operator)

炎上時の増員について🔥

炎上時の増員は要員を増やすことによるメリットもあるが、デメリットもあることに注意がいる 以下のデメリットがあることに注意しよう

  1. コミュニケーションのチャネルが増える
  2. 仕事のレベルのバラツキが増える
  3. プロジェクトの新規参画者が理解してパフォーマンスを発揮するのに時間がかかる。


マングリング

C++では関数の多重定義などに対応するため関数のシンボル名に引数の型などの情報が付与される。

名前空間や多重定義などで同じ名前の関数が複数定義可能であり
コンパイラは適切な関数へのリンクを行うためにそれらを区別できる情報を付与します。
関数の名前や型をシンボルに埋め込むことをマングリングと言うそうです。

pdb

python は pdb モジュールを利用することで以下のようなデバッグ機能を利用することができます。

    1. ステップ実行
    2. ブレークポイントの設定

コールチン

サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、 コルーチンいったん処理を中断した後、続きから処理を再開できる。 接頭辞 co は協調を意味するが、複数のコルーチンが中断・継続により協調動作を行うことによる。


ガベージコレクション(GC)

C#などでメモリリークが起こらないよう自動でリソースの解放が行われる仕組み

やっていることは知っているけど名前が出てこないので、メモっとく


ダイクストラ

単一始点最短経路アルゴリズム


動的計画法

関数の再起呼び出しなどを行う際に、実行済みの結果を保存しておき、 再度呼び出した際に繰り返し処理を実行させないための仕組み


WebSocketとWebRTCの違いについて

通信 ユースケース
WebSocket チャットなど
WebRTC オンライン会議など
WebRTC通信方式 特徴
P2P 一般的なWebRTCの通信方式。通信量が大きくなり過ぎるため多人数の同時通信には向いていない。
👇 👇通信経路爆発問題に対するソリューション
MCU ユーザから受け取ったメディアデータをサーバーにて合成してユーザに返す方式。データの通信量は少ないもの、遅滞が大きい。
SFU ユーザから受け取ったメディアデータを他の通信先にサーバーかた経由する方式。遅滞は少ないものの通信量は多くなる

ライブ動画配信/リアルタイム動画配信について

一般的にライブ動画配信というのは、あるところで撮影している動画を、最大数分程度の時差=遅延で視聴者に見せるようなもののことをいうようです。

リアルタイム動画配信というのは、zoomなどのようにインタラクションを行うためにほぼ同時のタイミングで視聴者に動画を配信するようなもののことです。双方向にコミュニケーションするためには、遅延は数秒以内にチューニングされている必要があります。

一般的にはHLS ≒ MPED-DASH > RTMP > WebRTCの順に遅延が少ない


MFC(Microsoft Foundation Class) C++ 関連

シンプルなデスクトップ アプリケーションの作成にも使用できますが、複数のコントロールを使用する複雑なユーザー インターフェイスを開発する必要がある場合に最も役立ちます。 MFC を使用すると、Office スタイルのユーザー インターフェイスを持つアプリケーションを作成できます。


WebSocketについて

いままでのWebアプリではAjaxやGET/POSTなどのクライアント側(curlやブラウザ) を起点に接続してデータのやり取りをしていた。 しかし、この方法では一回の通信毎に接続処理が発生してしまうため リソースの負荷が高かった。

そこでWebSocketで接続をキープし、サーバ側/クライアント側の両方を起点 とした双方向通信を実現されている。 node.js,C#,Pythonなどでライブラリが存在する。



三項演算子

condition(bool) 戻り値 備考
true consequent  
false alternative  

言語毎の三項演算子書き方をまとめる

// 🌟C++/C#/JavaScript/
condition ? consequent : alternative
# python
consequent if condition else alternative