Slide 1

Slide 1 text

© RAKUS Co., Ltd. レガシーコードに潜む奇妙なコメント  〜信じるか信じないかはあなた次第〜 #phpkansai 株式会社ラクス  ⼤阪第⼀開発部 メールディーラー開発課 ⼭村 光平 2024/02/11 1

Slide 2

Slide 2 text

2 ⼭村 光平(やまむら こうへい) ラクスの新卒2年⽬ メールディーラー開発課 実装チーム所属 趣味は旅⾏‧テニス‧映画鑑賞

Slide 3

Slide 3 text

© RAKUS Co., Ltd. 3 コメント読んでますか?

Slide 4

Slide 4 text

© RAKUS Co., Ltd. 4 4 読める、読めるぞ! コメントが記述されていると理解がスムーズ

Slide 5

Slide 5 text

© RAKUS Co., Ltd. 5 5 読める、読めるぞ! コメントが記述されていると理解がスムーズ 嘘 陳腐化 奇妙

Slide 6

Slide 6 text

© RAKUS Co., Ltd. 6 6 ⽬がぁぁ〜! ⽬がぁぁぁぁあっ!! コメントが記述されていると理解がスムーズ 嘘 陳腐化 奇妙

Slide 7

Slide 7 text

© RAKUS Co., Ltd. 7 レガシーコードに潜む奇妙なコメント

Slide 8

Slide 8 text

8 //       if(!$isHogeSetting && !$isFugaSetting){

Slide 9

Slide 9 text

9 // 条件分岐 if(!$isHogeSetting && !$isFugaSetting){

Slide 10

Slide 10 text

10 // 条件分岐 if(!$isHogeSetting && !$isFugaSetting){ ノーヒント

Slide 11

Slide 11 text

11 // エラーページにリダイレクト redirectErrorPage();

Slide 12

Slide 12 text

12 // エラーページにリダイレクト redirectErrorPage();

Slide 13

Slide 13 text

13 // エラーページにリダイレクト redirectErrorPage(); わかっとるわ

Slide 14

Slide 14 text

14 // 正しいチェックサム?

Slide 15

Slide 15 text

15 // 正しいチェックサム? もっと自信持て

Slide 16

Slide 16 text

16 // プルダウンを生成

Slide 17

Slide 17 text

17 // プルダウンを生成 なおプルダウンは生成されない模様

Slide 18

Slide 18 text

18 // プルダウンを生成 なおプルダウンは生成されない模様 // テキストを生成

Slide 19

Slide 19 text

19 //とりあえず応急処置として削除します。

Slide 20

Slide 20 text

20 //とりあえず応急処置として削除します。 書かれたの10年前ですが...

Slide 21

Slide 21 text

21 //とりあえず応急処置として削除します。 書かれたの10年前ですが... 大丈夫そ?

Slide 22

Slide 22 text

22 // 予約変数名は下記の通り。つかってはいけません。 // $db, $auth, $html, $sess, $system, $reload // リクエストパラメータ // $id . . . // 予約変数名は下記の通り。つかってはいけません。 // $db, $auth, $html, $sess, $system, $reload

Slide 23

Slide 23 text

23 // 予約変数名は下記の通り。つかってはいけません。 // $db, $auth, $html, $sess, $system, $reload // リクエストパラメータ // $id . . . // 予約変数名は下記の通り。つかってはいけません。 // $db, $auth, $html, $sess, $system, $reload 大事なことなので二回言いました

Slide 24

Slide 24 text

24 //変なクラスですが… //パラメータを渡して作ってください。

Slide 25

Slide 25 text

25 //変なクラスですが… //パラメータを渡して作ってください。 不穏すぎる

Slide 26

Slide 26 text

26 //変なクラスですが… //パラメータを渡して作ってください。 不穏すぎる 何が変か教えて

Slide 27

Slide 27 text

27 //** 条件 ******************************************

Slide 28

Slide 28 text

28 //** 条件 ****************************************** // 変更確定でない、

Slide 29

Slide 29 text

29 //** 条件 ****************************************** // 変更確定でない、 // かつメールが選択されている、、

Slide 30

Slide 30 text

30 //** 条件 ****************************************** // 変更確定でない、 // かつメールが選択されている、、 // かつ( (状態パネルが表示されている、

Slide 31

Slide 31 text

31 //** 条件 ****************************************** // 変更確定でない、 // かつメールが選択されている、、 // かつ( (状態パネルが表示されている、 // かつ、状態「変更なし」でない) 、

Slide 32

Slide 32 text

32 //** 条件 ****************************************** // 変更確定でない、 // かつメールが選択されている、、 // かつ( (状態パネルが表示されている、 // かつ、状態「変更なし」でない) 、 // または、(担当者パネルが表示されている、

Slide 33

Slide 33 text

33 //** 条件 ****************************************** // 変更確定でない、 // かつメールが選択されている、、 // かつ( (状態パネルが表示されている、 // かつ、状態「変更なし」でない) 、 // または、(担当者パネルが表示されている、 // かつ、担当者「変更なし」でない) )

Slide 34

Slide 34 text

34 //** 条件 ****************************************** // 変更確定でない、 // かつメールが選択されている、、 // かつ( (状態パネルが表示されている、 // かつ、状態「変更なし」でない) 、 // または、(担当者パネルが表示されている、 // かつ、担当者「変更なし」でない) ) もうやめて!

Slide 35

Slide 35 text

35 //** 条件 ****************************************** // 変更確定でない、 // かつメールが選択されている、、 // かつ( (状態パネルが表示されている、 // かつ、状態「変更なし」でない) 、 // または、(担当者パネルが表示されている、 // かつ、担当者「変更なし」でない) ) もうやめて! 実装者のライフはゼロよ!!!

Slide 36

Slide 36 text

36 // バグっぽい挙動だが、今はこうなっている。

Slide 37

Slide 37 text

37 // バグっぽい挙動だが、今はこうなっている。 それバグでは?

Slide 38

Slide 38 text

38 // 思ったとおりに並び替えをしてくれないが、なぜか

Slide 39

Slide 39 text

39 // 思ったとおりに並び替えをしてくれないが、なぜか いやバグやて

Slide 40

Slide 40 text

40 //なぜ文字列???????????????????? aaaaaa

Slide 41

Slide 41 text

41 // 見た目に影響がなくてもエラーを返す場合がある //なぜ文字列???????????????????? aaaaaa

Slide 42

Slide 42 text

42 // 見た目に影響がなくてもエラーを返す場合がある //なぜ文字列???????????????????? aaaaaa //↑なぜかidを持っていないユーザがいる…ので一応

Slide 43

Slide 43 text

43 // 見た目に影響がなくてもエラーを返す場合がある //なぜ文字列???????????????????? aaaaaa //↑なぜかidを持っていないユーザがいる…ので一応 おか~さ~ん!!

Slide 44

Slide 44 text

44 //直でいじるのはだめですけどめんどくさいので

Slide 45

Slide 45 text

45 //直でいじるのはだめですけどめんどくさいので ヤバタクスゼイアン

Slide 46

Slide 46 text

46 //直でいじるのはだめですけどめんどくさいので ヤバタクスゼイアン パンドラの箱開けちゃったよね

Slide 47

Slide 47 text

47 //SQL文の作成 あってるか?

Slide 48

Slide 48 text

48 //SQL文の作成 あってるか? 信じるか信じないかはあなた次第

Slide 49

Slide 49 text

49 結論

Slide 50

Slide 50 text

50 コメントゆえに⼈は苦しまねばならぬ!! コメントゆえに⼈は悲しまねばならぬ!! コメントなどいらぬ!!

Slide 51

Slide 51 text

51 コメントが無くても 理解できるコードを書こう