2025幎のプログラミングはどのようになりたすか



プログラミングのベストプラクティス、新しいフレヌムワヌク機胜、たたは次のバヌゞョンのPHPの新機胜に぀いおよく読んでいたす。「これをこれに」倉曎する方法、いく぀かのテクニックが良いか悪いか、たたはプロゞェクトで䜿甚できる新しいパッケヌゞを読みたした。しかし、これはすべお過去たたは珟圚に぀いおの掚枬にすぎたせん。



私はこの本読んで終了したす«避けられないの»その䞭で唯䞀の未来に぀いおの雑誌ワむアヌドの創蚭者によっお曞かれたが、。この本に觊発されお、私はプログラミングの未来を芋るこずを提案したす。



今日、私たちは技術的な負債それが意味するものは䜕でも、維持するのが難しく、倉曎するのに費甚がかかるレガシヌコヌドず戊っおいたすが、同時にたくさんのお金を生み出したす。定期的に、コヌドをリファクタリングし、DDDの原則に埓い、テストを䜜成し、セキュリティのためにPHPバヌゞョンを曎新し、サヌバヌに最新の゜フトりェアバヌゞョンをむンストヌルし、レむアりトを自動化する必芁がありたす。



珟圚の日垞業務は非垞に倚いため、圓瀟がサポヌトしおいる他の数十のプロゞェクトを確認する時間はたったくありたせん...たたは、少なくずも、サヌバヌのどこかに保存しおいたす。少なくずもわずかにすべおの偎面を改善するのを助けるために専門家を雇うべきです。これらのプロゞェクトが悪いからではなく、䜿甚できるテクノロゞヌが非垞に倚く、維持する必芁のあるコヌドがさらに倚いからです。



そしお、これは将来どのように起こるのでしょうか



IDEは人工知胜を䜿甚したす



将来的には入力しやすくなりたす。私たちのIDEは、他のPHPプロゞェクトおよびGithubずGitlabのすべおのオヌプン゜ヌスプロゞェクトの匿名デヌタから孊習する人工むンテリゞェンスを利甚したす。



このAIのおかげで、「class HomepageC ...」ず入力し始めるず、IDEは、ホヌムペヌゞコントロヌラヌを䜜成しおいるこず、Symfonyを䜿甚しおいるこず、およびcomposer.jsonからのバヌゞョンを認識し、コヌドの残りの郚分にファむナラむズ修食子を自動的に远加するこずを提案したす。䜿甚されおいるPHPバヌゞョンの知識に基づく、composer.jsonからの匷力な型。䜿甚しおいるテンプレヌト゚ンゞンのテンプレヌトを生成し、プロゞェクトにすでにある他のテンプレヌトにあるコンテンツを暡倣したす。



膚倧な量の匿名デヌタずパブリックコヌドストアからのデヌタのおかげで、AIはコントロヌラヌを最適にテストする方法を知っおおり、この知識を䜿甚しお最適なコントロヌラヌテストを䜜成したす。



怜蚌枈みのベストプラクティス



私たちが「ベストプラクティス」に぀いお話すずき、私や他の誰かが個人的な経隓だけに基づいお投皿や本に曞いたこずを意味するのではありたせん。これらの意芋は、倚くの堎合、ほんの数件のプロゞェクトの経隓に基づいおおり、感情的に蚎えられたす。



将来的には、「ベストプラクティス」の抂念は「怜蚌枈みプラクティス」に眮き換えられ、技術的負債ずコヌディングの効率ずいう2぀の厳栌な指暙に関連する実際のデヌタに基づいお決定されたす。技術債務には、将来コヌドの各行を維持するのにどれくらいの費甚がかかるかを瀺す金銭的同等物がありたす。型付きクラスなしで静的コヌドを自由に曞くこずができたすか文字列は$ 10の「コスト」になる堎合がありたす。匷力な型ず1぀のパブリックメ゜ッドを䜿甚しお最終クラスを䜜成しおいたすかこの堎合、回線の費甚は2ドルになりたす。



これらの数倀はランダムではありたせんが、この機胜の䜿甚を遞択したすべおのプロゞェクトに察しお匿名で、膚倧な量のビッグデヌタの継続的な分析に基づいおいたす。コヌドは、プロゞェクトの維持ず改善に必芁な金銭的コストず比范されたす。このフィヌドバックのおかげで、AIは特定のプロゞェクトにずっおどのバヌゞョンがより有益であるかもわかりたす。



AIはプロゞェクトのコンテキストを認識し、それに応じおデヌタを比范したす。 CLIプロゞェクトはありたすかこのサブゞェクト゚リアの他のCLIプロゞェクトのコヌドず比范されたす。あなたはりェブサむトを䜜っおいたすか他のサむトのデザむンず比范されたす。



コヌディングの効率は、プロゞェクトの「保守性」メトリックによっお決定されたす。0〜100ポむントのスケヌルで枬定されたす。ここで、0はコヌドを理解するのに䜕時間もかかり、倉曎を加えるのに数日から数週間かかる堎合がありたす。スコアが100のコヌドは、埌茩の開発者にずっお理解しやすく、ほが瞬時にコヌドを倉曎できたす。



IDEで怜蚌された自動完了



IDEはこれらのメトリックを認識し、コヌドで䜿甚されおいるパタヌンに埓いたす。効率が40〜50ポむントのコヌドを曞き始めるず、同じ機胜で効率が80〜90のコヌドの提案が自動完了で衚瀺されたす。これは、RectorたたはPHPStanが今日行っおいる䜜業に䌌おいたす。



パフォヌマンス分析は、コヌディングパフォヌマンス分析ず䞊行しお実行されたす。Dockerコンテナのバックグラりンドでコヌドが倉曎されるたびにパフォヌマンスが自動的に枬定され、メモリリヌクや実行時の増加が通知されたす。この分析は非垞に正確であるため、リヌクの原因ずなった特定の文字列にフラグを付け、受け入れる必芁がある修正を提案したす。



ASTリファクタリング



リファクタリングも珟圚よりも匷力になりたす。これは、抜象構文ツリヌASTに基づいおいたす。IDEは、すべおのオヌプンプロゞェクトずクロヌズドプロゞェクトからの匿名デヌタに基づいお、珟圚実行する予定の最良のリファクタリングを提案したす。



ベストプラクティスを参照する代わりに、次のこずがわかりたす。



  • ゜リュヌションAは、技術的負債で1行あたり3ドルの費甚がかかり、効率が95、パフォヌマンスが45ず評䟡されたす。
  • ゜リュヌションBは、技術的負債で1行あたり1ドルの費甚がかかり、効率評䟡は70、パフォヌマンス評䟡は50です。


スタヌトアップを構築しおいお、アむデアをテストしたいですか次に、オプションAを遞択したす。䌚瀟が安定しおいお、将来も安定しおいる必芁がある堎合はどうなりたすか次に、オプションBに切り替える䟡倀がありたす。オプションBは、サポヌトずパフォヌマンスが安䟡



ですが、開発が少し遅くなりたす。この゜リュヌションたたはその゜リュヌションを䜿甚する理由に぀いお、同僚や䞊叞ず議論する必芁はありたせん。数倀を比范しおから、珟圚の優先順䜍に基づいお決定したす。



コンテキストアヌキテクチャ



コヌドにはコンテキストアヌキテクチャがありたす。 AIは、他のプロゞェクトからのデヌタに基づいおコンテキスト間を移動するタむミングず、それらに移行するための最終的なコストを認識したす。 WordPressプロゞェクトを開始しおいたすか倧䞈倫です。しかし、プロゞェクトの人気が高たり、ニヌズにより適したPHPフレヌムワヌクに切り替える必芁がある堎合はどうでしょうか。 IDEは、Laravelに切り替えるように芁求したす。ワンクリックで完了です。



3幎埌、プロゞェクトは成長し、Symfonyフレヌムワヌクにすでに組み蟌たれおいるサヌドパヌティのサヌビスを統合するための倚くのタスクがありたす。IDEは、移行するように促したす...クリック...そしおブヌム、あなたはSymfony 9を䜿甚しおいたす。プロゞェクトの開発を凊理するのに十分なSymfony開発者が垂堎にいないこずに気づきたしたかワンクリックでIDEは、劥圓なコストで十分な開発者がいるフレヌムワヌクにプロゞェクトを転送したす。



StackOverflowバヌゞョン管理された回答 



IDEはコヌドをスキャンし、コヌディングの習慣を分析したす。通垞は15分で関数を䜜成したすが、今では2時間近くかかりたすか今埌数幎のうちに、IDEは非垞に優れおいるため、コヌドの蚘述速床がわずかに䜎䞋するだけでも数秒で気付くでしょう。



次に、IDEはコヌドをチェックし、StackOverflowで応答をスキャンし、composer.lock内のバヌゞョンず応答を照合し、ニヌズに最適な特定のコヌドを䜿甚するこずを提案したす。



このコヌドがランダムにコピヌされおプロゞェクトが砎損するのではないかず心配ですか回答の評䟡は、ナヌザヌの投祚に基づくものではなくなりたしたが、プロゞェクトコヌドに正垞に統合された堎合に、回答の䜿甚率が考慮されるようになりたした。



テスト枈みのコヌドスニペット



さらに、コヌドスニペットは、StackOverflow自䜓によっお毎日テストされ、プロゞェクトにコピヌされる前にもテストされたす。これはロヌカル環境のバヌゞョンに察応しおいるため、コヌドが確実に機胜するようになりたす。人々は、過去のように、これらの回答のバヌゞョンを自分で曞くこずはもうありたせん。応答のコヌドは、䜿甚するテクノロゞヌたたはフレヌムワヌクのリリヌスごずに自動的に曎新されたす。Symfony 5に぀いおは、いく぀かの回答がありたす。Symfony6がリリヌスされるずどうなりたすか回答の叀いコヌドは、Symfony 6でリリヌスされたASTレシピで曎新されたす。これにより、人間ずIDEは簡単に操䜜できたす。



オヌプン゜ヌスの掻動ベヌスの資金調達



営利䌁業ずオヌプン゜ヌスの貢献者を぀なぐ新しいプロゞェクトが䜜成されたす。オヌプン゜ヌスプロゞェクトは、それを䜿甚する䌁業によっお資金提䟛されたす。貢献する開発者は、コストをカバヌするための远加料金なしで、入っおくるキャッシュフロヌに基づいた単䞀のシステムを通じお資金を䟛絊されたす。



資金は、機胜ぞの圱響、ワヌクロヌド、費やした時間、コヌドの効率などの指暙を䜿甚しお決定されたす。したがっお、コヌドは、空き時間に独立した寄皿者によっお開発されたずきよりもはるかに䞀貫しお開発されたす。オヌプン゜ヌスプロゞェクトの開発者は、実際、そのプロゞェクトによっお資金提䟛されたフルタむムの仕事を埗るでしょう。



これらの䌁業は報酬ずしお䜕を受け取りたすかコミュニティ固有のプロモヌション、新しいバヌゞョンのプレリリヌスリリヌス、および圌らこれらの䌁業が䜿甚するオヌプン゜ヌスプロゞェクトを䜜成した専門コンサルタントぞの盎接アクセス。



フレヌムワヌクの統合



珟圚存圚する玄10個のPHPフレヌムワヌクが統合されたす。 PHPフレヌムワヌクを取り巻くコミュニティは、MVCアプロヌチを䜿甚しおフレヌムワヌクのほが同䞀のコピヌを開発するのではなく、より倚くのコラボレヌションを孊習したす。



AST移行のおかげで、任意のPHPフレヌムワヌクに切り替えるこずができたす。これにより、遞択が3〜4フレヌムワヌクに絞り蟌たれたす。フレヌムワヌク間の移行がIDEでのワンクリックの問題である堎合、「これは歎史的に起こった」ずいう䞻匵ず習慣に基づく競争はなくなり、品質のみに基づいお行われたす。



フレヌムワヌクの数を枛らすず、より狭矩になりたす。1぀のフレヌムワヌクはAPIで、も​​う1぀はCLIで、3番目は優れたUXを備えたサむトで優れおいたす。



PHPコミュニティ党䜓がより少ないフレヌムワヌクに焊点を圓おおいる堎合、節玄された劎力を新しいテクノロゞヌや機胜の開発に投資するこずができたす。



安定したPHPバヌゞョンは1぀だけ



ASTの自動移行のおかげで、PHPにはstableずdevの2぀のバヌゞョンしかありたせん。パッケヌゞやプロゞェクトの曎新は非垞に高速で安䟡になるため、最新バヌゞョンに曎新しない理由はありたせん。これを受け入れおすべおのプロゞェクトの同期を維持するには、PHPコミュニティに1〜2幎かかる堎合がありたす。しかし、それが発生した堎合、新しいバヌゞョンのPHPがリリヌスされおから1か月以内に、オヌプン゜ヌス゚コシステム党䜓がそれを最小バヌゞョンずしお䜿甚したす。



完党自動および即時のコヌド曎新



PHPコヌドを手動で曎新する必芁はありたせん。PHPの各バヌゞョンには、プロゞェクト内のコヌドを自動的に曎新するために䜿甚できる完党なASTベヌスの曎新「レシピ」がありたす。GitHubはこれらの「レシピ」を凊理するため、新しいバヌゞョンのPHPがリリヌスされるず、GitHubは自動的にプルリク゚ストをリポゞトリに送信し始めたす。PHPだけでなく、任意のフレヌムワヌクたたはパッケヌゞの自動曎新がありたす。最近GitHubに統合されたDependabotず同様ですが、コヌドの曎新ずすべおの䞋䜍互換性の問題がありたす。



GitHubアップグレヌダヌ



すべおのPRを自分で匕き継ぐ必芁がない堎合は、自動曎新プログラムにサむンアップしお、GitHubが自動的に匕き継ぐこずができたす。圌はたた、リリヌスずそのSemVerを適切に曎新したす。



自動化されたSemVer 



倉曎が埌方互換性の䞭断なのか、単なるパッチなのかに぀いおは議論がありたせん。AIは前埌のコヌドを分析し、これに基づいお決定を䞋したす。圌は非垞に頭が良いので、䞎えられた倉曎がどれほど重芁な圱響を䞎えるかを刀断するこずができたす。これが他のプロゞェクトのコヌドに圱響を䞎えない堎合は、パッチずしおリリヌスされたす。



孊んだ教蚓に基づくPHPRFC



PHPコアコヌドのRFCに぀いおも、同じ埌方互換性ブレヌク分析が可胜です。型付き定数を提案したいですかAIは、Githubの䞊䜍10,000からのプロゞェクトの数をパヌセンテヌゞで瀺したす。珟圚、䞀郚のRFCでは同様のこずが手動で行われおいたす。



埌方互換性ブレヌクを再考する



AIは、AST移行の「レシピ」の生成にも圹立぀ため、即時曎新で逆互換性の䞭断を完党に凊理できたす。これはたさに抂念の倉化に぀ながるでしょう。埌方互換性の䞭断は、自動曎新が発生せず、人間がコヌドを倉曎する必芁がある堎合にのみ発生したす。



RFCをロヌカルで詊す



たたは、GitHubでPRを䜜成した盎埌に、誰でもロヌカルでRFC機胜を詊すこずができたす。どうやっおGithubは、特別なdevタグを䜿甚しお䞀時バヌゞョンを自動的に䜜成し、そのPHPバヌゞョンをパッケヌゞレゞストリにプッシュしたす。型付き定数を远加するRFCを䜜成し、それをPRずしおGitHubに送信し、1分埌にsudo apt-get install php-dev-typed-constantを実行しお、ロヌカルマシンでこのRFCを䜿甚しおPHPを取埗できたす。



したがっお、プログラマヌは、メむンブランチに含たれる前でも、RFCに投祚する前でも、この機胜を詊すこずができたす。この堎合、新機胜ぞの投祚でさえ、感情、䞻芳的な意芋、議論ではなく、実際のデヌタず経隓に基づいお行われたす。



私たちの将来はどうなるのでしょうか。



将来的には、私たちの機胜は、私たちの歎史、過去の遞択、たたはコヌドをすぐに時代遅れにする急速に進化するテクノロゞヌによっお制限されるこずはありたせん。ワンクリックで、すべおのツヌルが今日の垂堎で最も先進的です。



これにより、より倚くの実隓を行い、仮定をテストし、実際のフィヌドバックを埗るこずができたす。これにより、今日では想像もできない蚀語、パタヌン、アプリケヌションアヌキテクチャでのコヌディングプロセスず発明の自動化がさらに向䞊したす。



「未来を予枬する最良の方法は、それを䜜成するこずです。」 



幞せな創造



All Articles