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 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