海外コメンタリー

「ChatGPT」の活用でコード修正が高速化--でもその代償は? - (page 3)

David Gewirtz (Special to ZDNet.com) 翻訳校正: 石橋啓一郎

2023-02-17 06:30

 筆者が修正していたコードに関しては、元の開発者(もうずっと昔にこのコードに関与しなくなっている)が、create_functionを多用していたことが分かった。筆者はこの関数が非推奨になっていたことを知らなかった。しかし、前掲の有用なリストのおかげで、コードを検索して修正や書き直しが必要な箇所を見つけることができた。そこでChatGPTに対して、該当する関数をどう書き換えたらいいかを尋ねてみた。

PHPでcreate_functionを使ったコードを書き換えるにはどうしたらいいでしょうか。create_functionを使用した例と、現在適切とされる構造を使用した例を示してください。

 create_functionはPHPの非推奨関数で、無名関数を作成するために使われていました。この関数はPHP 8.0では削除されたので、現在ではこの関数を使用することは推奨されていません。その代わりに、functionキーワードを使用して無名関数を作成することができます。無名関数はクロージャーとも呼ばれています。

 create_functionの使用例は次のとおりです。

ChatGPTが示したコードサンプル4
提供:ChatGPT

 また、無名関数を使った同等のコードは次のようになります。

ChatGPTが示したコードサンプル5
提供:ChatGPT

 さらに、useキーワードを使用してクロージャーに変数を渡すこともできます。

ChatGPTが示したコードサンプル6
提供:ChatGPT

 一般には、create_functionではなく無名関数を使用することが推奨されています。これは、パフォーマンスが改善し、可読性も向上するためです。

 この説明は非常に分かりやすく、筆者はすぐにコードを適切な形に書き換えることができた。そのプラグインは、使用しているホスティングプロバイダーの新しいPHP 8環境で問題なく動作している。

-PR-

「macOS」のテクニカルサポート

 その後、macOSが持つ「Macのストレージ領域を最適化」機能の危険性についての記事を書くための調べ物をしている際に、いくつかの疑問点が出てきた。そこで実際に機能を使用していくつかのテストを行い、疑問点を検証した。しかし、調べ物の範囲を絞り込む手軽な手段として、ChatGPTに次のような質問をしてみた。

macOSの機能である「Macのストレージ領域を最適化」を使用した場合、一部のファイルについてローカルマシン上にはそのファイルを代替するスタブしか残っていませんが、この場合「Time Machine」のバックアップは不完全なものになるでしょうか。

 macOSの「Macのストレージ領域を最適化」機能は、「iCloud」を利用して使用頻度の低いファイルを「Mac」からクラウドにオフロードし、元のファイルを代替する「スタブ」ファイルをローカルマシンに保持します。これによって、Macのハードディスク容量を節約することができます。

 バックアップを行うためにTime Machineがセットアップされている場合、Time Machineは、「Macのストレージ領域を最適化」を使用してオフロードされたファイルを含む、すべてのファイルをバックアップします。ただしこの場合、元のファイルの代わりに、オフロードされたファイルを代替するスタブファイルがバックアップされます。

 これはつまり、「Macのストレージ領域を最適化」が有効なときに作成されたTime MachineのバックアップからMacを復元した場合、オフロードされたファイルは復元された内容に含まれておらず、iCloudから再度ダウンロードする必要があるということです。

 大量のファイルがオフロードされている場合、Time Machineのバックアップが、「Macのストレージ領域を最適化」を使用しない場合よりも多くの容量を消費する場合があります。これは、使用領域が少ないスタブファイルをバックアップする際、Time Machineがそのファイルを元のファイルとして取り扱うためです。

 話をまとめると、「Macのストレージ領域を最適化」機能を使用する場合、Time Machineはクラウドにオフロードされた元のファイルではなくスタブファイルのみをバックアップするため、バックアップは不完全になります。

 この回答は正しかった。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]