rabbit-slide-kou-schoo-readable-code-2015-04 2015.4.3.0 → 2015.4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|