Re: [請益] 我是否該轉行了...?

作者: su27 (su27)   2014-02-22 18:04:48
你就算變數全寫成global也不會怎麼樣 頂多ram佔空間
可是現在的電腦 MCU其實都夠使用了
你要擔心的是怎麼把編譯完的code變短才是重要的
c=a>b?a:b;
if(a>b) c=a;
else c=b;
有人竟然回我上面的code比較短
我問為什麼 他回我 寫得比較少行 編譯起來一定比較短
function內傳指標跟傳陣列 也有人跟我講傳指標比較短 傳陣列比較多XXX
我是不知道正確答案 可是如果我用組合語言去寫 我想不出來會不一樣
變數那種完全不重要的寫成ABC又如何 隨用即丟何必命名
別人去接還以為這是重要的東西
到時去記一堆根本不沒用的變數名稱幹麻
我都把重要的寫成global
其它的abc ijk temp 就行了
我寫的code沒註解 我北京的同事全看的懂 還知道怎麼改
第一 我變數少 第二程式架構壓到1xxx行寫完 一堆還是設定
真正重要不到幾百行
我也被北京的同事向其他的同事稱讚我程式的邏輯很好
我大學 我教授當天講完他的想法 我也馬上隔天把東西寫完
我教授也對其他的人講 SU27程式邏輯能力很強
我們公司以前的產品是伺服器得電源供硬器 MCU PIC24 DSPIC33
腳位全用光 code也擠到滿 這樣的產品應該不算低階的 產品一個月都幾k幾十k再出
基本上我想法跟我前主管一樣 也是認為那code不要出問題 就沒事
我為什麼說我指標只學幾天就會了
那是因為我之前就有學過 只是沒全部都學 只用簡單的
在加上我有學組合語言
並且用組合語言寫伺服器的電源供應器
所以我看指標根本就很容易
在來我當初用組語寫公司之前的產品 我把code丟給北京的同事看
我講 妳哪裡寫太差了 我怎麼怎麼寫的
她最後也回我 你的code也經過測試嗎
我本來用c寫伺服器的電源供硬器產品
我把所有的程式用"我認為最好的架構"+"全部都是指標"
去寫 因為我當了四年的韌體測試 所以我敢保證之前沒辦法解的問題
在我的架構下不會發生
程式也超級短 以c來看 最少省了1/2行 而且rom的空間還沒之前人寫的1/2
可是組語恐怕不是
你懂組語的xx索引 就應該懂 我講的
在是在中期
可是到了快完成時
我把black box存五個錯誤訊息在flash的功能 用struct設計 全丟進指標陣列
我真正用到那功能只寫了三行
編譯完後我傻眼了 竟然比主管寫的code還大
我bootloader還沒寫 竟然一個black box會爆表
我之後只好"光明正大"看他的code去學人家的方法
人家把code傳給我要我以後接他的code 我可不是像有些人 沒問直接偷copy
再來就是vb 我用了指標的觀念跑去寫vb的物件導向 寫得很開心
結果跑去寫C#卻沒辦法編譯 
貼在MSDN上求解答
最後那的MVP們回我 VB超級強大 不需要資料型態 他自己能幫你轉換
這樣對物件導向會學不好
我看到這一段 突然想到我當初在用c寫韌體
常出現編譯過不去就是因為資料型態
在c#也是差不多
這社會本來就是成敗論英雄 
你做不出來解不出來 把C所有的方法功能全用上又如何 
看到問題不知道問題在哪有用嗎
我一個同事
接別人的code到處講那他寫的
我另一個同事還很不服氣的講 那我寫的 我交給他
跑去接北京的code 看不懂 結果講寫的code有多爛
他自己的寫得多好 別人看得懂
結果北京團隊 我跟他們做了四年多 案子越接越多 我們還獲得客戶的好評第一名
我們的客戶是HP & DELL
結果東西一交給他 我直接預言 案子一定死
因為不只我這樣想 我其他主管也是 他們也直接跟我講 他接的案子沒一個活的
我是之前在幫他測 我跟他講正確的方法 怎麼去解 竟然回我北京是北京
台北是台北
果然我離開當天案子掛一個 還是量最大的
我想講的是 你要自我感覺良好 你也要拿得出表現
不是沒一個案子活的 還可以去批評別人寫的多爛 別人看不懂
那我只能講 那是因為智商有問題
※ 引述《ms6163 ()》之銘言:
: 這是真的 pointer太難 全部都用array
: 參數要傳到function太麻煩 太難 全部寫成global..
: 如果時間多一點的話... 程式散布在不同的檔案跟function..
: 應該要簡化 全部寫在main就行了 以後的人也不用在那裡找來找去
: 參數一定是在global 程式碼保證會在同一個function裡面找到
: 你老闆一下會很高興 馬上升你官
: ※ 引述《su27 (su27)》之銘言:
: : 沒那麼嚴重
: : 我念大學時 我去電機系上c語言
: : 那老師講 指標太難 跳過 叫我們用陣列就好 XD
: : 我講的是真的 我大學畢業只會一點點 之後上班時 買本看的懂的書
: : 學幾天就會了
: : 我說實在的 不會指標 程式就一定不能動嗎
: : 我也看過有人用C去寫.net不用物件的方式
: : 只是code變的很大 程式還是能跑
: : 我前主管講過 就算那code寫的在怎麼爛
: : 只要經過一堆人測試沒問題 他就是ok的
: : 所以你做看看就知道 那麼東西只是觀念
: : 很容易就能學會了
作者: prpure (風速)   2014-02-22 18:29:00
傳指標是真的有個變數在存位址資料,所以可以改指向位址傳陣列的話,在complier時就固定位址了兩者用assembly實作應該還是有點差,不知我講的對不對XD
作者: dakkk (我是牛我反芻)   2014-02-22 18:34:00
我覺得 global的要用有義意的 其它每一個演算用一個func不重要的_tmp 可讀性就很不錯
作者: dakkk (我是牛我反芻)   2014-02-22 18:40:00
不過我可以回答你第一個問題
作者: dakkk (我是牛我反芻)   2014-02-22 18:41:00
如果寫成c=? a:b 會compile 成c=[a_addr:b_addr]
作者: dakkk (我是牛我反芻)   2014-02-22 18:42:00
取前半或後半如果是if else 判斷完後 C jmp a_addr 或jmp b_addr
作者: dakkk (我是牛我反芻)   2014-02-22 18:43:00
理論上來說 一次先抓進兩個addr的值 最短
作者: dakkk (我是牛我反芻)   2014-02-22 18:44:00
以上是猜測
作者: tonybin (Courage)   2014-02-22 19:08:00
在台灣你大概很難紅(指)
作者: lngagg (lngagg)   2014-02-22 19:32:00
樓上 在台灣你應該薪水很低(指)
作者: bleed1979 (十三)   2014-02-22 19:53:00
上一篇原po不是在講反話嗎?
作者: cafopupu (李俊畿㊣大帥哥㊣ ®™)   2014-02-23 01:40:00
google naming rule ... i j k 很不好,真的不好
作者: cafopupu (李俊畿㊣大帥哥㊣ ®™)   2014-02-23 01:44:00
你的CPU是8051還是arm 9? C去寫怎麼會這麼慘???
作者: tac0wu (在BBS中流浪)   2014-02-24 00:01:00
這篇是甚麼鬼阿 難不成嵌入式系統都這樣搞
作者: wayne3058 (不孝者)   2014-02-24 06:22:00
難怪有人都覺得軟工的課程是多餘

Links booklink

Contact Us: admin [ a t ] ucptt.com