[請益] 欄位或是變數改名

軟工

25171

這邊想請問各位前輩系統維護上常常遇到的一個問題

就是程式中的變數或是資料表欄位命名的"變更"

我不確定是不是一開始我的設計的想法就錯了

通常我在設計時,會將使用者的操作"畫面"與系統中的命名盡量保持一致,

討論起來比較有共通的語言,尤其是在一些專有名詞的欄位命名上。

Ex: 客人提到要記錄XXXX No.,欄位或是變數的名字就會是xxxx_no

----------------------------------------------------------------

但是系統維護久了,使用者想要變更"顯示名稱"的需求肯定是會出現

有的關聯已經散到各處,要把系統變數或資料表欄位都修改太勞師動眾。

我通常都只把i18n顯示的文字改掉就算了。

只是日積月累的修改,最近發現反而原始的用意消失了,還造成了一些另類的困擾

比較麻煩的例子是,畫面上原本有OOO ID & OOO No.

因為各種理由,他們想要把 OOO ID 跟 OOO No.的Label文字對換

(原本的ID想改為稱做No., 反之No.想改叫做ID)

對使用者來說,只是改個顯示文字而已,應該可以"秒改"。

但這種狀況在後續維護的困擾就非常大...

尤其是新成員加入專案時,非常容易出現以下狀況

使用者:請你可以幫我查一下資料庫 OOO ID 是 "0003"的修改時間嗎?

新成員:資料庫查不到這筆資料喔!

使用者:怎麼可能!我畫面現在就正在看阿#$%^&*(

新成員:@#^*($$,這欄位是哪個白癡命名

但是不可能系統整天隨著變更名稱的需求,就一起進行變數或欄位名稱修正。

我相信修改顯示文字的需求應該是很常見。

想請教各位有經驗的前輩們

是我在一開始的設計方向就錯了嗎?

或是有建議什麼其他的方法可以解決或避開這種問題呢?

感謝~








--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.219.85 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1628788691.A.350.html
NDark1樓visual studio 可以全部改名. 如果你是要這個得話. 08/13 01:45
netburst2樓map 08/13 01:54
ZakuSIN3樓資料庫名稱要修改不是掛個維護更新就好了? 不難吧 08/13 01:54
devilkool4樓你講的ID換NO這種狀況我會選擇拒絕這個需求 08/13 01:55
ZakuSIN5樓你要設計的是人 不是程式 08/13 01:58
lturtsamuel6樓domain driven design 看一下 統一語言的重要性 08/13 02:29
lturtsamuel7樓id跟no調換的需求聽起來就很有問題 你怎麼能保證id是 08/13 02:31
lturtsamuel8樓連續遞增的 08/13 02:31
Hsins9樓一開始就不應該為了配合 XXXX No. 而把欄位或變數命名成 xx 08/13 02:32
Hsins10樓xx_no 08/13 02:32
airtsubasa11樓id可以換no? 這通常是key值,你該電的是user 08/13 07:58
benqm30012樓這需求根本不合理,換了只是自找麻煩 08/13 08:46
rahit13樓你們客戶的程式不是寫中文嗎… 08/13 09:06
rahit14樓我也覺得i18n改掉就好 08/13 09:06
rahit15樓新成員教育一下就好 08/13 09:06
vi00024616樓改顯示名稱為什麼要改資料庫欄位名啊? 08/13 09:30
vi00024617樓通常顯示名稱都寫死在前端,或是用一個欄位另外存 08/13 09:30
vi00024618樓這樣要改名時改那個欄位就好了 08/13 09:31
wulouise19樓多國語系本來就是分開的,客戶說字串就去查多國語系 08/13 12:02
viper970920樓名稱儘量一致是對,但前端的顯示名稱要另外存 08/13 12:22
lturtsamuel21樓把 id 弄給使用者知道往往就會有這些狗屎事情發生 08/13 12:43
ssccg22樓id和no調換這種事永遠不該發生,發生了代表你一開始做錯 08/13 12:59
ssccg23樓在你第一次聽到XXX No.時,你就該確定這是那個domain通用的 08/13 13:05
ssccg24樓名詞還是只是那個人的習慣說法,這個XXX No.實際指的東西是 08/13 13:06
ssccg25樓什麼性質,你是對domain設計不是在幫特定人拉資料庫 08/13 13:10
IamTD26樓上面說的對,欄位名稱應該是針對 domain 來命名 08/13 15:01
IamTD27樓前端要顯示成什麼名稱,是另外的事情,你把它弄成同件事情 08/13 15:02
IamTD28樓才會有現在的困擾 08/13 15:02
accessdenied29樓簡而言之,設計不夠抽象,你反而將實作綁死在UI上, 08/13 15:11
accessdenied30樓這就是你犯錯的地方。 08/13 15:11
首先感謝各位的回覆與建議,其實我顯示的文字與程式結構是有分開的 可以在不用變動程式碼的情況下,修改i18n設定檔,就可以調整顯示的文字。 不過有兩件事情我的確沒有做到,或是比較難做到... (1) 拒絕ID <-> NO 這個需求,我可能會被電爆 Orz (2) 常常因為需求的急迫性,我的確沒有去確認這個"名詞"到底是代表 Domain還是該使用者的習慣用法 (Ex: 這個需求很急,下午就要用) 不過也想請問一下,回文中有提到的所謂欄位名稱應該跟著Domain, 而前端顯示是另外的事情。有點不太明白這個含意,是否有什麼例子呢? 再次感謝大家的解答!
更多請益
[請益] 代問:如何寫出讓人看不懂的Python程式碼?
[請益] HR邀約跟自己投遞會有差別嗎?
[請益] 前端求職作品請益
[請益] 學士校系抉擇請益
[請益] offer選擇
[請益] python 更新的太快?
[請益] 新手轉職 & 自己還差哪些技能
[請益] offer請益(宇匯/趨勢/台達/凌陽/華碩)