$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

「生命保険のウラ側」を読んだ

保険について気になってきたので、「医療保険は入ってはいけない!」を読んだ - $shibayu36->blog;に引き続き、「生命保険のウラ側」を読んだ。

この本は論点がはっきりしていて、非常に分かりやすく面白かった。「掛け捨ての定期保険だけでいい」と提唱した上で、なぜそういう主張になるのかというのを少しずつ説明してくれる。

この本の中で面白かったのは以下の三つ。

  • 保険が適している事態
  • 保険を見なおしするときの三つのポイント
  • 保険業界人の保険加入における考え方

保険が適している事態

この本では、保険は「起こる確率が低いものの、一旦起きた時には高額の資金が必要になる事態」に適していると書かれていた。これは納得できた。


この本を読んで、結局多大な金額が必要になった時に、それに対して自分の収入では支払いきれないという不安があるなら、安心を買うために保険を買うんだろうという理解に落ち着いた。例えば自賠責保険とかは、他人を傷つけてしまった時にその保障にかかる金額は億を超えることがよくあるので、その不安を解消するために入る。死亡保険とかは、自分が死んだ時に妻や子供が必要なお金が数千万に上るため、その不安を解消するために入る。こう考えるとけっこうシンプル。

このことから考えてみると、入院での100万くらいの金額の場合、保険が適しているのかは確かに疑問。その金額を保障するためにそこそこの金額を払うのであれば、それは貯金に回したほうが自由度の高いお金を確保できる。


こんな感じでこの本を読んで保険が適しているのは、「起こる確率が低いものの、一旦起きた時には高額の資金が必要になる事態」であると考えられるようになったのは良かった。もちろん投資的な側面も考え始めると変数は増えるけど、それにしてもまず「何のためのものか」をシンプルにできたのは良い。

保険を見なおしするときの三つのポイント

またこの本には今保険に入っているならこうやって見なおそうと書いてあった。

1. 定期保険が必要であれば残す
2. 入院に備える特約などは既に病気にかかっていて入院しがちな方以外は「特約の解約」を行う
3. 金利が高い地代に契約した「終身保険」「養老保険」など、資産性のある契約は継続する

具体的な方法は本に書いてあるので省くけど、実際にいま加入している場合、まず続けるかやめるかという基準が分からなくなっていると思うので、こういうのが書いてあるのはありがたい。

保険業界人の保険加入における考え方

この本には、一番参考になるのは保険のプロが自分の家族のためにどんな保険をかけているかと書かれていた。保険のランキングとかよりこっちのほうが参考になるみたい。

その章でこんな感じのことが書かれていて参考になった。

保険業界人の保険加入における考え方には、次の特徴があります。
1. 世帯主の死亡保障は「定期保険」をメインにして準備する。その際、1円でも保険料が安い保険を選ぶ。
2. 「がん保険」は「できれば入っておきたい」と考えている人が多い。
3. 「医療保険」の加入にはこだわらない。不要論者も多数。

本を読んでいると結局はプロはできる限りシンプルな保険に入っていることが分かった。また、高額の資金が必要になる事態に備えていることも分かった。

まとめ

論点がまとまってて非常に分かりやすい本だった。また結局保険も変数を少なくして分かりやすくするみたいになってて、どんなものも同じようなやり方をするんだなと思った。プログラミングと同じっぽい。

「医療保険は入ってはいけない!」を読んだ

最近保険とかも気になってきたので読んだ。

この本は医療保険で喧伝されている内容があまり事実ではないことを紹介し、では実際に病気などのリスクに備えるにはどういう対策をしていったら良いかを教えてくれる。とりあえず不安だから保険にでも入ってみるかとか思っているならこの本を一回読んでみても良さそう。ただし、この本はコラムという形式で1テーマについて少しずつ情報を書いてあるので、体系的に保険の知識を学びたいなら適していないかもしれない。


この本の中で一番印象に残ったのは「今の医療制度をもとに開発された医療保険はいずれ時代遅れ保険になる」ということ。保険を検討する上で終身だったら安く済むし、とか考えがち。しかし、終身の場合保証内容は変わらないので、お金を支払っているけど今は役に立たない、みたいな状況が起こる可能性がある。このことは頭にとどめておいたほうが良いと感じた。


病気などのリスクを検討しないままなのは考えなしだし、しかしだから保険にと飛びつくのも同じく考えることを放棄しているので、この辺は慎重に考えたい。

gulp + browserify + tsifyを利用してTypeScriptコンパイル環境を作る

最近TypeScriptを書いている。TypeScriptはそのままではブラウザで動かないのでコンパイルしてES5の形式にする必要がある。tscを使えば普通にコンパイル出来るのだが、今回はgulp + browserify + tsifyを利用したTypeScriptコンパイル環境を作ってみたのでメモしておく。

必要なnodeモジュールのインストール

typescript, gulp, browserify, vinyl-source-stream, tsifyが必要。

# globalにtypescriptを入れる
npm install -g typescript

# ビルドに必要なモジュールを入れる
npm install gulp --save-dev
npm install browserify --save-dev
npm install vinyl-source-stream --save-dev
npm install tsify --save-dev

tsconfig.jsonを用意する

TypeScriptをコンパイルするために、コンパイル用の設定を用意しておく。TypeScriptのコンパイラはtsconfig.jsonというのを見てくれるし、tsifyもこれを見てくれるようなので、tsconfig.jsonを用意する。tsconfig.jsonについては https://github.com/Microsoft/TypeScript/wiki/tsconfig.json を参考に。またcompierOptionsについては https://github.com/Microsoft/TypeScript/wiki/Compiler-Options を参考に。

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "ES5"
    },
    "exclude": [
        "node_modules"
    ]
}

とりあえず適当にこんな感じ。

gulpでビルドする環境を作る

browserify + tsifyという組み合わせでやってみる。src/ts/app.tsをエントリーポイントとして、static/js/app.jsに出力するための設定はこんな感じ。

var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');

gulp.task('build-ts', function () {
    return browserify({
        entries: './src/ts/app.ts'
    }).plugin('tsify')
        .bundle()
        .pipe(source('app.js'))
        .pipe(gulp.dest('./static/js'));
});

browserifyでtsifyプラグインを有効にして、bundleを呼ぶ。その後vinyl-source-streamでvinylに変換し出力している。以前も書いたけどこの辺は gulp と browserify と vinyl の話 - <body> を参考に。

TypeScriptのファイルを書いてみる

src/ts/以下にファイルを作ってみる。

まず適当に外部モジュール用ファイルを作る。module1.tsとmodule2.tsという単純な構造の外部モジュールを二つ作成する。

src/ts/module1.ts

export default function (): string {
    return "module1";
}

src/ts/module2.ts

export default function (): string {
    return "module2";
}


次にエントリーポイントとなるapp.tsファイルを作成する。この中では先ほど定義した二つの外部モジュールをimportし、それを利用しているだけ。

src/ts/app.ts

"use strict";

import module1 from "./module1";
import module2 from "./module2";

alert(module1());
alert(module2());


これでファイルを作成できた。

TypeScriptのファイルをコンパイルする

ここまででTypeScriptのビルドの準備が出来た。あとは以下のコマンドを実行することで、src/ts/app.tsをエントリーポイントとして、依存モジュールを解決してくれて、static/js/app.jsの一つのファイルにコンパイルされる。

./node_modules/.bin/gulp build-ts

実行するとstatic/js/app.jsには以下のように出力され、コンパイルが成功していることが分かる。

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";
var module1_1 = require("./module1");
var module2_1 = require("./module2");
alert(module1_1.default());
alert(module2_1.default());

},{"./module1":2,"./module2":3}],2:[function(require,module,exports){
function default_1() {
    return "module1";
}
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;

},{}],3:[function(require,module,exports){
function default_1() {
    return "module2";
}
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;

},{}]},{},[1]);

まとめ

今回はgulpでの最低限のTypeScriptコンパイル環境を作ったのでまとめてみた。最初から全部一気にやろうとするとよく分からなくなるのでこういう感じで1つずつ最小限の仕組みで動くように作ってみると勉強になる。

今回のはもちろん前回書いたJSをbrowserifyでビルドし、ライセンスコメントを適切に残す - $shibayu36->blog; と組み合わせて、typescriptをコンパイルしてnpmのモジュールを利用し、licenseも残すみたいなことも出来る。その方法については、まだnpmのモジュールをTypeScriptから用いる方法についても書いてないので、また次の機会に回す。