$30 off During Our Annual Pro Sale. View Details »

今あらためて考える PHPに型定義をする理由 / why use type hint and static analyse at php

今あらためて考える PHPに型定義をする理由 / why use type hint and static analyse at php

Isana Miyake

August 26, 2022
Tweet

More Decks by Isana Miyake

Other Decks in Programming

Transcript

  1. 今あらためて考える PHPに型定義をする理由 PHP Conf 沖縄 2022 by @isanasan_ 1

  2. 自己紹介 PHP Conf 沖縄 2022 by @isanasan_ 2

  3. Lancersプロダクト開発部QAチーム CakePHPのバージョンアップを担当 DevOpsに興味関心がある @isanasan_ @isanasan @isana PHP Conf 沖縄 2022

    いさな by @isanasan_ 3
  4. PHP Conf 沖縄 2022 最近PHPの型が注目されている気がする by @isanasan_ 4

  5. PHP Conf 沖縄 2022 直近の主要なカンファレンス by @isanasan_ 5

  6. PHP Conf 沖縄 2022 PHPer Kaigi 2022 by @isanasan_ 6

  7. PHP Conf 沖縄 2022 https://fortee.jp/phperkaigi-2022/proposal/7a340d9f-1f46-4f72-9886-a5f599eeac1c 7

  8. PHP Conf 沖縄 2022 PHP Conf 2021 by @isanasan_ 8

  9. PHP Conf 沖縄 2022 https://fortee.jp/phpcon-2021/proposal/a7e53ddb-09fd-404e-bb90-b5047e8994ab 9

  10. PHP Conf 沖縄 2022 最近PHPの静的解析も注目されている気がする by @isanasan_ 10

  11. PHP Conf 沖縄 2022 直近の主要なカンファレンス by @isanasan_ 11

  12. PHP Conf 沖縄 2022 PHP Conf 2021 by @isanasan_ 12

  13. PHP Conf 沖縄 2022 https://fortee.jp/phpcon-2021/proposal/49dd21f3-769d-4170-a9a9-b1f18c4e1135 13

  14. PHP Conf 沖縄 2022 https://fortee.jp/phpcon-2021/proposal/b9a17925-8800-4415-9676-99a1e24d181d 14

  15. PHP Conf 沖縄 2022 PHPer Kaigi 2021 by @isanasan_ 15

  16. PHP Conf 沖縄 2022 https://fortee.jp/phperkaigi-2021/proposal/35177e2b-189c-43c2-ad29-e74caf5033e7 16

  17. PHP Conf 沖縄 2022 JetBrainsの調査 by @isanasan_ 17

  18. PHPstan Phan Psalm 合計 2019 9% 5% 1% 15% 2020

    11% 2% 3% 16% 2021 18% 2% 9% 29% PHP Conf 沖縄 2022 どんな品質ツールを使っていますか? https://www.jetbrains.com/ja-jp/lp/devecosystem-2019/php/ https://www.jetbrains.com/ja-jp/lp/devecosystem-2020/php/ https://www.jetbrains.com/ja-jp/lp/devecosystem-2021/php/ 18
  19. はい いいえ 静的解析 is 何 33% 38% 28% PHP Conf

    沖縄 2022 静的解析を使用していますか? https://www.jetbrains.com/ja-jp/lp/devecosystem-2021/php/#PHP_do-you-use-static-analysis 19
  20. PHP Conf 沖縄 2022 最近PHPの型の表現力が上っている気がする by @isanasan_ 20

  21. Scalar type hints PHP Conf 沖縄 2022 7.0 by @isanasan_

    21
  22. Nullable Types Void Return Type PHP Conf 沖縄 2022 7.1

    by @isanasan_ 22
  23. Typed Property PHP Conf 沖縄 2022 7.4 by @isanasan_ 23

  24. Union Types PHP Conf 沖縄 2022 8.0 by @isanasan_ 24

  25. Pure intersection type Enumerations noreturn type PHP Conf 沖縄 2022

    8.1 by @isanasan_ 25
  26. はい PHP Conf 沖縄 2022 by @isanasan_ 26

  27. 最近PHPの型が注目されている 最近静的解析が注目されている PHPの型の表現力が序々に高まっている PHP Conf 沖縄 2022 by @isanasan_ 27

  28. PHP Conf 沖縄 2022 だがちょっと待って欲しい by @isanasan_ 28

  29. PHP Conf 沖縄 2022 PHPは弱い動的型付け言語 by @isanasan_ 29

  30. 型は実行時に決定される 型は文脈に応じて暗黙的に変換される PHP Conf 沖縄 2022 PHPは弱い動的型付け言語 by @isanasan_ 30

  31. 要するに PHP Conf 沖縄 2022 by @isanasan_ 31

  32. PHP Conf 沖縄 2022 型を書かなくても動く by @isanasan_ 32

  33. PHP Conf 沖縄 2022 わざわざ型書いて静的解析ナンデ?? by @isanasan_ 33

  34. 今あらためて考える PHPに型定義をする理由 PHP Conf 沖縄 2022 by @isanasan_ 34

  35. 今あらためて考える PHPに型定義(静的解析)をする理由 PHP Conf 沖縄 2022 by @isanasan_ 35

  36. PHP Conf 沖縄 2022 3つの観点 by @isanasan_ 36

  37. フィードバックサイクル コーディングの生産性 コードのメンテナンス性 PHP Conf 沖縄 2022 3つの観点 by @isanasan_

    37
  38. その前に PHP Conf 沖縄 2022 by @isanasan_ 38

  39. PHP Conf 沖縄 2022 静的解析とは by @isanasan_ 39

  40. コードを実行せずに問題点等を検出すること コードを実行しないため高速 ツールを導入するだけで実行できる 型情報を扱うものについて話します PHP Conf 沖縄 2022 静的解析とは by

    @isanasan_ 40
  41. PHP Conf 沖縄 2022 フィードバックサイクル by @isanasan_ 41

  42. PHP Conf 沖縄 2022 不具合の発見が早いほど修正は低コスト https://www.luxoft-training.com/news/7-principles-of-testing-part-2/ 42

  43. PHP Conf 沖縄 2022 バグは早く見つけたい by @isanasan_ 43

  44. 再掲 PHP Conf 沖縄 2022 by @isanasan_ 44

  45. コードを実行せずに問題点等を検出すること コードを実行しないため高速 ツールを導入するだけで実行できる 型情報を扱うものについて話します PHP Conf 沖縄 2022 静的解析とは by

    @isanasan_ 45
  46. UTより実行・導入が低コスト UTより早いフィードバックが得られる UTより修正が容易 PHP Conf 沖縄 2022 つまり by @isanasan_

    46
  47. PHP Conf 沖縄 2022 コーディングの生産性 by @isanasan_ 47

  48. PHP Conf 沖縄 2022 エディタによるサポートを受けられる by @isanasan_ 48

  49. 定義ジャンプ ホバー表示 補完 インスペクション PHP Conf 沖縄 2022 エディタによるサポートを受けられる by

    @isanasan_ 49
  50. PHP Conf 沖縄 2022 コードのメンテナンス性 by @isanasan_ 50

  51. PHP Conf 沖縄 2022 メンテナンス性 is 何 by @isanasan_ 51

  52. SQuaRE(JIS X 25010) PHP Conf 沖縄 2022 メンテナンス性 is 何

    by @isanasan_ 52
  53. PHP Conf 沖縄 2022 メンテナンス性とは https://www.ipa.go.jp/sec/reports/20150331_1.html 53

  54. モジュール性(modularity) 再利用性(reusability) 解析性(analysability) 修正性(modifiability) 試験性(testability) PHP Conf 沖縄 2022 メンテナンス性とは

    by @isanasan_ 54
  55. モジュール性(modularity) 再利用性(reusability) 解析性(analysability) 修正性(modifiability) 試験性(testability) PHP Conf 沖縄 2022 メンテナンス性とは

    by @isanasan_ 55
  56. PHP Conf 沖縄 2022 解析性(analysability) ≒ 理解容易性 by @isanasan_ 56

  57. 型定義有 > 型定義無 PHP Conf 沖縄 2022 解析性(analysability) ≒ 理解容易性

    by @isanasan_ 57
  58. PHP Conf 沖縄 2022 解析性(analysability) ≒ 理解容易性 by @isanasan_ 58

  59. PHP Conf 沖縄 2022 解析性(analysability) ≒ 理解容易性 by @isanasan_ 59

  60. PHP Conf 沖縄 2022 リファクタリング by @isanasan_ 60

  61. sedコマンドはつらい PHP Conf 沖縄 2022 リファクタリング by @isanasan_ 61

  62. IDEやエディタによるリファクタリング Rectorによるリファクタリング PHP Conf 沖縄 2022 リファクタリング by @isanasan_ 62

  63. PHP Conf 沖縄 2022 別言語への移植 by @isanasan_ 63

  64. Scalaに移植するゾイ 型が分からないから移植しようがないゾイ PHP Conf 沖縄 2022 別言語への移植 by @isanasan_ 64

  65. PHP Conf 沖縄 2022 修正性(modifiability) by @isanasan_ 65

  66. PHP Conf 沖縄 2022 修正性(modifiability) by @isanasan_ 66

  67. バグの早期発見に役立つ エディタの便利機機が使える 解析性と修正性が向上する PHP Conf 沖縄 2022 まとめ by @isanasan_

    67
  68. 組織にテストを書く文化を根付かせる戦略と戦術(2020秋版) PHPStanで始めるPHPのための静的解析 エディタ中立なPHP開発環環の現在 アジリティを支える品質特性 PHP Conf 沖縄 2022 参考文献 by

    @isanasan_ 68