淺談系統設計的因地至宜:從產線監控軟體開發設計談起

更新於 發佈於 閱讀時間約 5 分鐘
RevConsult :https://consult.revtel.tech/

如何結合區塊鏈 web 3.0 及 web 2.0 的開發:https://revteltech.pse.is/42s9t4
如何確保系統開發失敗:https://revteltech.pse.is/434ams
什麼是軟體顧問:https://revteltech.pse.is/43tmd8
去年下半年開始了幾個工廠設備的監控專案顧問開發。有別於以往比較多接觸的消費者端應用,情境確實比較不一樣。系統開發很重要的一個點是因時制宜、因地制宜,這次就算是一個很好的案例。
本篇文章紀錄一下值得分享的心得。
https://pixabay.com/zh/photos/company-factory-production-186980/

內容:以 APP 及 Web 替智能設備加上可以遠端監測及控制的能力

簡單敘述一下背景,這是一個台灣在智能設備領域有非常傑出的成果的公司。經朋友介紹跟我們合作開發類似戰情的遠端監測及控制系統讓管理者能掌握工廠動態。
其中的溝通蠻複雜的,也有賴客戶的協助才能順利完成任務。最終客戶在產業展覽中獲得獎項的認可,算是個雙贏的結果。
隱去資訊的部分截圖

誒不要隨便搞掛人家系統

在這個工廠生產的情境中,監控系統要明確設計成外掛 (或許「控」的部分不一定,但起碼「監」的部分一定是)。
過往在一些像港區物流系統(見本文)的經驗,我們可以發現蠻多市面上運行的系統技術老舊簡陋,這倒不完全是主事者是否與時俱進,而可能是權衡之後的理性選擇。當然理性不等於最優,而變革也未必是改善
就如同工廠環境的資安需求跟雲端需求不太一樣,更重於內部控管及系統運行不停機。系統架構上可能有一些方向可以考慮,舉兩個例子:
  1. 善用中台架構
    中台的做法在這幾年蠻流行的。作為一個區隔實體,這種架構可以很好的封裝複雜度及保留開發彈性。比如當你面對原系統溝通時幾乎都是透過資料庫在交換資料時,搭建一些中台來做資料轉換及流程控制便是很好的做法。
  2. 主動詢問大於被動通知
    這裡蠻反直覺的。站在資訊流效率及系統效能的角度來看,似乎能訂閱就不該輪詢。可如果系統整體還未曾完全掌握、潛在風險還沒有完全排查,主動行為至少比較好控制。
這裡暫且打住,先回到我們主題 — 系統設計的因地制宜。

一招鮮吃遍天?這世界可沒這麼單純

作為一個工程師或架構設計者,我們都得朝著尋找最佳解的目標奔去。但也必須有雅量的去接受自己以及世界的不完美。
開發的第一步總是從「同理」及「理解」開始 (可參見本文),尤其在對不熟悉的領域更要小心。人總是會有思維慣性以及一些沉沒成本(如公司已經開發好的框架),這些都是隱性的天花板。
https://pixabay.com/zh/vectors/ancient-blind-boys-brain-cartoon-2026111/
不要隨便地想要去改動人家的系統及流程架構,不然可能追悔莫及。舉幾個案例:
  1. 你只看到訂房系統後大量的人力耗費,但你有想過他們的人員訓練有多困難嗎?
  2. 你只看到對方報價系統只做到詢價表單,但你有想過他們的產品結構中那些無法被抽象的人治邏輯嗎?
  3. 你只看到他們流程系統還在用 FTP 管理資料,但你有想過他們的對口單位裝置都非常老舊且無法更換嗎?
看不到的地方往往才是最危險的地方

讀歷史的重點跟讀架構一樣:讀出不得已

不知道大家怎麼讀歷史的?其實在你覺得某些歷史人物很愚蠢時,你很可能就走歪了。每個人面對的情境、握有的資源都不一樣,設身處地去同理才能真正了解。
來自第一線的行為慣性應該盡量參考。當中可能有很多無意義雜音,但通常答案也潛在在其中。
讀架構及設計架構也是如此,這些「不得已」才是系統中真正該注意的地方。善用軟體切割的方式去封裝這些「不得已」然後結合出可繼續擴充及開發的結構才是安全的道路。
黑格爾的這句「凡是合乎理性的東西都是現實的,凡是現實的東西都是合乎理性的」實在是至理。

始於「已知的未知」,敗於「未知的未知」

最後提一下很常看到的問題,就是在開發之初就想著成本最佳化。
這裡的概念很類似開發時所說的「過早最佳化是萬惡的根源」( premature optimization is the root of all evil )。有些事情急不得也無法急,這在規劃以及實作都是一樣的。
系統設計是在追求解決「已知的未知」,但卻往往因忽略了「未知的未知」中而失敗
https://fytalk.com/tag/%E6%8B%89%E5%A7%86%E6%96%AF%E8%8F%B2%E5%B0%94%E5%BE%B7/
要保持彈性來因應這些不可見風險,適度的冗余是必要的。成本的控制是一個獨立的任務,這可以等主線到一段落時再思考,也應該正式納入開發排程。
之前曾遇過因為要省下雲端費用造成系統尖峰時不穩的案例,損失的除了有形的訂單之外也包含心力的耗費。工程問題總是有方式解決的不是嗎?
因時制宜的選用技術,因地制宜的設計架構才能最終解決問題
為什麼會看到廣告
avatar-img
18會員
33內容數
從超過 50 個合作經驗中擷取在系統開發、顧問及營運上的經驗及心得
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Sam Huang的沙龍 的其他內容
從去年開始身邊想踏入區塊鏈世界的人、公司明顯變多,紀錄一下這些過程中看到的 WEB2 走到 WEB3 要注意的事情。
NFC 該如何使用?寫在 iphone 終於完整支援 NFC 讀寫的今天 https://pse.is/revteltech-nfc 區塊鏈實體化的技術隨想 — Blockchain / NFT / NFC https://revteltech.pse.is/nfc_and_nft
2021 年快要結束了,今年依舊做了滿多的顧問及開發工作,以這篇文章來做個總結。 (( 三分鐘內數百萬業績的高流量電商煉成 — Le Ruban Pâtisserie 法朋烘焙甜點坊 )) 電商是個趨勢的這件事情應該已經不用再多說什麼了,甚至線上銷售對數位原生世代來說可能還比線下消費來的自然。
2021 年中開始台灣面臨了嚴峻的疫情挑戰,大家的活動範圍突然被限縮到很小。在這個情況之下來點線上交流似乎是個不錯的選擇。 這次分享內容是關於之前打造的高速客製化電商 — 理想印制 ( https://www.lixiangprint.com.tw )。在往下看之前大家可以體驗一下網站的速度~
軟體開發一個很迷人的地方是可以在架空的世界(電腦世界)中重新思考、解構並處理真實世界的問題。但要怎樣真正有效的解決問題就很看各家功力了。 這篇文章我們暫且放下溝通及流程規劃的議題,聚焦來看看純粹領域差異造成的困難以及該怎麼面對。 回顧過往曾經觸碰過的領域真的滿多,茲列舉幾個
外部顧問至少要有兩個價值 1. 不被內在阻力限制的觀察角度 團體在運作過程會有些明顯或隱性的內部阻力,其可能來自科層結構或組織慣性。這時候外部視角往往可以比較中立。 2. 有局中人沒有的資訊儲備及來源 「燈下黑」一直是需要避免的陷阱,局中人往往會因為不具備需要的資訊而很難做出客觀且正確的決定。
從去年開始身邊想踏入區塊鏈世界的人、公司明顯變多,紀錄一下這些過程中看到的 WEB2 走到 WEB3 要注意的事情。
NFC 該如何使用?寫在 iphone 終於完整支援 NFC 讀寫的今天 https://pse.is/revteltech-nfc 區塊鏈實體化的技術隨想 — Blockchain / NFT / NFC https://revteltech.pse.is/nfc_and_nft
2021 年快要結束了,今年依舊做了滿多的顧問及開發工作,以這篇文章來做個總結。 (( 三分鐘內數百萬業績的高流量電商煉成 — Le Ruban Pâtisserie 法朋烘焙甜點坊 )) 電商是個趨勢的這件事情應該已經不用再多說什麼了,甚至線上銷售對數位原生世代來說可能還比線下消費來的自然。
2021 年中開始台灣面臨了嚴峻的疫情挑戰,大家的活動範圍突然被限縮到很小。在這個情況之下來點線上交流似乎是個不錯的選擇。 這次分享內容是關於之前打造的高速客製化電商 — 理想印制 ( https://www.lixiangprint.com.tw )。在往下看之前大家可以體驗一下網站的速度~
軟體開發一個很迷人的地方是可以在架空的世界(電腦世界)中重新思考、解構並處理真實世界的問題。但要怎樣真正有效的解決問題就很看各家功力了。 這篇文章我們暫且放下溝通及流程規劃的議題,聚焦來看看純粹領域差異造成的困難以及該怎麼面對。 回顧過往曾經觸碰過的領域真的滿多,茲列舉幾個
外部顧問至少要有兩個價值 1. 不被內在阻力限制的觀察角度 團體在運作過程會有些明顯或隱性的內部阻力,其可能來自科層結構或組織慣性。這時候外部視角往往可以比較中立。 2. 有局中人沒有的資訊儲備及來源 「燈下黑」一直是需要避免的陷阱,局中人往往會因為不具備需要的資訊而很難做出客觀且正確的決定。
你可能也想看
Google News 追蹤
Thumbnail
/ 大家現在出門買東西還會帶錢包嗎 鴨鴨發現自己好像快一個禮拜沒帶錢包出門 還是可以天天買滿買好回家(? 因此為了記錄手機消費跟各種紅利優惠 鴨鴨都會特別注意銀行的App好不好用! 像是介面設計就是會很在意的地方 很多銀行通常會為了要滿足不同客群 會推出很多App讓使用者下載 每次
Thumbnail
我們可能會有一種迷思,不管開發什麼系統,開發團隊都袛會有一種方式來工作。反正不管怎麼樣,系統最終也一定是能開發出來的。那麼選擇開發生命週期又跟我何干?本篇將會介紹專案經理應該如何為不同特性的專案選擇最合適的管理策略,即生命週期。
Thumbnail
這篇文章探討了製造商和商業經營角度在商業決策上的差異。文章提到了A類型自動化機器的市場趨勢以及公司內部的決策過程,以及不同觀點之間的衝突。最後,作者強調了在工作中碰到的挫折和如何通過與經營層溝通來應對。文章通俗易懂,具有一定的價值。
如果是從零起建的機房,惟一的問題會是在於有沒有事先規劃好系統架構,以及建置的過程中,有沒有注意相關系統參數的調整。 這時,也只有上線時間要考慮而己。 如果是系統更新呢?那麻煩就多了,要顧慮使用者操作系統的時間,怎麼說呢?如果是月初財務室要進行財務報表製作,資訊室說要更新網路設備,然後所有作業停頓,
資訊系統由規劃到實踐的過程,可以看出規劃內容是否周延。 系統上線後的表現,可以反應出規劃是否完整、能達到規劃的目的。 很多公司電腦化的起點,是由資訊基礎建設開始,也就是網路系統和機房。 文中所提任何人名及公司名,及故事情節,純屬虛構,如有雷同,請多多包涵
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
先來幫大家複習一下我的轉職歷程,簡短來說,我是先到了一間軟體公司負責軟體的中英翻譯、行銷,讓我對打造軟體產品起了濃厚的興趣。 轉職前端後,我在台灣北部知名的接案公司待了一年半,後續開啟我的自有產品開發之路,以撰寫文章當下的現狀來說,我在一間台灣知名老牌的財經平台寫了八個月的軟體產品後,投入到⋯⋯
Thumbnail
戴明強調系統運作一定會有異常,而解決問題的關鍵在於正確判明原因並提出對策。改善系統時,不應該只憑經驗,而應該依據知識理論來訂出行動方案。文章探討了事件中的特殊和共同因,並強調要讓系統回到原有的運作狀態。
Thumbnail
位於台中精密機械科技創新園區的台中精機,是台灣第一個以工業 4.0 為架構打造的智慧工廠,更獲得內政部綠建築標章的認證,放眼一望,廠內隨處可見節能減碳的設計,屋頂太陽能板可以自發綠電,廠房自動化產線與機聯網隨時監控用電量,地下涵管在夏季可以降溫 3 到 5 度。 「我們的雨水回收系統可
資訊保安對於企業的資訊科技部門是越來越重要,有很多企業己經開始將資訊保安從日常的資訊科技拆分,以避免資訊科技部門因日常繁重的技術支援無法同時兼顧資訊保安的應對。 而資訊保安和IT審計是密不可分的。如果說資訊保安是日常的防御工事,那IT審計就是比起防御更能預先部署的可預視的一環。 過往IT審計可能
Thumbnail
/ 大家現在出門買東西還會帶錢包嗎 鴨鴨發現自己好像快一個禮拜沒帶錢包出門 還是可以天天買滿買好回家(? 因此為了記錄手機消費跟各種紅利優惠 鴨鴨都會特別注意銀行的App好不好用! 像是介面設計就是會很在意的地方 很多銀行通常會為了要滿足不同客群 會推出很多App讓使用者下載 每次
Thumbnail
我們可能會有一種迷思,不管開發什麼系統,開發團隊都袛會有一種方式來工作。反正不管怎麼樣,系統最終也一定是能開發出來的。那麼選擇開發生命週期又跟我何干?本篇將會介紹專案經理應該如何為不同特性的專案選擇最合適的管理策略,即生命週期。
Thumbnail
這篇文章探討了製造商和商業經營角度在商業決策上的差異。文章提到了A類型自動化機器的市場趨勢以及公司內部的決策過程,以及不同觀點之間的衝突。最後,作者強調了在工作中碰到的挫折和如何通過與經營層溝通來應對。文章通俗易懂,具有一定的價值。
如果是從零起建的機房,惟一的問題會是在於有沒有事先規劃好系統架構,以及建置的過程中,有沒有注意相關系統參數的調整。 這時,也只有上線時間要考慮而己。 如果是系統更新呢?那麻煩就多了,要顧慮使用者操作系統的時間,怎麼說呢?如果是月初財務室要進行財務報表製作,資訊室說要更新網路設備,然後所有作業停頓,
資訊系統由規劃到實踐的過程,可以看出規劃內容是否周延。 系統上線後的表現,可以反應出規劃是否完整、能達到規劃的目的。 很多公司電腦化的起點,是由資訊基礎建設開始,也就是網路系統和機房。 文中所提任何人名及公司名,及故事情節,純屬虛構,如有雷同,請多多包涵
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
先來幫大家複習一下我的轉職歷程,簡短來說,我是先到了一間軟體公司負責軟體的中英翻譯、行銷,讓我對打造軟體產品起了濃厚的興趣。 轉職前端後,我在台灣北部知名的接案公司待了一年半,後續開啟我的自有產品開發之路,以撰寫文章當下的現狀來說,我在一間台灣知名老牌的財經平台寫了八個月的軟體產品後,投入到⋯⋯
Thumbnail
戴明強調系統運作一定會有異常,而解決問題的關鍵在於正確判明原因並提出對策。改善系統時,不應該只憑經驗,而應該依據知識理論來訂出行動方案。文章探討了事件中的特殊和共同因,並強調要讓系統回到原有的運作狀態。
Thumbnail
位於台中精密機械科技創新園區的台中精機,是台灣第一個以工業 4.0 為架構打造的智慧工廠,更獲得內政部綠建築標章的認證,放眼一望,廠內隨處可見節能減碳的設計,屋頂太陽能板可以自發綠電,廠房自動化產線與機聯網隨時監控用電量,地下涵管在夏季可以降溫 3 到 5 度。 「我們的雨水回收系統可
資訊保安對於企業的資訊科技部門是越來越重要,有很多企業己經開始將資訊保安從日常的資訊科技拆分,以避免資訊科技部門因日常繁重的技術支援無法同時兼顧資訊保安的應對。 而資訊保安和IT審計是密不可分的。如果說資訊保安是日常的防御工事,那IT審計就是比起防御更能預先部署的可預視的一環。 過往IT審計可能