1. プログラミング思考のいくつかの特徴#
-
問題の分解
- 大きな問題を小さな問題に分解し、一歩ずつ解決する
-
MVP の構築
- 「動き出す」ことが重要。初歩的な実行可能なプランは私たちの方向性を検証し、自信を高める。
-
ステップテスト
- 各ステップで対応するテストを行い、すべての作業が完了するのを待たない。そうしないと、問題が見つかったときに最初からやり直さなければならない。
-
自動化
- 繰り返しのある、大量の作業は人間の得意分野ではなく、プログラムに任せる方が適切である。
-
ログ記録
- 記憶は信頼できない。ログだけがすべての情報を忠実に記録し、問題の特定を容易にする。
2. 「滴滴打車行程単」を例にした行程データのまとめ#
2.1 問題の分解#
問題:経費精算書を記入する際、行程と金額の情報を行程単から一つずつ bos システムにコピーする必要があり、操作が非常に煩雑で、PDF から内容をコピーするのは簡単に間違える。
よく考えると、これはプログラムが最も得意とする仕事ではないか?自分を苦しめる必要はないのでは?
やると決めたらやる:
ニーズを分析する:行程単の PDF から対応する時間、場所、金額などの情報を取得し、それを固定テンプレートの Excel シートに出力する。
すべての PDF フォーマットは固定されており、エクスポートする Excel フォーマットも固定である。したがって、プログラムが完成すれば、すべての滴滴行程単に適応できる。
2.2 MVP の構築#
私は AI プログラミングツール Trea を使用して、より迅速にコードを構築します。これは字節跳動が提供する国内初の AI IDE で、中国語の開発シーンを深く理解しています。
まず、コードファイルを保存するためのフォルダーを新規作成し、滴滴行程単の PDF ファイルをそのフォルダーに保存します。そして、Trea でこのフォルダーを開きます。
次に、Trea の右側のダイアログを Builder モードに切り替え、以下の指示を入力します。
行程単の PDF から対応する開始時間、開始地点、終了地点、金額情報を取得し、それに対応する内容を端末に出力します。
まず、対応するデータを取得できる MVP を構築します。明らかにこの小さなニーズは AI にとっては小さなケースです。1 分もかからず、初歩的なコードが書かれ、私が望む結果が出力されました。これで端末で必要なデータをコピーするのがずっと楽になりました。当然、これは私が望む最終結果ではありません。
2.3 ステップテスト#
次に、AI に指示を入力します:
出力された内容を Excel ファイルとして保存したいです。
すぐに、AI はその仕事を完了し、私の想像を実現しました。
しかし、これで終わりではありません。私は Excel ファイルのフォーマットに要求があります。次に、必要な標準 Excel サンプルファイルをフォルダーに直接置き、AI に伝えます:
提供した Excel ファイルに基づいて、出力する Excel ファイルのフォーマットを調整してください。
すぐに、私が望む Excel フォーマットが実現しました。
しかし、出力された Excel にはまだいくつかの点で私の要求を満たしていません。出力される Excel の各項目を開始日と時間の昇順に並べたいです。再度 AI に要求します:
出力された Excel の各項目を開始日と時間の昇順に並べてください。
こうして、ステップごとのテストと調整を経て、最終的に私が必要とする「小さなプログラム」が実現しました。
2.4 自動化#
このプログラムは、自動化の方法で、私を複雑な行程単の記入作業から解放してくれます。調整に数十分かかり、経費精算の時間を取られましたが、その後の作業で確実に多くの手間を減らしてくれるでしょう。
2.5 ログ記録#
プログラミングにおいて、git ツールは非常に良いログ記録です。コードの更新ごとに対応するログが記録されます。
この記事も、私のこの試みのログ記録です。
3. 最後に#
プログラミング思考は、私たちの仕事において必要な重要な思考方法であるべきです。単にコードを書くためだけでなく、問題の分解能力は私たちが「大きな問題」に対処するのを助けます。MVP は私たちが問題解決の初歩的なモデルを構築するのを可能にします。ログ記録は私たちが解決手順を振り返り、経験をより良くまとめるのを便利にします……
4. 脱線#
久しぶりに何かを書くことになりました。やはり頭を使って記録する必要があります。