有些急性子

有些急性子

有些急性子
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 來說是小 case。不到一分鐘,便寫出了初步的代碼,輸出了我想要的效果。這樣我在終端裡複製所需的數據方便多了。當然這肯定不是我想要的最終結果。

2.3 分步測試#

那麼接下來,再給 AI 輸入指令:

我想把輸出的內容保存為一個 Excel 文件。

很快,AI 就完成了它的工作,實現了我的設想。

不過這還沒有結束,我對 Excel 文件的格式有要求。接下來我直接在文件夾中放入了我所需的標準 Excel 示例文件,並告訴 AI:

請根據我提供的 Excel 文件調整你輸出的 Excel 文件格式。

很快,我想要的 Excel 格式就實現了。

但是輸出的 Excel 還有一些地方不滿足我的需求,我想要輸出的 Excel 中各個條目按照起始日期和時間正序排列。再給 AI 提要求:

輸出的 Excel 中各個條目按照起始日期和時間正序排列。

就這樣一步步的測試與調整,最終我所需的 “小程式” 就實現了。

2.4 自動化#

這個程式就是一個自動化的方式,幫我才繁雜的行程單填報工作中解脫出來。雖然花了幾十分鐘的時間不斷調整,占用了填報報銷的時間。但是之後的工作中肯定為我減少了大量的麻煩。

2.5 日誌記錄#

在程式設計中,git 工具就是很好的日誌記錄,每次代碼的更新都有對應的日誌記錄。

本文也是我對這次嘗試的一篇日誌記錄。

3. 最後#

程式設計思維應該是我們工作中需具備的重要思維方式。不僅僅是用於寫代碼,問題的拆解能力讓我們能夠應對 “大問題”;mvp 能夠讓我們構建解決問題的初步模型;日誌記錄方便我們回溯解決步驟,更好的總結經驗……

4. 題外話#

許久沒寫東西了,還是得動動腦子記錄一下。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。