AIによるコードのドキュメント化

開発者のための AI 支援コーディング

Francesca Donadoni

AI Curriculum Manager, DataCamp

AIによるdocstring生成

81.png

開発者のための AI 支援コーディング

AIによるdocstring生成

  • ユーザープロンプト: この関数のdocstringを書いてください
   def sales_trend(self):
       ...        
       if increasing > decreasing:
           return "Increasing trend"
       else:
           return "Decreasing or stable trend"
  • モデルの回答:
     def sales_trend(self):
         """Analyze sales data to determine the overall trend"""
         [...]
    
開発者のための AI 支援コーディング

AIによるdocstring生成

  • ユーザープロンプト: 以下の内容を含む、この関数のdocstringを生成してください:

    • 関数の動作に関する簡単な説明。
    • 各パラメーターとその型の説明。
    • 戻り値とその型の説明。
  • モデルの回答:

関数に使用できる完全なdocstringを示します:

def sales_trend(self):
    """
    Analyze the sales data to determine whether there is an increasing trend 
    or a decreasing/stable trend over time.
    [...]
    """
開発者のための AI 支援コーディング

AIによるdocstring生成

関数に使用できる完全なdocstringを示します:

def sales_trend(self):
    """
    Analyze the sales data to determine whether there is an increasing trend 
    or a decreasing/stable trend over time.

    Parameters
    ----------
    self : object
        An object that contains an attribute `daily_sales` (list of int or float),
        which represents daily sales values in chronological order.
    [...]
    """
開発者のための AI 支援コーディング

ドキュメントスタイルへの適応

82.png

開発者のための AI 支援コーディング

ドキュメントスタイルへの適応

83.png

開発者のための AI 支援コーディング

コードをREADMEにまとめる

84.png

開発者のための AI 支援コーディング

コードをREADMEにまとめる

  • ユーザープロンプト: SalesAnalyzerクラスとそのメソッドを説明するREADMEファイルをMarkdown形式で生成してください。ランダムな期間における売上トレンドの分析方法を示すサンプルコードも含めてください。
  • モデルの回答:

SalesAnalyzerクラス向けのREADME.mdの下書きです:

SalesAnalyzer

SalesAnalyzerクラスは、日次売上データを分析し、売上トレンドが全体的に増加傾向にあるか、減少または横ばいかを検出する簡単な方法を提供します。このツールは、時系列での売上パフォーマンスの概要を素早く把握したい企業や個人に役立ちます。

開発者のための AI 支援コーディング

コード差分からコミットメッセージを生成する

85.png

開発者のための AI 支援コーディング

コード差分からコミットメッセージを生成する

  • ユーザープロンプト: 以下のgit diffをもとに、適切なコミットメッセージを作成してください:
(base) datacamp@test:~/datacamp/docstring-generation$ git diff
+
+        Raises:
+            ValueError: If daily_sales contains non-numeric values.
         """
-        return sum(self.daily_sales)
+        if not all(isinstance(sale, (int, float)) for sale in self.daily_sales):
+            raise ValueError("All sales figures must be numeric.")
+        return sum(sale for sale in self.daily_sales) 
開発者のための AI 支援コーディング

リリースノートの自動化

86.png

開発者のための AI 支援コーディング

その他のユースケース

87.png

開発者のための AI 支援コーディング

練習しましょう!

開発者のための AI 支援コーディング

Preparing Video For Download...