顯示廣告
隱藏 ✕
※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2016-06-18 08:58:12
看板 Soft_Job
作者 DDxMM (停不下來)
標題 [請益] 不少人不喜歡在class裡加static function
時間 Thu Jun 16 08:32:02 2016



最近一直被主管酸不停的recode
,最近被酸說class裡加static function,問他又不肯講,請問大家這樣寫的好處跟壞處…

本人覺得好處是這樣寫可以防止class改爛了,function還有用處


壞處當然省不了記憶體,但class改爛了會省記憶體?

主管真難溝通,不喜歡事前規劃,喜歡事後改code…

###############################
我的想法是這份code不知道要經手多少人

寫成static function 至少後面的人不會亂call member, 造成相依一堆member, code一亂就....(除非他改成非static)

看太多維護到最後重寫的命運,沒留下多少可用的code




-----
Sent from JPTT on my InFocus M530.

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.66.115.238
※ 文章代碼(AID): #1NOVE9iL (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1466037129.A.B15.html
stonegray: 哪個語言?1F 06/16 08:43
qweqweqweqwe: 先不說 static 的問題,但要防止改爛了應該有更好2F 06/16 08:45
qweqweqweqwe: 的方法…例如unit test…
comesuck: 不想create instance才能用method就開static啊4F 06/16 08:52
knives: 為什麼你會覺得設成靜態,就不會有改爛的問題5F 06/16 08:56
sj1973: 你就把當一般c的api來看待就好了!class改爛也沒多大關係!6F 06/16 08:57
coronach: 怕改爛應該是靠測試啊,static function 分類要做好,不7F 06/16 09:31
coronach: 然就會像我第一個工作看到的,Tool.java一萬多行...
angusyu: 比如說常用的,多處共用1個屬性的,開static沒關係吧9F 06/16 10:23
qrtt1: 能開個電腦多打點字,把你的問題說清楚嗎!?10F 06/16 10:27
Yshuan: 個人也不是很喜歡static 這應該是design的問題11F 06/16 10:30
hidog: static不是問題所在吧12F 06/16 10:39
※ 編輯: DDxMM (210.66.115.238), 06/16/2016 11:04:46
hidog: 看起來是你們code review/coding style/架構設計有問題13F 06/16 11:31
hidog: 把重點放在coding品質的管理上吧
hardCode: 不少人不喜歡? 你要不要直接改很多人不喜歡 難閱讀15F 06/16 11:36
tvbic: 新手才會這樣寫16F 06/16 11:47
angusyu: 原來static method 是給新手用的 (筆記17F 06/16 12:28
knives: 新手應該連什麼叫static 都不知道吧18F 06/16 12:31
Blueshiva: 你真的知道Static function是用來幹嘛的嗎...19F 06/16 12:33
GoalBased: 同樓上...20F 06/16 12:35
Bencrie: 你什麼時候開始有非 static function 比較省記憶體的錯覺21F 06/16 12:36
alan3100: 雖然你想偷酸主管 但看來你連class存在意義都搞錯22F 06/16 12:51
comesuck: 如果情境不一樣,最省事就是開delegate自己外部實作23F 06/16 12:51
comesuck: 再丟進來
comesuck: 所有的method一寫好都是跟class放在一起
comesuck: stackoverflow搜"where are methods stored in memory"27F 06/16 12:58
popcorny: 看情境 不過大部分都是non-static居多, static比較少28F 06/16 13:16
tipsofwarren: 我喜歡data isolation 能static 就 static29F 06/16 14:13
tipsofwarren: Function 都在text segment 有self modified code?
Masakiad: 先搞懂static的正確用法再來討論31F 06/16 14:17
final01: 好多 static 神人32F 06/16 16:17
feeya: static不用new好用多了33F 06/16 16:52
doranako: 公用而且不需要存變數才比較多會使用static, 大部分還34F 06/16 19:12
doranako: 是nonstatic
wuliou: 這串推文到底是反串還認真啊…36F 06/16 19:46
KeySabre: 主要看是否跟instance的狀態相關37F 06/16 21:33
KeySabre: static or instance method 應該考慮的是設計上的權責而
KeySabre: 不是performance
blackie1019: 老實說我覺得你主管還有時間酸你人還蠻好的...40F 06/16 23:28
cobrasgo: 我覺得這沒標準的答案,看CLASS的用途41F 06/16 23:30
CoNsTaR: 我覺得把你文章裡的所有 static 通通換成 const 比較說得42F 06/17 01:57
CoNsTaR: 通 XD
Ekmund: 我是覺得跟你的code要放在什麼上面跑也有差...44F 06/17 02:24
cha122977: 沒狀態差異的可以用45F 06/17 02:24
goldberg123: 良葛哥網站去看一下再來討論吧46F 06/17 08:02
v7q4: common tool之類的function都我用static的47F 06/17 11:46
shadow0326: 這文給我的感覺就是 為什麼要用螺絲起子不用釘書機48F 06/17 19:34
shadow0326: 因為螺絲起子不會有用完訂書針的問題
thinklu: static最多人垢病的地方是會有test issue, 像是mocking,50F 06/18 08:38
thinklu:  你要怎麼mock? 基本上比較常使用的時候大概是singleton
thinklu: 或很小的until function
thinklu: 是util打錯 不好意思,建議多看看一些design的書 看看怎
thinklu: 麼寫code比較好 然後可以用stackoverflow 去問問題,像st
thinklu: atic的好壞那邊都有人分析過了
thinklu: 當然 我懷疑那些酸你的資深人員到底知不知道這些 或單純
thinklu: 他們就是被人酸過 所以就酸你一下 但是從來沒想去搞懂原
thinklu: 因
thinklu: 加油!

--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 121 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇