增加網址:
文章備註、標題(會記錄下來,但是暫時不會顯示):
[綜合]無題 無名 ID:ZnuocCOA 2019/01/08(二) 10:19:36.047 No.13553376
回覆: >>13553449
評分:0, 年:0, 月:0, 週:0, 日:0, [+1 / -1] 最後更新:2019-01-08 17:50:57
附圖
資工島民早點名
無題 無名 ID:Dy4Mutc. 2019/01/08(二) 10:21:07.438 No.13553382
回覆: >>13553406
附圖
早ㄛ

我今天面雷亞ㄛ
無題 無名 ID:ZnuocCOA 2019/01/08(二) 10:22:06.413 No.13553389
工作上曾被主管批評程式碼可讀性太差
命名不佳
那到底怎樣才算"好"的程式碼?
馬的我明明已經寫的很有條理了啊
無題 無名 ID:Dy4Mutc. 2019/01/08(二) 10:23:42.730 No.13553398
回覆: >>13553431
>>13553389

去把CleanCode看一遍照著裡面的pattern寫ㄅ

還被嗆就拿這本出來壓他
無題 無名 ID:4gMJC8i. 2019/01/08(二) 10:24:00.631 No.13553403
>>13553389
>>工作上曾被主管批評程式碼可讀性太差
>>命名不佳
>>那到底怎樣才算"好"的程式碼?

重要的是follow前人的code的rule吧
看不出是"你"寫的 對公司來說才是好的code
無題 無名 ID:ZnuocCOA 2019/01/08(二) 10:24:43.369 No.13553406
回覆: >>13553583
>>13553382
遊戲程式都是糞缺
尤其是台灣
寫遊戲不好玩
賺多一點薪水去買神機+神作才好玩
勸你懸崖勒馬
無題 無名 ID:Es.vAXmY 2019/01/08(二) 10:25:57.603 No.13553409
回覆: >>13553443
>>13553389
你的公司有一套rule -> 照rule走

話說code還有人幫忙看真是幸福
無題 無名 ID:ZnuocCOA 2019/01/08(二) 10:29:34.467 No.13553431
回覆: >>13554018
附圖
>>13553398
CleanCode看過
裡面寫的都是理所當然的事情
本來就是那樣寫了

>>13553403
我對命名風格沒有潔癖
原本怎麼寫我就跟著走
問題也許是他寫給我的程式碼是C風格
而我改寫成C++風格
而且用了C++11語法
他不喜歡[](){}這種用法
無題 無名 ID:ZnuocCOA 2019/01/08(二) 10:31:15.756 No.13553443
>>13553409
幫忙個洨
當兵掃樹葉的時候
長官過來檢查灰塵叫做幫忙喔
無題 無名 ID:pYhVMdvE 2019/01/08(二) 10:31:59.624 No.13553446
>>13553403
NO,如果環境跟屎一樣你這樣反而沒進步。
所謂的好的程式碼有幾個要素,也不一定要跟著PATTERN走。
要素有
1.不需大量的註釋也可以藉由命名隱喻得知處理邏輯
2.適可而止的邏輯抽象
3.恰到好處的單一檔案程式碼行數
4.恰到好處的單一行程式字元數
5.沒有他媽該死的Region
6.有可被檢驗為何如此設計程式架構的原因
7.三個月後你本人回來看該段程式可以10分內搞懂當初緣由

簡單來說就是你可以將你的程式文章化,敘述出你的主體脈絡。

粗乃丸(響子嘆氣).jpg
無題 無名 ID:0MLP.YbA 2019/01/08(二) 10:32:17.895 No.13553449
>>13553376
這張圖真棒 有原作者IDㄇ?
無題 無名 ID:pGaSe.MY 2019/01/08(二) 10:32:24.363 No.13553450
>>13553443
沒聽過pair programmingㄛ
無題 無名 ID:Es.vAXmY 2019/01/08(二) 10:33:06.991 No.13553456
>>13553443
主管會下來做就不叫主管了XD
無題 無名 ID:pYhVMdvE 2019/01/08(二) 10:38:53.665 No.13553502
回覆: >>13553603
>>13553446
另外有一點是很多自認資訊高手的人常忽略的一點
->【使用自己才看得懂的技巧】

奉勸有自認高手或是自豪於此的同業趁早改掉此習慣才能讓大家活的順順遂歲平平安安。
PS:環境的能容許的程度如何,就盡可能不要使用太超越的知識,對大家都好。

粗乃丸(大吉嶺喝百事可樂).jpg
無題 無名 ID:Dy4Mutc. 2019/01/08(二) 10:48:47.071 No.13553583
附圖
>>13553406

謝謝ㄛ,從上個月約好面試後,好多人勸過我ㄌ

我覺得不管有沒有遊戲魂,有沒有面上,面雷亞會是很棒ㄉ經驗ㄅ,尤其在情懷面

薪資ㄉ話倒是不太要求,前陣子做remote已經存一點ㄌ

覺得單想靠寫code存錢ㄉ話,做洋人code便器存錢速度還是挺不錯ㄉ
無題 無名 ID:ZnuocCOA 2019/01/08(二) 10:50:23.648 No.13553603
附圖
>>13553502
你講這我可以理解
但是"自己才看得懂的技巧"我認為是語言外的技術才叫看不懂
例如大家都用C++寫程式
我就引入python來幫忙
這導致別人看不懂我寫啥
這是我的錯
但我寫的都是C++語法 甚至用的標準庫是98就有的
那看不懂還要怪我嗎?

主管自己寫的古老marco技巧我就看的懂
看不懂就查一下去搞懂
這樣才是正確的態度吧?
無題 無名 ID:pYhVMdvE 2019/01/08(二) 10:53:00.638 No.13553619
回覆: >>13553748
>>13553603
不對喔,在你幹掉你主管之前,整個部門還是以你主管當作窗口。

從這個角度去思考我想你應該可以找到你的問題點。

粗乃丸(響子掛柚子).jpg
無題 無名 ID:8g/b4pps 2019/01/08(二) 10:55:14.303 No.13553631
for(int l=1/*counter*/;l<11;l++)
無題 無名 ID:pYhVMdvE 2019/01/08(二) 10:57:09.940 No.13553642
>>13553583
薪資不要求?這種屁話勸你改掉才能挑戰真正應有的所得與對應的能力。

粗乃丸(杹-怒).jpg
無題 無名 ID:6bneQZeU 2019/01/08(二) 10:58:46.851 No.13553649
回覆: >>13553848
>>13553603
>>看不懂就查一下去搞懂
>>這樣才是正確的態度吧?

wwwww果然是社會新鮮人

長官寫的 -> 你自己要用懂
你寫的 -> 你要讓長官弄懂,並且說明邏輯

這才是職場啦
無題 無名 ID:QcuhLvPs 2019/01/08(二) 10:59:20.852 No.13553656
薪資不要求就是最機掰的人
破壞同業的行情
你同事知道的話 不會給你好臉色的
無題 無名 ID:SgsSS5I6 2019/01/08(二) 10:59:25.980 No.13553659
>>13553403
讀過資工科
你們說的我都是完全不懂的情況下畢業
無題 無名 ID:SgsSS5I6 2019/01/08(二) 10:59:26.009 No.13553660
>>13553403
讀過資工科
你們說的我都是完全不懂的情況下畢業
無題 無名 ID:BUCNwtq6 2019/01/08(二) 10:59:49.718 No.13553663
回覆: >>13553687
>>13553583
哀,看到這串屁話有點想救你又覺得你還是死過幾次才會了解。
無題 無名 ID:pYhVMdvE 2019/01/08(二) 11:03:31.163 No.13553683
如果你真的很想寫你的C++語法,下次一起粗乃丸就考慮告訴你這種情況該怎麼處理。

粗乃丸(芙蘭舉啤酒).jpg
無題 無名 ID:ZnuocCOA 2019/01/08(二) 11:03:59.725 No.13553687
>>13553663
人家也許是富二代不死之身
我也認識過幾個小開同事
對他們而言上班只是一種消遣
像加入社團一樣
無題 無名 ID:ZnuocCOA 2019/01/08(二) 11:05:40.657 No.13553701
回覆: >>13553749
附圖
我個人的概念是程式碼必須能分割成小片段
這些小片段最好是函式
能寫成pure function是最好不過了
物件則是成員變數要盡量減少

這些小片段行數不多
最好是一個螢幕可以看完
對我而言這樣就是好程式了
像這樣短短的函式就算好
https://github.com/lua/lua/blob/master/lcode.c

大致上 >>13553446 講的第7點就是最重要的
要像書一樣有個索引大綱可看

命名什麼的真是狗屁
你程式碼切到只剩幾行的時候自然可以取出貼切的名字
而那些靈活且用法抽象的介面當然就無法取好名字
所以重點是先切乾淨切的夠細
拘泥命名的是腦子進水了吧?
無題 無名 ID:ZnuocCOA 2019/01/08(二) 11:13:34.743 No.13553748
回覆: >>13553857
附圖
>>13553619
主工程師水準決定部門的高度
我當然知道
我沒有想要幹掉他
他是守舊努力型的
只是你不覺得放任部下施展技能才是好策略嗎?
你的電腦有N個核心
程式卻只用一條thread不是浪費嗎?

P.S 沒圖片別硬是藥丸
無題 無名 ID:btle0Nhc 2019/01/08(二) 11:13:35.769 No.13553749
>>13553701
>>對我而言這樣就是好程式了
對你的主管不是
要嘛就離職找適合的
不然就委曲求全不要再用"你認為好"的寫法 用"主管覺得好"的寫法
無題 無名 ID:KYVn19Jo 2019/01/08(二) 11:14:11.479 No.13553755
回覆: >>13553796
附圖
該去嗎
無題 無名 ID:ZnuocCOA 2019/01/08(二) 11:19:55.276 No.13553796
>>13553755
獵人頭or人資亂約人??
看你自己對職缺有沒有興趣啊
去參觀一下辦公室也不錯
無題 無名 ID:ZnuocCOA 2019/01/08(二) 11:28:04.395 No.13553848
附圖
>>13553649
我很樂意說明
樂意之至
我也不懂他為何拒絕學習
跟同事學習的效率根本奇高無比
比看書查網路快N倍
大師都是團隊討論中誕生的

我python java都是跟同公司的人學的
那些老工程師比圖書館還要好用
公司裡的技術力也是有M型化的感覺
無題 無名 ID:pYhVMdvE 2019/01/08(二) 11:29:39.380 No.13553857
回覆: >>13553941
>>13553748
首先你要先認清楚現狀
1.你跟你主管承擔的壓力不同
->他是背負著部門負責的壓力,你則是背負自己成品的壓力。

2.你對你自己的能力有信心,但他不一定對你有信心。

3.你所謂的好程式碼不一定對他來說是好,尤其是他還要花時間成本去學習的情況下。

如果連這三點都沒認清楚的話,那改變風格就甭甭了。

粗乃丸(我兒子會掉到山谷下都是這些雞害的).jpg
無題 無名 ID:xoUaS5VA 2019/01/08(二) 11:40:35.017 No.13553937
其實我有個疑惑
為甚麼很多人在命名變數的時候都喜歡縮寫
而不是打個完整名稱
至少也打個註解
每次最先要搞懂的都是要知道那個變數是甚麼東西

程式碼的編纂跟順序我覺得是其次 你功能看下去基本功有的話還是能看懂
可是那個名稱真的有點干擾
命名簡短有甚麼幫助程式速度的因素在嘛? 不然幹嘛不寫的詳細
無題 無名 ID:ZnuocCOA 2019/01/08(二) 11:41:25.289 No.13553941
>>13553857
>>2.你對你自己的能力有信心,但他不一定對你有信心。
都被你講中了
你還真是經驗豐富
無題 無名 ID:pYhVMdvE 2019/01/08(二) 11:44:33.915 No.13553963
>>13553937
因為有人覺得只有自己懂得極簡縮寫變數名稱就是超屌,別人不懂是他們覽趴不夠大。

粗乃丸(雪風-一般).jpg
無題 無名 ID:6PoR1wXg 2019/01/08(二) 11:45:25.307 No.13553970
>>13553937
註解就好
名稱太長
有時還要用個指標來指程式才不會太長太亂
尤其使用繼承時
無題 無名 ID:ZnuocCOA 2019/01/08(二) 11:49:01.302 No.13554000
>>13553937
你可以為你今天的工作內容取個好名字對吧?
例如"fix front end bug"
那麼替去年的工作內容取個名字呢?
20年來的工作內容呢?
只能取個"研發公司產品"這樣籠統的名字而已

就是這樣
無法用名字說明內容
想搞懂用法就看實際上的使用方式or範例

不是不寫的詳細
而是無法寫詳細

另外啦
我通常不喜歡去讀那些命名
因為真相只在code裡
註解三洨的不可信
無題 無名 ID:ZuEmrncY 2019/01/08(二) 11:52:18.713 No.13554018
回覆: >>13554081
附圖
>>13553431
>而我改寫成C++風格
>而且用了C++11語法
活該被罵

北七不要亂用
你有想過萬一哪一天編譯環境的相容性出問題
就是你這個智障害的
寫作風格應該是一開始就要統一的
如果要用C++11寫法
應該是一開始就統一這麼用
無題 無名 ID:pYhVMdvE 2019/01/08(二) 11:55:16.418 No.13554036
回覆: >>13554077
>>13554000
給你真誠的建議,命名真的很重要。
好的命名來自於對於程式碼的目的透徹度,
換言之就是你是否真正了解邏輯處理。

[aa]
public string NameBlocked => Name.BlockPart('●', (1, 2));

//下面這段實際寫在Utitly中的擴充方法區塊
public static string BlockPart(this string thisString, char blockSymbol, (ushort startPosition, ushort endPosition) EncodeRange)
{
if (string.IsNullOrEmpty(thisString))
{
return thisString;
}
else
{
var intEndPosition = Math.Min(EncodeRange.endPosition, thisString.Length);
var intStartPosition = Math.Min(EncodeRange.startPosition, thisString.Length);
var resultPart1 = thisString.Left((ushort)Math.Min(intEndPosition, intStartPosition));
var resultPart3 = thisString.Right((ushort)(thisString.Length - Math.Max(intEndPosition, intStartPosition)));
var resultPart2 = "";
for (var index = 0; index < Math.Abs(intEndPosition - intStartPosition); index++)
{
resultPart2 += blockSymbol;
}
return $"{resultPart1}{resultPart2}{resultPart3}";
}

}
[/aa]
無題 無名 ID:6PoR1wXg 2019/01/08(二) 12:02:49.188 No.13554077
回覆: >>13554108
>>13554036
其實你想了解邏輯最好是透過測試寫註解
沒測試過的程式碼沒有可靠度
用完全命名法則這樣寫很蠢
字多反而不容易看
複雜化了
參數型別類的其實簡寫就可
無題 無名 ID:ZnuocCOA 2019/01/08(二) 12:03:56.950 No.13554081
附圖
>>13554018
一開始主管定下來的環境就是使用gcc編譯器
他用的編譯器也支援C++11
善用環境錯了嗎?
除非突然退回非常舊的Linux系統orWindowsXP
不然相容性問題根本遇不到

>>寫作風格應該是一開始就要統一的
其實我沒改架構
邏輯是一樣的
只是改的讓架構更明顯更容易查閱
風格是指匈牙利命名之類的嗎?
這些我照舊
無題 無名 ID:6Hy/GE8g 2019/01/08(二) 12:08:57.454 No.13554103
回覆: >>13554164
>>13554000
看你有沒有跨過理解和被理解的中間
然後有沒有看過教學吧

以前常用INT a x y z n i j k之類的
用了幾年 整個公司都在用
那代表整個公司都沒受過那方面的教育
簡單說 未開發
無題 無名 ID:pYhVMdvE 2019/01/08(二) 12:09:43.478 No.13554108
回覆: >>13554122
>>13554077
你知道嗎?
1.我不打算讓人使用這個Method時需要理解邏輯。

2.真的需要理解邏輯時的狀況肯定是很糟糕的,
與其打一堆註解我寧願選擇你所謂的很蠢命名法。

3.螢幕不夠大就換寬螢幕,一個寬螢幕不夠就申請兩個,三個。

4.全部測試寫註解這檔事有流派分別,我選擇放一邊。

粗乃丸(杹-探頭).jpg
無題 無名 ID:6PoR1wXg 2019/01/08(二) 12:09:44.573 No.13554109
回覆: >>13554190
>>13554081
其實幹程式碰到舊系統的場合還不少
無題 無名 ID:6Hy/GE8g 2019/01/08(二) 12:11:22.467 No.13554122
>>13554108
幹破你娘你給我去掛真的圖
別整天尸丁丁的.jpg
無題 無名 ID:CO29Uqaw 2019/01/08(二) 12:13:36.766 No.13554137
>>13554122
https://www.urbandictionary.com/define.php?term=.jpg
尸丁丁文化發揚到海外ㄛ
無題 無名 ID:pYhVMdvE 2019/01/08(二) 12:14:17.237 No.13554144
>>13554122
辦公用電腦不放私物,我所有一切皆為正義。

粗乃丸(響子-咖啡).jpg
無題 無名 ID:6PoR1wXg 2019/01/08(二) 12:16:57.144 No.13554164
回覆: >>13554192
>>13554103
我只能說你是效率極差的程式庸才啦
真的到處都是
只能用別人寫的東西和找別人的東西來找CODE的吧
寫不出幾個正經的東西
程式本質是自由的
你想照特定命名規則
其實寫個對照表取代文字就行
你卻把精神一直CALL在上面
還副我會命名我有被開發w
無題 無名 ID:ZuEmrncY 2019/01/08(二) 12:18:30.162 No.13554175
>>13554081
如果那一天程式要移植到其他平台
結果卡住編譯不過去
debug兩個月之後
最後發現就是你這個智障寫的那一段程式
於是又要找個人重寫你寫過的部分
整套系統跑過的測試全部都要再重跑一次

>風格是指匈牙利命名之類的嗎?
光是命名規則相關的問題就包含很廣了
要駝峰字還是底線分隔
名詞要縮寫還是全名
縮寫要怎麼命名
宣告位置要怎麼規劃…等等
甚至小到無關緊要的左大括號位置
最好全部都統一
無題 無名 ID:gv6lPaHk 2019/01/08(二) 12:20:13.820 No.13554184
https://github.com/openbsd/src/blob/master/bin/csh/misc.c
openbsd的variable也是很短啊
無題 無名 ID:ZnuocCOA 2019/01/08(二) 12:21:19.298 No.13554190
>>13554109
有啊
gcc那是新的
有另一票專案是只使用C語言寫的
因為那個環境能替公司省錢
大家都寫得很痛苦
主管自己也說很懷念std::string
無題 無名 ID:6Hy/GE8g 2019/01/08(二) 12:21:40.144 No.13554192
>>13554164
你這代表你只一直做小程式而已
大型的 你寫的不是只有你自己看
別人寫的也不是別人自己看
就是因為太多你這種
最後要花一堆時間去追你這類型的程式問題
最後出來到底層 發現邏輯出問題
然後消掉好幾天
無題 無名 ID:ZnuocCOA 2019/01/08(二) 12:23:58.648 No.13554202
>>13554184
真他媽清爽!
無題 無名 ID:6Hy/GE8g 2019/01/08(二) 12:25:37.202 No.13554218
不過呢 也有反其道而行
有目的的行為 為了更快升職
有是衝KPI
就幹你娘的寫爆 管他看不看得懂
總之就是要把東西弄出來 有BUG?
管你的 反正修的不是我 1年後就與我無關了
總之出一堆作品 就有成績了

有聽說過這樣的故事
無題 無名 ID:ZuEmrncY 2019/01/08(二) 12:28:41.056 No.13554244
回覆: >>13554288
>>13554184
c當然是可以這麼寫
c++如果還寫這樣大概就要被幹了
無題 無名 ID:ZnuocCOA 2019/01/08(二) 12:31:05.846 No.13554265
回覆: >>13554293
>>13554218

就是有那種可恥的commit魔人
git commit都要一次拉一堆
看起來很努力
連比爾蓋子都知道不能用磅秤來檢視飛機建造進度
無題 無名 ID:ZnuocCOA 2019/01/08(二) 12:33:31.034 No.13554288
回覆: >>13554342
附圖
>>13554244
反了吧
C要寫成那樣才難
C++有一大票縮短命名的Syntactic sugar
無題 無名 ID:6Hy/GE8g 2019/01/08(二) 12:34:17.451 No.13554293
>>13554265
他們還有意用誰也看不懂的名字
絕對不用有意義的
無題 無名 ID:ZuEmrncY 2019/01/08(二) 12:36:44.405 No.13554308
回覆: >>13554336
>>13554218
如果大家都這麼幹
結果就是大家的kpi都爆幹低
然後哪一天公司叫你接手前輩的案子
你覺得幹你娘完全看不懂
而公司只覺得幹你娘你怎麼這麼弱
競爭對手的公司一下子就移植完成了
同樣的工作你做老半天沒半點進度
最後想想算了
整個計畫撤掉
直接買現成的系統來用
你可以滾了
無題 無名 ID:6Hy/GE8g 2019/01/08(二) 12:41:36.168 No.13554336
>>13554308
聽說華人很愛玩這個
以玩了好幾年了
反正做經理的不懂

外國是intergate那個去檢查的
無題 無名 ID:ZuEmrncY 2019/01/08(二) 12:42:20.955 No.13554342
回覆: >>13554457
>>13554288
c才會這樣寫
以前的程式都是這麼寫的
c++就沒有人這麼寫了
除非只是個人寫來玩玩的程式
無題 無名 ID:pYhVMdvE 2019/01/08(二) 12:57:11.755 No.13554457
>>13554342
大學出來比較熟悉C,業界使用C#,中間我就磨過一陣子。
想想還真的有一點對不起接我那時狗屎爛扣的人,
不過想到以前是領鳥鳥的薪水,心中又放下惹。

粗乃丸(艦娘不知火-面攤).jpg

PS:早期程式碼變數會很短有另一部份是那時硬碟容量很貴。