Chrome拡張について調べる

# 拡張機能は以下の4つからなる

 

manifest

- メタデータ書く、大元のベースとなるファイル

 

serveice worker

- ブラウザイベント(次ページへ移動、tab削除、ブックマーク追加等)をhandleしたり、listenしたりする。

- chrome APIが全部使える

 

content script

- Javascriptをwebページのコンテンツの中で実行できる(DOMオブジェクトをいじったりとかもできる)

- chrome APIの一部しか使えないが、serveice workerとmessageをやりとりすることで、残りのやつも使える

 

popup (&option page, other HTML pages)

- 拡張機能にHTMLfileを入れて使うことができる

- chrome API 使える

 

 

社内ISUCONに初参戦した時の記録と次回に向けて

 

感想

- 思ったより楽しかった。

- もっと準備したらさらに楽しめそう。

- パスワードの暗号化方式を軽いものにする、とか典型的?な解法が効いたらしいが、そういう典型的な解法の存在すら知らないと試せないな、という感じだった

- チームでスコア競いなが改善していくの楽しい。実体のないwebアプリでこれなら、F1レースのエンジニアチームとか死ぬほど楽しそう。kaggleもこんな感じでチームでやったら楽しいかも?(処理時間まちがあるから微妙なのかな?)

 

 

 

 

次回に向けて

 

 

 

過去問をたくさん解いて、典型的な解法を覚える&素早く動けるように。

ISUCON11 予選問題の解説と講評 : ISUCON公式Blog

ISUCON12 予選の解説 (Node.jsでSQLiteのまま10万点行く方法) : ISUCON公式Blog

 

事前に用意すべきスクリプトなど用意

ISUCON8予選 序盤環境構築覚え書き | わたしろぐ

ISUCON 事前講習2022 座学 を開催しました(資料と動画と問題あり) : ISUCON公式Blog

ISUCON 事前講習2021 座学 を開催しました(資料と動画と問題あり) : ISUCON公式Blog

ISUCON練習メモ

goにしただけで速くなるらしいのでgoを学んでみる?

 

 

 

 

JavaScriptのプリミティブ型からメソッドが呼べる(ように見えてしまう)件

前提

JavaScriptの型は、オブジェクト型とプリミティブ型の2つだけ

 

プリミティブはオブジェクトじゃない、つまりインスタンスメソッドを持たないデータだってこと。

 

プリミティブ型一覧

Boolean

Number (小数もここに入る。Float的なものはない。NaN:Not A Numberもここ。)

(BigInt)

String

(Symbol)

Null

Undefined

 

------------------------

しかし以下みたいに、プリミティブ型からメソッド呼べるように見える

'My name is taro'.replace('taro', 'hanako')

 

これはJavaScriptの特殊仕様によるもの。

(nullとundefinedを除く)プリミティブ型には、その値を包含するラッパーオブジェクトが存在する。

そして、プリミティブ型にアクセスするとき、それに対応するラッパーオブジェクトに自動変換する、という仕様がある。

上の例だと、そのラッパーオブジェクトStringのインスタンスメソッドを実行していた。