瀏覽單個文章
darkangel
Major Member
 
darkangel的大頭照
 

加入日期: Aug 2001
文章: 211
引用:
作者NTC_TW_IT
30歲對工作還有熱情啦,加油~保持下去
再幾年應該就沒有那些熱情囉
至於寫程式這檔事~~如果沒有硬性規定規範,基本上程式能跑就很保佑了
不然你今天說人家寫得不好,其他人搞不好覺得你寫的也不好勒
你的class, variable, function, ,method naming rule有沒有符合規範?
每一行code的長度有沒有符合規範?使用哪一個框架?
一個function能不能在一頁的範圍內就一次顯示完?
理論上年紀越大,越可以隨波逐流
甚至可以接受所謂的將錯就錯(指跟你n年前學的某個語言中的某個規範相互衝突)

PS:
我不能接受程式不回傳return code,但是如果有人堅持現在新的規範就是這樣,我就會配合他
至於程式間通訊出問題,就不管啦~反正隨波逐流咩

補充詢問,除了演算法工程師,有哪些公司真的會去算程式的時間與空間複雜度?


1. 一個合格的程式員,對基本的時空複雜度應該都要有底,
合格程式員能知道 Array, Hash, Linked-List
的時空複雜度與優缺點,也能大致看出一個 function 的時空複雜度。

2. function 的一頁到底多少行,舊式顯示器文字模式 80x25,
現在誰用這個,都高解析一頁幾十行,那這一頁又是多少?
不然我說是 25 行,有些人 Linux bash export LINE=20,
你說你的 VS Code 一頁 50 行,要聽誰的?

所以 function 的規範從來都不是在一頁中顯示完,
正確來說是 function 應該只做"專門或最少"的事,
這算是是軟工跟哲學問題,要講的道理太多,
所以才有人乾脆要求一頁顯示完,這叫不求甚解,
有的 function 只處理一件事,但搞不好都上百行,
這在很多 open source 上都能看到,但他們是對的。

3. 雖然很多人不清楚,但回傳值實際上是有原則跟慣例的,
有回傳值的叫 function,無回傳的叫 procedure,
而回傳給作業系統的又是另一件事,
有標準是好事,但別劃地自限,規矩不是這樣用的,
有些人把 goto 當成異端,
可是機器語言都是 jmp/b 飛來飛去,
有本事不要用啊,所以真正要理解的是盡量不用 goto 的原因,
而不是完全不用,goto 在一些 error handling 上很好用的,
同理,function 也可以是無回傳值的,不然你會去檢查 printf 的回傳值嗎?

4. Coding Standard/Style 在真正專業的團隊都很重視,
當然每個團隊都有自己的標準,但大致都有東西可以參考,
有興趣可以去看看一些書與文件,如 C++ Coding Standard,
Doxygen/JavaDoc, Python 的 PEP8,這些才是規矩的正確使用方式。

當然請別走火入魔,
請參考美劇 Silicon Valley 某集,
宅男主角好不容易碰到曖昧對象,
結果因為 tab 跟 space 不合的搞笑:
https://www.youtube.com/watch?v=SsoOG6ZeyUI

用 tab 跟 space 其實都無所謂,
但我無法接受 tab 跟 space 混用 (只能選一個),
但這東西很難要求別人,所以我都只要求我自己。

還有請別推 clean code,這本只對新手有參考價值,
如果有人覺得這本書好棒,我只會覺得你很菜,
啊上面的東西不都是基本嗎?

__________________
滿招損 謙受益
舊 2022-02-18, 11:34 AM #67
回應時引用此文章
darkangel離線中