看板 C_and_CPP 關於我們 聯絡資訊
在一個系統中,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
longlongint: 先問 A B 吧,自己亂猜容易悲劇。 推測 A偏向使用者 03/04 16:23
longlongint: 在UI產生的第一手資料,給人類看的; B 偏通訊或硬體 03/04 16:23
longlongint: 限制,給機器看的。 03/04 16:23
longlongint: 先問欄位意義 能轉換的就轉 不能轉的請他們幫忙補 03/04 16:24
是的,你的猜測並沒有錯,不過既然你需要猜測,那代表我寫的不夠清楚? 我的問題比較偏向: 如何用文件/程式技巧制定規範,讓A與B在該規範下codeing,好讓我 不用在A跟B之間兩頭燒 ※ 編輯: zzss2003 (118.163.216.18), 03/04/2019 16:43:29
james732: 應該要明確定義出兩者的interface/function要長什麼樣子 03/04 17:24
MOONRAKER: 真的把程式當國文在讀。 03/04 17:53
MOONRAKER: 你這個情況在各自為政的開發團隊內稱為「正常」 03/04 17:55
MOONRAKER: 接別人的API也很容易發生。 03/04 17:57
請問,加入物件導向的觀念後,也沒辦法改善這種情況嗎? ※ 編輯: zzss2003 (118.163.216.18), 03/04/2019 18:04:24
james732: 物件導向可能會有幫忙,但也可能越幫越忙 XD 03/04 18:17
james732: 最重要的還是兩邊設計的溝通與協調 03/04 18:18
bluesoul: A B需要直接對話 03/04 18:53
CoNsTaR: 底層和UI考慮的點本來就不一樣,適合的 representation 03/04 19:16
CoNsTaR: 也就不一樣,不然怎麼會需要你來做兩個之間的 mapping.. 03/04 19:16
CoNsTaR: . 不要自己做不出來就想著砲別人有問題啊 03/04 19:16
longlongint: 跟問欄位對應跟數值範圍 例如u16存float要 byte 照存 03/04 19:22
longlongint: 還是乘以一千再存之類的 03/04 19:22
IhateOGC: 後端存的是真值,前端太常改變,例如打折到底要顯示幾位 03/04 23:58
IhateOGC: 先累加再打折還是先打折再累加,這個如果還要傳到後端 03/04 23:58
IhateOGC: 這樣的話User會覺得你們家網頁效率很差 03/04 23:59
IhateOGC: A應該是把值接回來後才轉型填入struct 03/05 00:01
firejox: 把A B都抓來開會 03/05 02:06
嗨,謝謝各位的建議,聽完大家的討論後,我比較清楚該怎麼做了! ※ 編輯: zzss2003 (118.163.216.18), 03/05/2019 09:11:40