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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 375f4283c021659fa0aa9cb050066b834f92e408
4
- data.tar.gz: 5578a7088b61491271240141fd4d615131389516
3
+ metadata.gz: 23cc1c9aec53ccaba058272cdd69c2fecc4b952b
4
+ data.tar.gz: 64951a479946b23e222366824c9eaeb68a821b37
5
5
  SHA512:
6
- metadata.gz: c20f9ac2013920950e0211b64d1b1c461cbb2c8ca1285442fb3b359953a618c3fa834e595b63f2a3faf455912f07e892eb1c3f576b130ec0e9b66fb31d1a3b3b
7
- data.tar.gz: 0755f1997a03ab369158ddf0bb7b04b940bae5891a19f9c915b9490cbc1a7d3455233dc87411090b2787572d12a5b97d79af7d06d84ebed6ff1e9984f735fed6
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
- // 関心が引く条件「expand_all」を優先
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
- * 読みやすい流れにすれば\n
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
- # ifの方と同列の処理かと思った
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
- TODO
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
@@ -6,7 +6,7 @@ tags:
6
6
  - readable-code
7
7
  - schoo
8
8
  presentation_date: 2015-04-03
9
- version: 2015.4.3.0
9
+ version: 2015.4.3.1
10
10
  licenses:
11
11
  - CC BY-SA 4.0
12
12
  slideshare_id:
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.0
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-26 00:00:00.000000000 Z
11
+ date: 2015-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rabbit