看板 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
→ qweqweqweqwe: 先不說 static 的問題,但要防止改爛了應該有更好的方法…例如unit test…2F 06/16 08:45
推 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 分類要做好,不然就會像我第一個工作看到的,Tool.java一萬多行...7F 06/16 09:31
→ 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/架構設計有問題
把重點放在coding品質的管理上吧13F 06/16 11:31
推 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
推 Bencrie: 你什麼時候開始有非 static function 比較省記憶體的錯覺21F 06/16 12:36
→ alan3100: 雖然你想偷酸主管 但看來你連class存在意義都搞錯22F 06/16 12:51
→ comesuck: 如果情境不一樣,最省事就是開delegate自己外部實作
再丟進來
所有的method一寫好都是跟class放在一起23F 06/16 12:51
→ 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 就 static
Function 都在text segment 有self modified code?29F 06/16 14:13
推 Masakiad: 先搞懂static的正確用法再來討論31F 06/16 14:17
→ final01: 好多 static 神人32F 06/16 16:17
→ feeya: static不用new好用多了33F 06/16 16:52
推 doranako: 公用而且不需要存變數才比較多會使用static, 大部分還是nonstatic34F 06/16 19:12
→ wuliou: 這串推文到底是反串還認真啊…36F 06/16 19:46
推 KeySabre: 主要看是否跟instance的狀態相關
static or instance method 應該考慮的是設計上的權責而不是performance37F 06/16 21:33
推 cobrasgo: 我覺得這沒標準的答案,看CLASS的用途41F 06/16 23:30
推 CoNsTaR: 我覺得把你文章裡的所有 static 通通換成 const 比較說得通 XD42F 06/17 01:57
→ Ekmund: 我是覺得跟你的code要放在什麼上面跑也有差...44F 06/17 02:24
推 v7q4: common tool之類的function都我用static的47F 06/17 11:46
推 shadow0326: 這文給我的感覺就是 為什麼要用螺絲起子不用釘書機
因為螺絲起子不會有用完訂書針的問題48F 06/17 19:34
推 thinklu: static最多人垢病的地方是會有test issue, 像是mocking, 你要怎麼mock? 基本上比較常使用的時候大概是singleton或很小的until function
是util打錯 不好意思,建議多看看一些design的書 看看怎麼寫code比較好 然後可以用stackoverflow 去問問題,像static的好壞那邊都有人分析過了
當然 我懷疑那些酸你的資深人員到底知不知道這些 或單純他們就是被人酸過 所以就酸你一下 但是從來沒想去搞懂原因
加油!50F 06/18 08:38
--