[討論] 給UI層的介面與底層的介面不一致,何解?

看板C_and_CPP作者 (brotherD)時間6年前發表 (2019/03/04 07:59), 6年前編輯推噓2(2019)
留言21則, 7人參與, 6年前最新討論串1/1
在一個系統中,UI層負責與網頁互動、溝通;底層則負責處理資料、把處理完畢的資料送 給UI層。 在理想的情況下,UI層如果需要底層的參數,照理說應該只要呼叫一個function call,其 他的事情都不用做;同理,底層如果需要從UI層傳回來的參數,應該也只需要呼叫一個 function call就好 在我的狀況,UI層與底層的互動上出了點問題,我不太曉得原因出在哪,也不太清楚要怎 麼解決問題,所以上來請教各位方法。 A: 負責寫網頁UI層的同事 B: 負責寫底層的同事 但我們公司的情況卻不是這樣子...以我這例子,給UI層的介面(A寫的)為: https://ideone.com/Tf4Uwv 底層的介面(B寫的)為: https://ideone.com/lK0yxc #note1: 要給網頁User看的設定參數,但我在B的程式碼中找不到此變數 #note2: A需要這些設定參數給使用者設定,但我沒辦法在B的程式碼中找到這些變數 我的任務是負責填滿以及儲存這些變數 填滿: 系統剛開機時,放入初始值到這個型別的變數,A再拿去用 儲存: 使用者從網頁上設定參數,A把參數放在這個型別的變數,我再把它拿到另一個變數 給B用 為了完成我的任務,我必須: 1. 去問A: 為什麼這些#note1的參數你沒有打在你的結構裡面,這些參數我有在B的程式碼 裡面看到,還是因為這些參數並沒有要顯示在網頁上? 還是你少打? 2. 去問A: 那你這些note2多打的是什麼? 是用來呈現在網頁上的嗎? 還是因為你自己要記 錄一些資訊,所以才跟這些參數放在一起? 3. 去問B: 為什麼有些A打的參數,我在你的程式碼裡面找不到,還是你沒有統一放在一起 ,而是放在別的file裡面? 4. 去問A/B: 為什麼你跟B/A用的型別不一樣? 為什麼不統一? 4. 去問A/B: 為什麼你跟B/A寫的參數用不一樣的名字? 總之就是要當一個中間者,負責A跟B雙方之間的溝通,我才有辦法了解雙方的邏輯,並不 能單純透過程式碼就完成我的任務。 請問一下,會造成這個情況,是因為發生了什麼問題? 程式沒有模組化? 沒有統一的spec? 沒有做information hiding? 麻煩各位前輩了~謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.216.18 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1551686376.A.9CF.html ※ 編輯: zzss2003 (118.163.216.18), 03/04/2019 16:01:25

03/04 16:23, 6年前 , 1F
先問 A B 吧,自己亂猜容易悲劇。 推測 A偏向使用者
03/04 16:23, 1F

03/04 16:23, 6年前 , 2F
在UI產生的第一手資料,給人類看的; B 偏通訊或硬體
03/04 16:23, 2F

03/04 16:23, 6年前 , 3F
限制,給機器看的。
03/04 16:23, 3F

03/04 16:24, 6年前 , 4F
先問欄位意義 能轉換的就轉 不能轉的請他們幫忙補
03/04 16:24, 4F
是的,你的猜測並沒有錯,不過既然你需要猜測,那代表我寫的不夠清楚? 我的問題比較偏向: 如何用文件/程式技巧制定規範,讓A與B在該規範下codeing,好讓我 不用在A跟B之間兩頭燒 ※ 編輯: zzss2003 (118.163.216.18), 03/04/2019 16:43:29

03/04 17:24, 6年前 , 5F
應該要明確定義出兩者的interface/function要長什麼樣子
03/04 17:24, 5F

03/04 17:53, 6年前 , 6F
真的把程式當國文在讀。
03/04 17:53, 6F

03/04 17:55, 6年前 , 7F
你這個情況在各自為政的開發團隊內稱為「正常」
03/04 17:55, 7F

03/04 17:57, 6年前 , 8F
接別人的API也很容易發生。
03/04 17:57, 8F
請問,加入物件導向的觀念後,也沒辦法改善這種情況嗎? ※ 編輯: zzss2003 (118.163.216.18), 03/04/2019 18:04:24

03/04 18:17, 6年前 , 9F
物件導向可能會有幫忙,但也可能越幫越忙 XD
03/04 18:17, 9F

03/04 18:18, 6年前 , 10F
最重要的還是兩邊設計的溝通與協調
03/04 18:18, 10F

03/04 18:53, 6年前 , 11F
A B需要直接對話
03/04 18:53, 11F

03/04 19:16, 6年前 , 12F
底層和UI考慮的點本來就不一樣,適合的 representation
03/04 19:16, 12F

03/04 19:16, 6年前 , 13F
也就不一樣,不然怎麼會需要你來做兩個之間的 mapping..
03/04 19:16, 13F

03/04 19:16, 6年前 , 14F
. 不要自己做不出來就想著砲別人有問題啊
03/04 19:16, 14F

03/04 19:22, 6年前 , 15F
跟問欄位對應跟數值範圍 例如u16存float要 byte 照存
03/04 19:22, 15F

03/04 19:22, 6年前 , 16F
還是乘以一千再存之類的
03/04 19:22, 16F

03/04 23:58, 6年前 , 17F
後端存的是真值,前端太常改變,例如打折到底要顯示幾位
03/04 23:58, 17F

03/04 23:58, 6年前 , 18F
先累加再打折還是先打折再累加,這個如果還要傳到後端
03/04 23:58, 18F

03/04 23:59, 6年前 , 19F
這樣的話User會覺得你們家網頁效率很差
03/04 23:59, 19F

03/05 00:01, 6年前 , 20F
A應該是把值接回來後才轉型填入struct
03/05 00:01, 20F

03/05 02:06, 6年前 , 21F
把A B都抓來開會
03/05 02:06, 21F
嗨,謝謝各位的建議,聽完大家的討論後,我比較清楚該怎麼做了! ※ 編輯: zzss2003 (118.163.216.18), 03/05/2019 09:11:40
文章代碼(AID): #1SVDhedF (C_and_CPP)