發表文章

目前顯示的是 1月, 2024的文章

為什麼我說在撰寫程式之前,還是先做個簡單的分析比較好?

圖片
為什麼我說在撰寫程式之前,還是先做個簡單的分析比較好? 我們可以從討論中獲得共識,但你跟你的需求獲得共識了嗎? 前言 上個禮拜,我在公司對新人進行教育訓練,我依舊按照我原來進行訓練的步驟開始,先了解主題與內容,也就是新人想學習得內容?比如是前端?或者是後端的開發等等。接著是新人的程度到哪裡?如果假設我是要教 C# 與 ASP.NET Core MVC 的開發,那麼我得先調查新朋友是否已經撰寫過 C# 以及對 OO (Object Oriented) 了解的程度到哪裡?再來,就是從我們一般進行專案開時,所所有會使用到的技術來排定學習的優先順序,當然了,也考量學習的新朋友目前所擔任的角色。 學習是需要被客製化的 再回到本文想要講述的重點,因為每一個人的基礎都不同,已經熟悉的技術內容都不同,所以經過客製化的訓練內容也會有些不同。 而我們現在談的是軟體專案開發,既然是專案開發,那麼開發的內容(產出的內容程式碼)是來自於使用者需求,所使用的技術只不過是幫助我們去勾勒出『使用者』需要的『成品』(也就是成運作+並達成使用者標的與期望解決的問題)的軟體最終成果(也許是網站 Web/APP/..Others), 也就是說,使用何種技術只不過是種手段,但是你有沒有 Catch 到使用者真正的期望與需求那可能是另外一件事情。 在真的開始寫程式之前,建議還是做個簡單的分析吧! 在開始之前,我隨口問了一下新朋友,你知道 OOAD 嗎?就是也可以拆解開來分別談 OOA/OOD ? 結果新朋友告訴我,她只有聽過 OOP 而已,沒有聽過 OOA 與 OOD? 我聽到之後非常的驚訝,因為這位新朋友再來公司之前去恆逸上過課而已,也許已程式開發為主的課程並不會提及這些,也有可能軟體開發內容層面範圍較廣無法全面提及也是實屬正常。 我告訴她,其實在台灣目前的產業裡,也不太重視分析/設計這兩個階段,但是我個人反而比較重視這想個階段,但並不是說我不重視使用的技術 & 軟體架構設計,因為使用哪一種軟體架構設計/Patterns 是來自你的『使用者需求』,像是幾年前,我曾經寫過一篇文章:『 從使用者需求、談軟體架構設計 』這篇文章所講述的內容一樣,一切都是來自你的需求。 而有部分 Bug 亦是從需求而來,而從需求而來的 Bug 往往最難修改,可能得翻掉架構也說不定。 圖(一)、從需...

如何透過 Github Copilot 來增加開發人員生產力

圖片
如何透過 Github Copilot 來增加開發人員生產力 前言 從去年開始 ChatGPT 的出現,短短的時間瘋迷全球,許多 AI 取代人類、取代各種工作的資訊與消息不斷湧現,說 2023 是 AI 的元年一點都不為過!連我看見 ChatGPT 3.5 的撰寫程式碼的能力都讓我睜目結舌 & 啞口無言,當下甚至心想,我的工作要被取代了嗎?連 GPT 3.5 撰寫程式碼的速度都比我還快。 圖(一)、最流行的 ChatGPT-4 Plus 付費版 之前 NVIDA 的執行長曾說過一句態人尋味的話: - AI 的 iPhone (智慧手機) 時代來臨 我想有經歷過 Pocket PC 的年代應該會知道,比 iPhone 還早,約 2003 年左右,微軟與 Motolora 都有推出所謂現在的智慧手機,只不過在當時是不這麼稱呼,因為它是由所謂的掌上型電腦發展而來,早期部分稱作 PDA (Personal Digital Assistant) 當時的掌上型電腦原型機大概長這樣,這是微軟的 Windows CE 如下圖: 圖(二)、Windows CE 圖(三)、早期 HP 推出的 Pocket PC for Windows CE     上面這張是 HP 推出的 Pocket PC。 圖(四)、iPAQ   這台 iPAQ 是筆者 20 多年前相當嚮往的機型。 回到主題,為什麼說是『AI 的 iPhone (智慧手機) 時代來臨』呢?其實如上方所提,相同的東西 2003 年即出現過,但是紅不起來,一個是 Pocket PC/SmartPhone 的設計理念來自於掌上型電腦,這是敗筆,也可以說,它就是做得太像『電腦』,好似縮小版的 PC,操操作起來也好似 PC 那樣複雜,一般使用者在沒有特別的指導下並無法自我學習並上手,只會覺得這是專業人士才有辦法使用,有距離感,也就是鎖定目標市場太小,這也是最大的敗筆,所以當然也沒有發展出自己的生態,因為所有的應用全由開發商自己去思考,而不是由市場需要來導向,這又是另一個敗筆。因為它鎖定的用戶是商用市場,而但是又不是由市場的生態來去左右應用的發展,而這些都是賈伯斯後來發現的商機與成功的契機。 後來 iPhone 的 UI 重新設計與包裝下,人性化的操作與設計,甚至讓一般不懂電腦的人...