有些急性子

有些急性子

有些急性子
jike

何がプログラミング思考なのか - 小さなプロジェクトの例を挙げて

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. 余談#

久しぶりに何かを書くことになりましたが、やはり頭を使って記録する必要があります。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。