rabbit-slide-kou-schoo-readable-code-2015-04 2015.4.3.0 → 2015.4.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/chapter-7.rab +45 -15
- data/config.yaml +1 -1
- data/pdf/schoo-readable-code-2015-04-chapter-7.pdf +0 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23cc1c9aec53ccaba058272cdd69c2fecc4b952b
|
4
|
+
data.tar.gz: 64951a479946b23e222366824c9eaeb68a821b37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 281337d0b6c01dcafc7b5a8a4f174e0f2affb14f9dc7881bc8dba2b3aadeccfe8bc174e1e332e32a8628003ae6110913d9936bcd75f44de54b0649080e207807
|
7
|
+
data.tar.gz: 69822379c200cbc7275e67aab0083d08d405a3868c2abfd4977c1051d7041f0bf044b2ed6daf19f47fcdf26d6c9411ae5c827b397ff50f3142dbab3942ef0216
|
data/chapter-7.rab
CHANGED
@@ -255,6 +255,7 @@
|
|
255
255
|
|
256
256
|
# coderay c
|
257
257
|
|
258
|
+
/* A | B */
|
258
259
|
if (a == b) { | if (a != b) {
|
259
260
|
/* ケース1 */ | /* ケース2 */
|
260
261
|
} else { | } else {
|
@@ -264,6 +265,20 @@
|
|
264
265
|
(('tag:center'))
|
265
266
|
どちらがリーダブル?
|
266
267
|
|
268
|
+
= 7.2 例:処理の順番
|
269
|
+
|
270
|
+
# coderay c
|
271
|
+
|
272
|
+
/* A | B */
|
273
|
+
if (a == b) { | if (a != b) {
|
274
|
+
/* ケース1 */ | /* ケース2 */
|
275
|
+
} else { | } else {
|
276
|
+
/* ケース2 */ | /* ケース1 */
|
277
|
+
} | }
|
278
|
+
|
279
|
+
(('tag:center'))
|
280
|
+
A(左)の方がリーダブル
|
281
|
+
|
267
282
|
= 7.2 指針
|
268
283
|
|
269
284
|
* 否定形は肯定形にして書く
|
@@ -297,7 +312,7 @@
|
|
297
312
|
|
298
313
|
# coderay cpp
|
299
314
|
|
300
|
-
//
|
315
|
+
// 関心を引く条件「expand_all」を優先
|
301
316
|
// (肯定形になったのはおまけ)
|
302
317
|
if (url.HasQueryParameter("expand_all")) {
|
303
318
|
for (int i = 0; i < items.size(); i++) {
|
@@ -364,10 +379,11 @@ ifとreturnの使い方\n
|
|
364
379
|
|
365
380
|
= 番外:パスとリーダブル
|
366
381
|
|
367
|
-
*
|
368
|
-
|
369
|
-
*
|
370
|
-
|
382
|
+
* パス
|
383
|
+
* 処理を実行するときの流れ
|
384
|
+
* コードを読むときの流れでもある
|
385
|
+
* 読みやすい流れ
|
386
|
+
* →リーダブル!
|
371
387
|
|
372
388
|
= 番外:例(1)
|
373
389
|
|
@@ -392,8 +408,9 @@ ifとreturnの使い方\n
|
|
392
408
|
# コメント追加しないの!?
|
393
409
|
report_access_error
|
394
410
|
else
|
395
|
-
#
|
396
|
-
#
|
411
|
+
# else(その他)の方の処理だけど
|
412
|
+
# このメソッドにとって大事な処理か
|
413
|
+
# ifの方と同列の大事さの処理かと思った
|
397
414
|
comment = Comment.create(text)
|
398
415
|
post.add(comment)
|
399
416
|
end
|
@@ -406,12 +423,12 @@ ifとreturnの使い方\n
|
|
406
423
|
# コメントを追加するメソッドだな!
|
407
424
|
def add_comment(post, user, text)
|
408
425
|
if post.hidden_from?(user)
|
409
|
-
#
|
426
|
+
# すぐにreturnしているし特別な処理なんだな
|
410
427
|
report_access_error
|
411
428
|
return
|
412
429
|
end
|
413
430
|
|
414
|
-
#
|
431
|
+
# 通常はコメントを追加するんだな!
|
415
432
|
comment = Comment.create(text)
|
416
433
|
post.add(comment)
|
417
434
|
end
|
@@ -443,11 +460,13 @@ ifとreturnの使い方\n
|
|
443
460
|
def prepare_database(path)
|
444
461
|
if not File.exist?(path)
|
445
462
|
# なかったら作るのか
|
463
|
+
# あれ、作るのも普通の「準備」なような…
|
446
464
|
return Database.create(path)
|
447
465
|
end
|
448
466
|
|
449
467
|
# あったら開くのか
|
450
|
-
#
|
468
|
+
# やっぱりどっちも「準備」だよなぁ
|
469
|
+
# なにか特別な意図があるんだろうか…
|
451
470
|
Database.open(path)
|
452
471
|
end
|
453
472
|
|
@@ -469,7 +488,8 @@ ifとreturnの使い方\n
|
|
469
488
|
= 番外:例(2)まとめ
|
470
489
|
|
471
490
|
* 正常系同士の扱いを変えない
|
472
|
-
*
|
491
|
+
* 変えると意図があると勘違いする
|
492
|
+
* 「Aの処理は何か特別なのかも…」
|
473
493
|
* なんでもガード節にしない
|
474
494
|
* 特別なケースや異常系のときだけ
|
475
495
|
|
@@ -482,10 +502,21 @@ ifとreturnの使い方\n
|
|
482
502
|
|
483
503
|
= 実際の改善にチャレンジ!
|
484
504
|
|
485
|
-
|
505
|
+
# coderay javascript
|
486
506
|
|
487
|
-
|
488
|
-
|
507
|
+
// 読みやすい制御フローにして投稿・よい投稿に「いいね!」して応援
|
508
|
+
|
509
|
+
function positiveIntegerSum(n) { // n以下の正の整数の合計を返す
|
510
|
+
if (0 >= n) {
|
511
|
+
return -1; // エラー
|
512
|
+
} else {
|
513
|
+
var total = 0;
|
514
|
+
for (; n > 0; n--) {
|
515
|
+
total += n;
|
516
|
+
}
|
517
|
+
return total;
|
518
|
+
}
|
519
|
+
}
|
489
520
|
|
490
521
|
= まとめ(1)
|
491
522
|
|
@@ -514,7 +545,6 @@ ifとreturnの使い方\n
|
|
514
545
|
# blockquote
|
515
546
|
# title = 7章 制御フローを読みやすくする p. 89
|
516
547
|
|
517
|
-
鍵となる考え\n
|
518
548
|
行数を短くするよりも、他の人が理解するのにかかる時間を短くする。
|
519
549
|
|
520
550
|
= これから(1)
|
data/config.yaml
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbit-slide-kou-schoo-readable-code-2015-04
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2015.4.3.
|
4
|
+
version: 2015.4.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rabbit
|