ちゃんなるぶろぐ

新卒エンジニアが、日々の学びをアウトプット〜読書とプログラミング〜

お金と心理学①〜書籍『お金に支配されない13の真実』より〜

読み終えるまで約5分

どうも、ちゃんなるです。

今回紹介するのはこの本!

『お金に支配されない13の真実』

この本から得られるもの

多くの心理学研究に基づいた、科学的なお金の知識。

「人は、どのような状況下で、どのようなことを考え、どのように振る舞うのか」という様々な実例をもとに紹介されています。

①「得したい」より「損したくない」

我々人間は、これから得られるものの量が減ることよりも、既に持っているものを失うことに強くストレスを感じます。

このような人間の心理を『損失回避』と呼びます。失うことを過度に恐れるのです。

皆さん経験ありませんか? 自分の持ち物を誰かに「ちょうだい!」「売って!」などと言われた際、実際の値打ちよりも高く評価してしまったこと。 愛車を売りに出したところ、思ったより低い値段がついて悲しんだこと。

問題です。それぞれ回答を考えてみてください。

  • 問1:あなたは10万円もらいました。次の2つの選択肢を選ぶ場合、どちらを選びますか?

    • ①コインを投げて表なら、もう10万円もらう
    • ②何もしないでもう5万円もらう
  • 問2:あなたは20万円もらいました。次の2つの選択肢を選ぶ場合、どちらを選びますか?

    • ①コインを投げて裏なら半分払う
    • ②何もしないで5万円払う

問1と2で回答が変わった人が多いのではないでしょうか?

この2問は、どの選択肢も期待値は「15万円得る」です。 ですが我々は、なるべく損しない選択肢を選びがちなのです。

②「適正な価格」とは?

結論、「変動する」です。

???

あるものに対する「適切だ」と思う価格が、時と場合によって変わるのです。

同じ料理を提供しても、人によって適正だと思う金額には大きく差があります。

また例えば、我々人間には『妥協効果』という心理的バイアスがあります。これは、小・中・大のように選択肢が3つある場合、我々は真ん中のものを選びやすくなる、というものです。に比べてクオリティに欠点があり、に比べて価格に欠点がある。我々はこの欠点を避ける、すなわち『損失回避』によってを選択しやすくなるというものです。

他には、金額とプラシーボ効果の関係に関する調査結果もあります。例えば、エナジードリンクを飲んでから受けたテストの成績が、エナジードリンクに支払った金額が高いグループの方が支払い金額の低いグループに比べ成績がよかったという結果があります。また、同じ品揃えのビュッフェを楽しんでもらう場合、それに対して高い金額を支払ったグループの方が食後の幸福度が高かったという結果も。

③お金でやる気は引き出せる?

結論、「条件付きで、Yes!」です。

以前アメリカで、小中学生を対象とした学力向上を目的としたある実験が行われました。学生らはテストや課題などの成績によってお金をもらえるという実験です。対象都市は、ニューヨーク、ワシントン、シカゴ、ダラス、ヒューストンの5つの州でした。

結果、前者3つの州では学力にほぼ変化はなかったが、ダラス、ヒューストンの2州では学力向上がみられたそうです。これらの2州では、それ以外に比べ、お金をもらうために達成する必要のある課題が「具体的かつフェア」なものでした。テストの成績の順位のような一部の優秀な学生だけがお金を独占することのないような課題が達成条件でした。

いくつかの調査でお金でやる気は引き出せることがわかりましたが、その反面、デメリットも見つかっています。それは、「人は成果に応じて報酬が増えると約束されている場合、報酬の対象にならない努力を避ける傾向にある」ということです。

まとめ

今回お伝えしたのは下記の3点です。

  • 我々には損失回避という心理があり、損をすることを恐れる傾向がある
  • 我々は、3択の際に中間のものを選択する傾向にある
  • 具体的な課題に対してのみ、金銭的インセンティブは機能する

これらを日々の生活に活かすため、私なりのアクションプランをお伝えします。

  • 交渉の際は、「損しなくて済む」を伝える
  • 複数の選択肢から何かを選ぶ際は、「小〜中程度のもので自分のニーズが満たせないか」を考える
  • 課題やルールを明示し、その達成に対してインセンティブを与える(*子育てや教師、管理職のような人を指導する立場にある方は、ぜひ検討してみてください)

書籍情報

Mind over Money 193の心理研究でわかったお金に支配されない13の真実 [ Claudia Hammond ]

価格:1,760円
(2022/5/1 18:40時点)
感想(2件)

  • 【書籍名】Mind over Money 193の心理研究でわかったお金に支配されない13の真実
  • 【著者名】Claudia Hammond, 木尾 糸己
  • 【出版社】あさ出版
  • 【出版日】2017年6月23日頃
  • 【ページ数】334

人とお金の関係〜書籍『お金に支配されない13の真実』より〜

読み終えるまで約3分

どうも、ちゃんなるです。

今回紹介するのはこの本!

『お金に支配されない13の真実』

この本から得られるもの

多くの心理学研究に基づいた、科学的なお金の知識。

「人は、どのような状況下で、どのようなことを考え、どのように振る舞うのか」という様々な実例をもとに紹介されています。

①人とお金の関係はいつから?

結論、7歳前後で人はお金について理解するようになる。

フィンランドでの調査より

6歳の子供たちに演劇させる実験を行ったところ、子供たちは自分たちの創作に市場価値があることを知っており、チケットやDVD化を通してお金を稼ぐことを考えていた。

イタリアでの調査より

人は、7~8歳になると、お金は「働いた対価として得られるもの」と理解する。

子供は、お金の知識の大半を親から学びます。特に、親が買い物しているときの様子を観察することで学びます。ただ、親子でお金の会話をする家庭は少なく、正しい/十分な知識を身につけずに大人になる子供がほとんどです。

統計的に下記の結果が出ているそうです。

  • 手伝いや宿題の後にお小遣いをもらう経験をした子供は、慈善団体に寄付する確率が倍になる
  • 温かい家庭で暮らす子は、貯金する確率が高い
  • 算数を概念的に理解している子ほど、人生でお金に困らない

子育てをするならば、しっかりお金に関して会話をする、これに加えて算数に興味を持たせてあげるのが良いでしょう。

②お金の価値の捉え方

結論、同じ1,000円でも、その形や状態によって価値の捉え方が変わるのです。

ピン札の千円札はなるべく使わないでおこうと思いませんか? (それに比べてボロボロの千円札はすぐ使っちゃいません?)

お金は様々な形を取ります。 例えば、現金、カード、小切手、クーポン券、預金通帳、、、などなど。 現金の1,000円とクーポン券の1,000円は、場合によっては全く同じ価値を持つ、それにもかかわらず私たちはそれらを別物として捉えがちです。そして特に後者の1,000円を軽んじます。

統計的に下記の結果が出ているそうです。

  • ピン札の方が財布の中に滞在する時間が長い
  • クレジットカードを使うと、不健康な食品を買う確率が上がる
  • 値段が上がるほど、クレジットカードで決済する確率が上がる
  • (英国で)クレジットカードの利用拡大に伴い、1990年〜2013年で個人債務の額が3倍以上になった

クレジットカードは非常に便利です。しかし、お金を使っている感覚が薄く、思わず使いすぎてしまうことがあるので要注意です。

③「心の会計」

心の会計とは、心の中にある、お金の性格別・目的別科目のことです。

科目には、例えば、お小遣い、預金、ギャンブルで勝ったお金、給与、借金、、、などなど。 自分が持っている1万円が、どこの科目から出た1万円か、これによってその1万円の価値が変わってしまいます。 例えば、頑張って働いて得た給与としての1万円は使いづらいが、競馬で勝った1万円は簡単に出せる、のようなものです。

「1万円は、どこから出ていたとしても1万円だ!」という絶対思考を持ちましょう。絶対思考の反対は相対思考で、「支払う全額は、全体の金額のうち何%なのか」と相対的に考えてしまうものです。

200万円の車を購入する際に追加オプションで5千円払う場合、その5千円は簡単に出せるでしょう。 しかし、1万円の掃除機を買う際の5千円の追加オプションではどうでしょうか?なかなか出しづらいと思います。

絶対思考、意識してみてください。

まとめ

  • お金と算数をよく理解していると、お金に困りにくくなる
  • クレジットカードは出費がかさみがちなので、使う前にキャッシュで同額を支払う姿を想像してみよう
  • 相対思考でなく絶対思考でお金と接してみよう

書籍情報

Mind over Money 193の心理研究でわかったお金に支配されない13の真実 [ Claudia Hammond ]

価格:1,760円
(2022/5/1 18:40時点)
感想(2件)

  • 【書籍名】Mind over Money 193の心理研究でわかったお金に支配されない13の真実
  • 【著者名】Claudia Hammond, 木尾 糸己
  • 【出版社】あさ出版
  • 【出版日】2017年6月23日頃
  • 【ページ数】334

3分でわかる『DockerでのJenkinsインストール方法』〜書籍Jenkins実践入門より〜

読み終えるまで約3分

どうも、ちゃんなるです。

前回に引き続きこの書籍を参考に学びます🙋‍♀️

chan-naru.hatenablog.com

今回は、Docker上でJenkinsを動かし、Jenkins学習のための準備をしたいと思います🔥

『Jenkins実践入門』

*Docker自体の導入方法や、Dockerコマンドに関しての説明は省略させていただきます🙇

実行環境について

今回、この記事を書くにあたって実際にDocker上にJenkinsの環境を構築しました。それに用いたホストマシンについて記載しておきます。

f:id:Chan-Naru:20220322210024p:plain
ちゃんなるPC

  • MacBook Pro (15-inch, 2017)
  • macOS Monterey Version 12.3
  • Docker Desktop Version 4.5.0

Jenkins用のDockerイメージ取得

Dockerコンテナを起動するために、その元となるDockerイメージをローカル環境にダウンロードします。

Docker Hub*1という公式のDockerイメージ配布サイト上でJenkinsと検索します。

すると、一番上に公式っぽいのが出てくるのですが…要注意です。なんと「これは非推奨だからjenkins/jenkins:ltsって名前のイメージを使ってね」と書いてあります。

f:id:Chan-Naru:20220322210708p:plain
Docker Hub上でjenkinsと検索した結果

というわけで、下図のイメージ*2をローカルにプルしましょう。

f:id:Chan-Naru:20220322210912p:plain
公式のjenkinsのイメージ

ターミナルで下記コマンドを実行し、ローカルにイメージを持ってきましょう。

$ docker pull jenkins/jenkins:lts-jdk11

イメージをもとにJenkinsコンテナを起動

下記コマンドで、取得したイメージをもとにコンテナを起動しましょう。

$ docker run -p 8080:8080 -p 50000:50000 --restart=always -v <ホスト領域の絶対パス>:/var/jenkins_home jenkins/jenkins:lts-jdk11

ちなみに、--restart=alwaysとオプション指定をすることで、コンテナが停止した時に自動で再起動されるようになります。PCを再起動などした後にDockerを起動させると、Jenkinsコンテナの起動コマンドを実行せずとも自動で起動されるようになります。

また、-v <ホスト領域の絶対パス>:/var/jenkins_homeとオプションを指定することで、Jenkinsコンテナ内の/var/jenkins_homeディレクトリ下で生成・更新された内容がホスト側にも共有され、コンテナのデータが永続化されます。次にコンテナを起動した際も同じデータが使えます(このオプションを指定しないと、コンテナを停止した時点でデータが失われることになります)。

Jenkinsへアクセス

コンテナが起動すると、http://localhost:8080/へアクセスすることでJenkinsを開くことができます。

初回アクセス

初回のアクセスではAdmin用のパスワードの入力を求められるので、入力します。パスワードは、コンテナ起動時のログに出力されているのでそれをみましょう(ターミナルにログが出力されてます)。または、コンテナ内の/var/jenkins_home/secret/initialAdminPasswordファイル内に記載されているので参照してください。

初回ログイン後

下記のような画面が出てくるので、2つのうちどちらかを選択して進みましょう。個人的には左の『おすすめプラグインの導入』がいいと思います✌️

f:id:Chan-Naru:20220322213047p:plain
Jenkins初回ログイン後の画面

インストール後、『ユーザアカウントの作成』という選択肢が出てくるので、新規に作成するか、そのままAdminユーザで続けるかを選択し、進みましょう。

すると、下記のような画面になり、無事Jenkinsを開くことができます!

f:id:Chan-Naru:20220322213340p:plain
Jenkinsのダッシュボード画面

まとめ

今回は、Dockerを用いてJenkinsを起動しアクセスする方法を紹介しました。

「意外と簡単。」と思われたかもしれません。Jenkinsは簡単に導入でき、無料で使用できるCIツールなのです。

JenkinsはDocker経由でなくとも導入できます。本書では他にも、Windowsへ、CentOSへ、Tomcatへ導入する方法が書かれていました。気になる方はぜひ手にとってみてください🙋‍♀️

書籍情報

Jenkins実践入門改訂第3版 ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plusシリーズ) [ 川口耕介 ]

価格:3,278円
(2022/3/20 11:05時点)
感想(1件)

[改訂第3版]Jenkins実践入門 ーービルド・テスト・デプロイを自動化する技術【電子書籍】[ 川口耕介【監修】 ]

価格:3,278円
(2022/3/20 11:05時点)
感想(0件)

  • 【書籍名】Jenkins実践入門改訂第3版 ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plusシリーズ)
  • 【著者名】川口耕介, 佐藤聖
  • 【出版社】技術評論社
  • 【出版日】2017年6月
  • 【ページ数】416

3分でわかる『JenkinsとCI(継続的インテグレーション)』〜書籍Jenkins実践入門より〜

読み終えるまで約3分

どうも、ちゃんなるです。 最近仕事でJenkinsに触ることになりました🙋‍♂️ ただ、さっぱりよくわからないので、これを機に勉強を始めることにしました👍

今回参考にしたのはこの書籍です。

『Jenkins実践入門』

Jenkinsとは

f:id:Chan-Naru:20220320123456p:plain
出典:https://cloudbees.techmatrix.jp/jenkins/
www.jenkins.io

Jenkinsは、継続的インテグレーション(CI)を効率的に行うためのツールです。インテグレーションテストを継続的に、かつ自動的に実行するための土台のことで、開発者の手作業を大幅に削減できるもののようです。

公式サイト*1を読んでみようと思いましたが、英語と中国語しかありませんでした(日本語ですら怪しいのに…笑)。

オープンソースなので、無料で利用できますし、誰でも開発に携わることができます。ソースコード*2GitHub上にあるので気になる方は覗いてみてください。

継続的インテグレーションとは

CI(Continuous Integration)は、毎日何度も継続的にビルドを実行する仕組みのことです。 ソフトウェア開発の品質と生産性を向上させることが目的で、短いサイクルでビルドしてその結果を開発者にフィードバックすることにより、ソフトウェアのインテグレーション時に発生する様々な問題の早期発見・早期解決を目指すのです。

ビルド

ビルドは、コンパイルやテストなどを実行し、「正しく」動作するソフトウェアやアプリケーションを生成する一連のプロセスのことです。手作業で行われたり、シェルスクリプトやビルドツールなどで一部自動化されていたりします。しかし、手作業ではミスをしたり作業が属人化したり、スクリプトでも特定の環境でしか同じ結果にならないなどの問題が生じます。

CIではこのような問題を一挙に解決できます。

CI活用の大まかな流れ

CIは下記の2〜5を自動化します。なんとなく便利なイメージがつくでしょうか?

  1. 開発者がソースコードの修正をコミットし、ローカル環境で動作確認をして問題がなければリモートリポジトリに変更をプッシュする
  2. リモートリポジトリの変更を検知し、ビルドが実行される
  3. ビルド結果(成功/失敗)を開発者にフィードバックする(メールやRSS、Slackなどのツールと連携する場合もある)
  4. ビルド結果のレポートを作成する
  5. ビルドが成功している場合、デプロイする

結果のレポートには、ビルド自体や内部で行っているユニットテストやE2Eテストなどの成否、それにかかった時間などを載せる運用が多いでしょう。後からレポートを振り返ることで様々な分析ができるのもメリットですね。

あらゆることが自動化されることで、開発者の作業が大幅に削減できます。ソースコードの修正を起点にデプロイまでが完了し、開発当事者だけでなく他の開発者やプロデューサに修正したソフトウェア・アプリケーションを共有することが容易になります。

Jenkinsの歴史を少し

  • 2004年、Hudsonという名前で、当時Sun Microsystemsで川口耕介氏(Jenkins生みの親)の個人的なプロジュエクトとしてスタート
  • 2008年、同社からサポートが提供され始める→同年、JavaOne Duke’s Choice Arardsを受賞して、CIのデファクトスタンダード
  • 2010年、同社がOracleに買収され、川口さんもOracleを去る→OracleがHudsonという名称を商標登録する問題が発生
  • 2011年、Hudsonプロジェクトからフォークされ、名称を変更したものが現在のJenkins
  • 2013年段階で、Linuxカーネルの半分弱に及ぶコミット数👏
  • 2015年にアクティブユーザが10万人超え👏
  • 2016年にJenkins 2.0リリース→同年、Jenkins Certification*3という認定制度が開始🔥
  • 現在に続く…

まとめ

Jenkinsは、CIを効率的に行うための土台を提供しているツールです。 オープンソースであり、その中でも活発に開発活動が続けられているプロジェクトの一つです。

無料で利用できるので、興味のある方は使ってみてはどうでしょうか?私もこれから実際に自分のPCにインストールし、手を動かしながら学習していきます🔥

書籍情報

Jenkins実践入門改訂第3版 ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plusシリーズ) [ 川口耕介 ]

価格:3,278円
(2022/3/20 11:05時点)
感想(1件)

[改訂第3版]Jenkins実践入門 ーービルド・テスト・デプロイを自動化する技術【電子書籍】[ 川口耕介【監修】 ]

価格:3,278円
(2022/3/20 11:05時点)
感想(0件)

  • 【書籍名】Jenkins実践入門改訂第3版 ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plusシリーズ)
  • 【著者名】川口耕介, 佐藤聖
  • 【出版社】技術評論社
  • 【出版日】2017年6月
  • 【ページ数】416

コンピュータが計算ミスをする?!〜書籍『プログラムはなぜ動くのか』より〜

読み終えるまで約5分

どうも、ちゃんなるです。 今回は、あの正確無比なコンピュータが計算ミスをする…という事実を紹介します✌️

「んなアホなw」 「計算できないコンピュータ、冷やせない冷蔵庫みたいなもんやん笑」

色々と思うところはあるでしょう。しかし、事実としてある条件下では必ず計算ミスをしてしまうのが現代のコンピュータなのですよ…涙

*内容はこの本『プログラムはなぜ動くのか』を参考にしています。

①論より証拠、プログラム実行結果を見よう

実行するプログラム(今回はJavaScriptを使用しているが、別言語でも再現可能*1

let result = 0;            // 結果を格納する変数
for(let i=0; i<100; i++){  // 100回のループ処理を実行
    result += 0.1;         // 0.1をresultに加算し続ける
}
console.log(result);       // 結果: 9.99999999999998

次の画像を見てくださいな🙋‍♀️

f:id:Chan-Naru:20220308050412p:plain
paiza.io上のプログラム実行結果の例
*実行環境としてオンラインJavaScriptエディタのpaiza.ioを使用*2

「嘘やん、そんなわけないやろ笑」

ぜひ、ブラウザ上のコンソール、またはpaiza.ioのサイトなどで実行してみてください!

②なぜ10にならないの?

端的に言うと、コンピュータ内部では2進数が使われているから、です。

「ふぁ?」

私たちは10進数(0から9の10種の数字)を用いますが、コンピュータは計算や画面の表示などの全ての処理を2進数(0と1の2種類の数字)でのみ行います(詳細は省略)。

画面上で見る10進数の演算も、内部では2進数の値で行われており、画面に表示する際は10進数に変換してから表示しています(少々語弊のある表現かもしれませんがご了承くださいmm)。

そして、10進数の少数点数の中には2進数で表現できないものがあります。0.1はそのうちの一つであり、今回はこの0.1を用いて計算をしたため、誤差が乗って計算ミスにつながったのです。

③10進数の少数点数には2進数で表せないものがある!

例えば、10進数の5を2進数で表すと0.101となり、10進数の0.625を2進数で表すと0.101となります(計算過程は省略)。

10進数の0.1を2進数で表現すると…

0.000110011001100...

循環小数になってしまう、近似値で表すしかない涙

よって実際の値とはずれてしまう、というのが計算ミスの理由なのでした。

まとめ

コンピュータにもできない計算がある!少数を扱う計算には要注意!

計算ミスをする背景は、2進数では表現できない10進数の少数点数があるということ。

計算ミスを避けるには、2進数で表現できる値で計算を行うこと。正確な値が求められる場合は、少数の計算を避けた方がいいでしょう。今回の場合は、『0.1を100回加算』ではなく、下記のように『1を100回加算し最後に10で割る』少数を使わないように工夫するといいでしょう。

let result = 0;            // 結果を格納する変数
for(let i=0; i<100; i++){  // 100回のループ処理を実行
    result += 1;           // 1をresultに加算し続ける
}
result /= 10;              // resultを10で割る
console.log(result);       // 結果: 10!!!

書籍情報

プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識 [ 矢沢 久雄 ]

価格:2,640円
(2022/3/8 04:43時点)
感想(0件)

プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識【電子書籍】[ 矢沢 久雄 ]

価格:1,320円
(2022/3/8 04:43時点)
感想(0件)

  • 【書籍名】プログラムはなぜ動くのか
  • 【著者名】矢沢久雄
  • 【出版社】日経BP
  • 【出版日】2021年5月14日頃
  • 【ページ数】308

*1:書籍中ではC言語で実践しています。

*2:paiza.io

Webブラウザのレンダリングエンジンの仕組み

読み終えるまでおよそ5分

どうも、ちゃんなるです。

今日はブラウザのレンダリングエンジンの仕組みについてやさーしくまとめます。

現職エンジニアの方々には簡単かもしれないけど、読んでもらえると嬉しいです🙋‍♀️

f:id:Chan-Naru:20220223093240p:plain
http://www.shoshinsha-design.com/2016/05/%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%83%95%E3%83%A9%E3%83%83%E3%83%88%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3/.html

次の書籍の内容を参考にしました。

①まず、ブラウザって?

サーバからWebサイトを取得し、画面に表示してくれるアレです。 ChromeとかSafariFirefox、EdgeのようなWebページを見るためのツールです。

ちなみに、ブラウザの世界シェアはこの順になってます。*1

f:id:Chan-Naru:20220223094017p:plain
ブラウザの世界シェア 2021年1月〜2022年1月

ブラウザは、与えられたURLからサーバとWebサイトのファイル(主にHTMLファイル)を特定し、ファイルを取得します。WebサイトはHTML、CSSJavaScript、画像ファイルなどのさまざまな要素で構成されます。

レンダリングエンジンとは、ブラウザの中に入っている仕組みのことで、HTMLをはじめとしたWebサイト構成要素を読み取って、画面上のピクセルに描画する機能を持ちます。メールクライアントに入っていることもあり、それゆえテキストだけでなく綺麗に装飾されたメール(HTMLメール)を使うことができます。(広告メールとかレイアウト綺麗ですよね笑)

②Webページがレンダリングされる流れ

大まかに言うと、4つのパートで構成されます。

Loading→Scripting→Rendering→Painting

  • Loading: 必要なリソースを集めます。具体的には、HTMLとその内部で参照されているリソースを再帰的に取得し、ブラウザ内部で扱いやすい形式に変換します。
    • ちなみに、HTMLはDOMツリー、CSSはCSSOMツリーという形式に変換されるようです。*2

f:id:Chan-Naru:20220223095328p:plain
ブラウザの内部表現の形式

  • Scripting: JavaScriptを実行します。場合によってはDOM要素を書き換えることがあります。
  • Rendering: 画面の表示に必要な要素を計算して求めます。
    • まず、全てのDOM要素に対し、適用されるCSSを決定します。
    • その後、適用される全てのCSSの視覚的なレイアウト情報の計算をします。(フォントサイズが○○で、ボックス幅が△△で〜のようなイメージ)
  • Painting: 実際に画面に描画します。(描画はレイヤーごとに分けて行われ、最終的にはレイヤーを重ね合わせて描画完了となるそうですが、レイヤーに関しては省略しますmm)

③再レンダリング

②までは、初期画面表示の話です。

Webページには、ボタンや入力フォームなどのコンテンツがあり、ユーザの操作によって画面が変わったりしますよね。その際に起こるのが再レンダリングです。

Webコンテンツがユーザによって使用される(=DOMイベント発生)→Scripting→Rendering→Painting

と、再度レンダリングのフローが走るのですね。

ちなみに、全ての要素が再計算されるわけではありません(再計算不要なものは再利用されます)。

まとめ

ブラウザと、ブラウザがWebページを表示する際に行われている処理をざっくり解説しました。

『Loading→Scripting→Rendering→Painting』です。

「大体こんな感じで動いているんだなぁ〜」と知ることで、今後のプログラミングに生きるかもしれません(知らんけど)。

不適切な表現や間違った部分があれば、厳しくご指摘お願いします!

書籍情報

Webフロントエンドハイパフォーマンスチューニング Webサイト・アプリケーションを徹底的に高速化 [ 久保田光則 ]

価格:2,948円
(2022/2/23 09:30時点)
感想(0件)

  • 【書籍名】Webフロントエンドハイパフォーマンスチューニング Webサイト・アプリケーションを徹底的に高速化
  • 【著者名】久保田光則
  • 【出版社】技術評論社
  • 【出版日】2017年6月
  • 【ページ数】337

【Privacy Policy】資産運用シミュレータ

Privacy Policy Privacy Policy

Narumi Nogawa built the 資産運用シミュレータ app as an Ad Supported app. This SERVICE is provided by Narumi Nogawa at no cost and is intended for use as is.

This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.

If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy.

The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at 資産運用シミュレータ unless otherwise defined in this Privacy Policy.

Information Collection and Use

For a better experience, while using our Service, I may require you to provide us with certain personally identifiable information. The information that I request will be retained on your device and is not collected by me in any way.

The app does use third party services that may collect information used to identify you.

Link to privacy policy of third party service providers used by the app

Log Data

I want to inform you that whenever you use my Service, in a case of an error in the app I collect data and information (through third party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing my Service, the time and date of your use of the Service, and other statistics.

Cookies

Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.

This Service does not use these “cookies” explicitly. However, the app may use third party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.

Service Providers

I may employ third-party companies and individuals due to the following reasons:

  • To facilitate our Service;
  • To provide the Service on our behalf;
  • To perform Service-related services; or
  • To assist us in analyzing how our Service is used.

I want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.

Security

I value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee its absolute security.

Links to Other Sites

This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of these websites. I have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.

Children’s Privacy

These Services do not address anyone under the age of 13. I do not knowingly collect personally identifiable information from children under 13 years of age. In the case I discover that a child under 13 has provided me with personal information, I immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact me so that I will be able to do necessary actions.

Changes to This Privacy Policy

I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page.

This policy is effective as of 2021-11-20

Contact Us

If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me at narutyan0711@gmail.com.

This privacy policy page was created at privacypolicytemplate.net and modified/generated by App Privacy Policy Generator