感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

おそらく、コードレビューを成功させるために最も有効な方法は、レビューを楽しいものにすることです。 by Mattias Karlsson

スポンサーリンク

ことば

コードレビューの目的は、ただコードの誤りを修正するだけではありません。
重要なのは、チーム全員に同じ知識を共有させること、またコーディングにおいて全員が守るべきガイドラインを確立することです。おそらく、コードレビューを成功させるために最も有効な方法は、レビューを楽しいものにすることです。
マティアス・カールソン(Mattias Karlsson)
プログラマが知るべき97のこと

この話から得られる教訓は、コードレビューには意義があるということ。
つまらないレビューは効果を薄くしているということ。
マティアス・カールソンはこのトピックの中で「辛辣な批判は絶対にしてはいけません」と言っている。
職場ではなぜか「詰めるレビュー」を好む偉い人がいたのだが、こういうのはやめたほうがいい。
逆に、技術力のある人で詰める人は見たことがない。代わりに代替案を出すからだ。

レビューで詰めるのが大好きなな人は、よくわからないけどドキュメントの体裁とか説明の仕方に難癖をつけているように見える。
それよりも建設的なコードレビューしましょう。

とにかく色々書いてJavaScriptに慣れる

モダンJavaScriptは読んだけど、まだ全然手に馴染んでいないので、とにかく書きまくる。
方法はJavaScriptクックブックを頭から書いていって、スラスラできなかったところはモダンJavaScriptやサイ本を復習する。
それを最後までやり切る。

■文字列を分割するサンプル
JavaScript

/**
 * 文字列を分割するサンプル
 */
window.onload = function() {
	var keywordList = prompt("カンマで区切ったキーワードを入力してください","");
	//カンマで分割する。この辺はJavaとそっくり
	var arrayList = keywordList.split(",");
	var resultString = "";
	for (var i = 0; i < arrayList.length; i++) {
		resultString += "キーワードは:" + arrayList[i] + "</br>";
 	}

 	var blk = document.getElementById("result");
 	blk.innerHTML = resultString;
}

・HTML

<!doctype html>
<html lang="ja">
<head>
	<meta charset="UTF-8">
	<title> Test </title>
	<link rel="stylesheet" href="css/clean.css">
	<script src="js/test.js"></script>
</head>
<body>
	<div id="result"></div>
</body>
</html>

イベント処理に関する知識が曖昧だったので、早速復習する

■イベント処理コード

window.onload = function() {
	//何か
}

イベントハンドラの削除

window.onload = null;

・使用するブラウザに関係なくイベントリスナーを割り当てるためのユーティリティクラス

/**
 * ブラウザに影響されずにイベントを登録するクラス
 */
var U = {
	//引数が文字列型の場合id要素を返すメソッド
	$: function(id) {
		'use strict';
		if (typeof id == 'string') `
			return document.getElementById(id);
	},

	setText: function(id,message) {
		'use strict';
		if ( (typeof id == 'string') && (typeof message == 'string') ) {
			//idに指定した要素を取得する
			var output = this.$(id);
			//要素がない場合はfalseを返す
			if (!output) {
				return false;
			}

			if (output.textContent !== undefined) {
				output.textContent = message;
			} else {
				output.innerText = message;
			}
			return true;
		}
	},

	//IE対応
	addEvent: function(obj, type, fn) {
		'use strict';
		if (obj && obj.addEventListener) {
			obj.addEventListener(type, fn, false);
		} else if {
			obj.attachEvent('on' + type, fn);
		}
	},

	//IE対応
	removeEvent: function(obj, type, fn) {
		'use strict';
		if (obj && obj.removeEventListener) {
			obj.removeEventListener(type,fn,false);
		} else if (obj && obj.detachEvent) {
			obj.detachEvent('on' + type, fn);
		}
	}
};

読んだ本

入門 モダンJavaScript

入門 モダンJavaScript

感謝のプログラミング

今回で感謝のプログラミングは【218時間目】
10000時間まで、あと【9782時間】