[請益] 欄位或是變數改名
這邊想請問各位前輩系統維護上常常遇到的一個問題
就是程式中的變數或是資料表欄位命名的"變更"
我不確定是不是一開始我的設計的想法就錯了
通常我在設計時,會將使用者的操作"畫面"與系統中的命名盡量保持一致,
討論起來比較有共通的語言,尤其是在一些專有名詞的欄位命名上。
Ex: 客人提到要記錄XXXX No.,欄位或是變數的名字就會是xxxx_no
----------------------------------------------------------------
但是系統維護久了,使用者想要變更"顯示名稱"的需求肯定是會出現
有的關聯已經散到各處,要把系統變數或資料表欄位都修改太勞師動眾。
我通常都只把i18n顯示的文字改掉就算了。
只是日積月累的修改,最近發現反而原始的用意消失了,還造成了一些另類的困擾
比較麻煩的例子是,畫面上原本有OOO ID & OOO No.
因為各種理由,他們想要把 OOO ID 跟 OOO No.的Label文字對換
(原本的ID想改為稱做No., 反之No.想改叫做ID)
對使用者來說,只是改個顯示文字而已,應該可以"秒改"。
但這種狀況在後續維護的困擾就非常大...
尤其是新成員加入專案時,非常容易出現以下狀況
使用者:請你可以幫我查一下資料庫 OOO ID 是 "0003"的修改時間嗎?
新成員:資料庫查不到這筆資料喔!
使用者:怎麼可能!我畫面現在就正在看阿#$%^&*(
新成員:@#^*($$,這欄位是哪個白癡命名
但是不可能系統整天隨著變更名稱的需求,就一起進行變數或欄位名稱修正。
我相信修改顯示文字的需求應該是很常見。
想請教各位有經驗的前輩們
是我在一開始的設計方向就錯了嗎?
或是有建議什麼其他的方法可以解決或避開這種問題呢?
感謝~
--
visual studio 可以全部改名. 如果你是要這個得話.
map
資料庫名稱要修改不是掛個維護更新就好了? 不難吧
你講的ID換NO這種狀況我會選擇拒絕這個需求
你要設計的是人 不是程式
domain driven design 看一下 統一語言的重要性
id跟no調換的需求聽起來就很有問題 你怎麼能保證id是
連續遞增的
一開始就不應該為了配合 XXXX No. 而把欄位或變數命名成 xx
xx_no
id可以換no? 這通常是key值,你該電的是user
這需求根本不合理,換了只是自找麻煩
你們客戶的程式不是寫中文嗎…
我也覺得i18n改掉就好
新成員教育一下就好
改顯示名稱為什麼要改資料庫欄位名啊?
通常顯示名稱都寫死在前端,或是用一個欄位另外存
這樣要改名時改那個欄位就好了
多國語系本來就是分開的,客戶說字串就去查多國語系
名稱儘量一致是對,但前端的顯示名稱要另外存
把 id 弄給使用者知道往往就會有這些狗屎事情發生
id和no調換這種事永遠不該發生,發生了代表你一開始做錯
在你第一次聽到XXX No.時,你就該確定這是那個domain通用的
名詞還是只是那個人的習慣說法,這個XXX No.實際指的東西是
什麼性質,你是對domain設計不是在幫特定人拉資料庫
上面說的對,欄位名稱應該是針對 domain 來命名
前端要顯示成什麼名稱,是另外的事情,你把它弄成同件事情
才會有現在的困擾
簡而言之,設計不夠抽象,你反而將實作綁死在UI上,
這就是你犯錯的地方。
首先感謝各位的回覆與建議,其實我顯示的文字與程式結構是有分開的 可以在不用變動程式碼的情況下,修改i18n設定檔,就可以調整顯示的文字。 不過有兩件事情我的確沒有做到,或是比較難做到... (1) 拒絕ID <-> NO 這個需求,我可能會被電爆 Orz (2) 常常因為需求的急迫性,我的確沒有去確認這個"名詞"到底是代表 Domain還是該使用者的習慣用法 (Ex: 這個需求很急,下午就要用) 不過也想請問一下,回文中有提到的所謂欄位名稱應該跟著Domain, 而前端顯示是另外的事情。有點不太明白這個含意,是否有什麼例子呢? 再次感謝大家的解答!
※ 編輯: cloudgoogle (1.173.219.85 臺灣), 08/13/2021 21:14:16畫面顯示完全跟DB不會有關聯阿
簡單說你用同樣DB 可以刻出完全不同介面的前端
所以前端怎麼取名怎麼會被資料欄位影響呢
不可能系統整天隨著變更名稱的需求,就一起進行變數
或欄位名稱修正 確實是這樣 但你的案例不只是改個名
字 兩個欄位都對調了 你不覺得這就反應了後端沒有正
確消化domain的知識?你又何必一定要抱著設計錯誤的
資料庫dchema
NO跟ID顯示就應該是字串,為什麼跟資料庫有關
改顯示名也不會差到天南地北呀,所以變數欄位不用改
我猜資料庫關聯沒設計好,照理說你要有一個 系統ID
再來才是客戶要求的ID,之後客戶有什麼需求就不會動
兩個欄位Label互換,但資料卻不用互換,不是你搞錯
就是客戶弄錯,你搞錯的話讓新人抱怨一下也就認了,
客戶搞錯的話就笑笑就好,反正改天可能又有各種理由
要改回來
推原PO,這問題蠻有趣的。能否更詳細的描述一下xxx_no和
xxx_id所儲存的內容和格式是什麼、以及後來決議調換的理
由是什麼?我覺得這個問題的詳細細節可以幫助討論,因為
這樣兩個變數名稱完全調換的例子真的蠻少見XD
推樓上。這題不是單純一般更名,而是顯現一開始的設計
有問題,整個系統沒有清晰理解id no的定義。
35
[心得] C#基礎名詞解釋會發這篇文主要是面試被洗臉 我都會做啊 但我就不會解釋啊 雖然是寫給自己看的 但就分享出來吧14
[請益] 關於關聯式資料庫處理重複架構的方式最近在開發功能的時候 有遇到一個滿困擾的問題 在某些需求中,可能會遇到數張結構相同的表, 只是因為外來鍵參考的表不一樣而分化 比如說有個紀錄縣市總預算的需求13
[請益] 商城的訂單資料庫設計想問問假使我有一個網路商城 使用者甲有可能會在A商店 買了 兩個羽球拍 一顆籃球 使用者乙有可能在A商店 買了 三雙球鞋 那麼我的訂單資料庫設計欄位 是應該要每個商品都要佔據一個列會比較適合嗎12
[心得][英文] 如何命名「集合名詞」數量變數?本週主題 * 如何命名「集合名詞」數量變數? * 「集合名詞」「整體」數量變數 * 「集合名詞」「成員個體」數量變數 * 如何命名「回傳值」?10
Re: [請益] PM懂程式有優勢嗎懂程式給一點建議其實還不錯,有時候客戶的需求不合理在第一時間就被丟回去了 但是這其實是兩面刃,最近就有配合到那種懂程式但是似懂非懂裝逼的PM 專案開始前 "我會幫忙擋需求,不是什麼東西來了就要做,先看提出的需求合不合理" 開會時10
[問題] Apple Maps「喜好地點」無法顯示「住家」各位iOS版上使用者大家好 目前使用iPhone 12搭配iOS 14.3 遇到使用上的問題 不知道各位是否也有相同的狀況 問題是使用Apple Maps時裡面有「喜好地點」的顯示欄如下的官網支援網址8
[Coin] 用 MEW 設定 ENS domain/subdomain這幾天看了申請 ENS 的文章, 自己也嘗試申請一組. 但是不同的是我用 MyEtherWallet APP 搭配 Web 來操作! 本次實驗是以之前收到版友打賞的小費來支付的 ## 名詞解釋 - Owner: 能夠對這個域名或是子域名做設定的位置 建議是支援 Dapp Wallet5
[討論] 請問PL SQL 有辦法寫Thread的功能嗎?大家好 小弟才疏學淺,有個問題想了快一個星期想不透,上來向各位前輩請教; 事情是這樣的,在java中,為解決多個使用者同時操作造成的衝突問題, 會有個Thread可作為解決方案。但在PL SQL中,小弟翻找了一些資料,似 乎沒有類似Thrad的語法或解法。4
Re: [閒聊] 弄個網站是不是很貴啊?小弟剛滿25歲的菜鳥工程師 不負責任隨便講講 看你需求 純靜態網頁不需要存取資料跟啥功能的 確實程式或許不難- 機型名稱:iPad 系統版本:15.6.1 (設定→一般→關於本機→版本) 問題描述: 內建郵件軟體Mail,以前設定電子信箱時,會有個欄位叫做description