寫一個程式從一個純文字的文件抽取客戶資料,生成Excel文件。這個純文字文件有固定寛度的欄位,但地址卻是跨欄位的。嘗試將文件截圖,加上標記,告訴AI根據截圖的說明來生成Excel 文件。結果……失敗了。地址被放進錯誤的欄位。我重新思考,用了另一個方法:將想要的結果給AI,即是需要生成的Excel 文件。這次AI給出像樣的程式代碼。
用AI寫程式要注意:
1. 去除敏感數據:尤其是使用的是公共AI。
2. 找有經驗的程式員查看生成的程式代碼,並進行嚴格的測試。



寫一個程式從一個純文字的文件抽取客戶資料,生成Excel文件。這個純文字文件有固定寛度的欄位,但地址卻是跨欄位的。嘗試將文件截圖,加上標記,告訴AI根據截圖的說明來生成Excel 文件。結果……失敗了。地址被放進錯誤的欄位。我重新思考,用了另一個方法:將想要的結果給AI,即是需要生成的Excel 文件。這次AI給出像樣的程式代碼。
用AI寫程式要注意:
1. 去除敏感數據:尤其是使用的是公共AI。
2. 找有經驗的程式員查看生成的程式代碼,並進行嚴格的測試。



分析:
解法:
教訓:
在 Firebird SQL 的 View 中,遇到「算術異常、數值溢出或字串截斷」錯誤時,通常源於資料計算或轉換過程中的邊界條件未妥善處理。
聲明:本作品包含在人工智慧協助下產生的內容。作者已對所有材料進行驗證與編輯,以確保其準確性與完整性。
分析:
某些Object, Array或Pointer指著的位址超出容許的範圍, 常見的是nil object或null pointer下存取屬性, 或者存取未initialize的Array的Item。
解法:
教訓:
在Delphi開發中,”Access violation” 通常代表嘗試存取一個無效的記憶體位址。這往往是因為程式在使用 nil object、null pointer 或尚未初始化的陣列。開發人員必須在操作物件或指標前確認其有效性,並在使用陣列前適當初始化。
聲明:本作品包含在人工智慧協助下產生的內容。作者已對所有材料進行驗證與編輯,以確保其準確性與完整性。
問題: 從網站讀取本地服務器的相片可能受本地服務器的網速限制而變慢。
分析: 上傳相片到本地服務器的速度可以很高,但每次經網絡存取本地服務器的相片可能會慢。客戶的體驗應優先於員工的體驗。
解法: 將相片先上傳至雲端,再將連結存放在本地服務器。在網站顯示雲端的連結供客戶自行檢視。
教訓:
以使用者體驗為導向設計系統架構
在系統設計中,資料的儲存與存取方式不只是技術選擇,更直接影響客戶的使用體驗。雖然將相片儲存在本地服務器能在上傳階段提升效率,但若訪問速度受限於內部網絡頻寬,就會造成客戶端顯示緩慢,影響整體滿意度。
因此,設計時應優先考慮外部使用者的訪問效率與穩定性,將靜態資源(例如相片)上傳至雲端儲存平台,並透過公開或授權的雲端連結提供存取。此舉可同時兼顧內部操作效率與客戶端體驗,減少本地網絡瓶頸帶來的性能問題。
聲明:本作品包含在人工智慧協助下產生的內容。作者已對所有材料進行驗證與編輯,以確保其準確性與完整性。
分析: 跟Pointer有關的代碼出問題
解法: 對照代碼修改了的部份, 發現某些Object Free了兩次。
教訓: Object Free了後應assign為nil, 即使錯誤地再Free亦不會出錯誤訊息。
背景:
使用WinSCP作為SFTP client, 上傳文件時, 會生成 xxx.filepart檔。成功上傳後變回原檔名 (xxx)。
問題:
上傳中途斷線, 殘留了 xxx.filepart檔。重新上傳同一檔案會出錯誤。
分析:
重新上傳同一檔案時會生成xxx.filepart檔, 因xxx.filepart檔已存在, 估計是因為連接仍然存在, 不能覆蓋, 所以出錯誤。
解法:
方案1: 手動刪除xxx.filepart檔: 要先關掉SFTP Server軟件或重啟SFTP Server主機才可以成功刪除。
方案2: 在SFTP Server軟件設定合理的Idle timeout, 讓xxx.filepart檔適時解鎖。
教訓:
使用 SFTP 工具(如 WinSCP)進行檔案上傳時,必須考慮中斷傳輸後的檔案鎖定與清理機制。若未妥善處理,殘留的 .filepart 檔案可能導致後續上傳失敗,影響部署或資料更新流程。
聲明:本作品包含在人工智慧協助下產生的內容。作者已對所有材料進行驗證與編輯,以確保其準確性與完整性。
大家能看出這段用AI生成的影片有甚麼問題嗎?
聲明:本作品包含在人工智慧協助下產生的內容。作者已對所有材料進行驗證與編輯,以確保其準確性與完整性。
背景:
已經有一份「已驗證可用」的源代碼,可作為相同或相似功能的新實作參考。
問題:
在「參考既有程式碼」與「避免直接粗暴 copy & paste 帶來錯誤、安全風險或授權問題」之間取得平衡。
分析:
直接複製貼上常會把不需要的相依與潛在漏洞一併帶入,而且容易忽略原專案中的前置條件與安全假設。
若理解既有程式碼背後的演算法與設計,再用重構手法或重新實作,可提升可讀性、可測試性。
解法:
先閱讀並畫出既有程式碼的邏輯流程(輸入、輸出、主要步驟與邊界條件),抽象成純文字或流程圖,只保留「演算法與設計」,避免一開始就跟著原碼逐行翻譯。
依抽象後的流程,在新專案中「從介面開始設計」:先定義函式/類別介面與資料模型,再依需求語言重新實作內部細節,只在必要處借用小段實作並加上註解來源。
教訓:
不要盲目 Copy & Paste:直接複製整段程式碼,常會把不需要的相依與漏洞一併帶進來,之後維護成本和風險都會放大。
聲明:本作品包含在人工智慧協助下產生的內容。作者已對所有材料進行驗證與編輯,以確保其準確性與完整性。