[請益] 菜鳥如何看懂高手的code?

作者: g001613001 (阿月)   2016-11-03 16:18:25
各位好
小弟目前是個iOS菜鳥工程師
目前只有以自己的coding方式完成一個案子
但是公司同時也有請外包商寫Android和iOS的版本
最近因為已經按照後台給的規格書完成了進度
所以公司希望我能在12月底前學會安卓
所以原本是一直抱書啃
但是上頭覺得拿外包商的原始碼給我看才可以學的比較快
所以我就看了
但是很明顯高手寫的完全讓我看不懂
主要是我大部份都沒有把功能切的很細
看高手寫的,切的非常細
所以讓我閱讀很困難,加上幾乎沒有註解
而且會使用許多精簡的程式碼寫法
讓我看了三天還是沒什麼進展
公司也沒有人可以請教,只有我一個人
所以目前感覺壓力頗大
不知道該怎麼看懂iOS的部份
安卓的話我書啃不到一半更看不懂...
不知道有前輩可以分享或者指點一下
該怎麼讓一個菜鳥能看得懂高手寫的code嗎?
謝謝大家
作者: lonelytea (霸氣逼人)   2016-11-03 16:24:00
我懂...唉
作者: robler (章魚丸)   2016-11-03 16:26:00
不要越級打怪 從書上範例做起
作者: Andylovers (Smash)   2016-11-03 16:27:00
年底學會Android? 現在十一月耶= =我的處境跟你差不多,也是兩個平台一起做,從無到有..我也是一開始都沒碰過,到現在才10個月...我懂你的感覺Orz
作者: testPtt (測試)   2016-11-03 16:32:00
不知道Android和iOS有沒有IntelliSense 沒有我也不會看
作者: MOONY135 (談無慾)   2016-11-03 16:38:00
慢慢看阿 尤其是那種功能有很多軟體會用到的多半都會寫成class 然後就快速開發...
作者: ian90911 (xopowo)   2016-11-03 16:48:00
都有
作者: loseptt (loseptt)   2016-11-03 16:49:00
公司花錢請你看CODE 讚讚讚保持下去拖半年 在跳巢 就可以加薪了 讚讚讚
作者: fidelity77 (小柚)   2016-11-03 16:58:00
同時開發兩種太坑了吧,而且兩個月時間應該連java都學不熟吧還學安卓勒
作者: QQ112233 (QQ)   2016-11-03 17:02:00
左轉拿離職單
作者: MOONY135 (談無慾)   2016-11-03 17:03:00
慢慢練習到被開除 順便修履歷 年後怒跳一波 選我選我
作者: dnabossking (少狂)   2016-11-03 17:08:00
真好
作者: yyc1217 (somo)   2016-11-03 17:11:00
由大處往小看 不要馬上就鑽研小細節或奇技淫巧
作者: colawei (就是可樂)   2016-11-03 17:15:00
1.了解每段程式碼的功能目的 2.試過修改所有功能變數3.細部研究每一行指令 4.試著開新專案寫出相似的程式
作者: Hikkiaholic (= =a)   2016-11-03 17:26:00
看邏輯 別管語法要做C->D 就找到A->B複製改成C->D
作者: stevekevin10 (hippo泡)   2016-11-03 17:56:00
邏輯比較重要
作者: ppppman (4pman)   2016-11-03 18:26:00
新手練一個就哀哀叫了 一次練兩個...
作者: aoc5000 (香蕉)   2016-11-03 18:33:00
我也遇到相同問題 囧
作者: ousapas (komica123)   2016-11-03 18:39:00
要你同時負責兩個平台比較有問題吧 又不是hybrid
作者: codehard   2016-11-03 18:43:00
勿在浮沙之上築高塔
作者: howard9877 (撠铴撐Chang)   2016-11-03 19:03:00
錢多少啊?如果沒六七萬還是換工作吧,要雙修…呸
作者: aaaming (攪屎南帝一燈大濕)   2016-11-03 19:18:00
高手code 又沒註解 看完也可以跳巢惹 羨慕QQ
作者: XJY13 (You'll never walk alone)   2016-11-03 19:27:00
之前我做一點點簡單安卓 就跳去寫iOS 直接硬幹 基礎沒打好
作者: childlike12 (幼稚鬼+小孩子=娃娃ˊ~ˋ)   2016-11-03 19:27:00
反正你剛開始學,乾脆直接學react?
作者: pttworld (批踢踢世界)   2016-11-03 20:37:00
詢問文件對照著。沒註解通常會有文件。
作者: cowyou   2016-11-03 20:52:00
之前面試一間公司,面試Android工程師,最後連ios一起面,因為ios工程師這職位砍掉,公司打算只招一位,iosAndoird都要寫,筆電自備,38K,呵
作者: serval623 (洛杉磯強姦人)   2016-11-03 20:56:00
樓上這個offer 夠狂
作者: tails32100 (Tails)   2016-11-03 21:02:00
個人覺得,寫出人懂的程式碼才是真高手畢竟程式碼是給人看的 >"<
作者: EngRookie (EngRookie)   2016-11-03 21:32:00
兩邊都要寫的表示沒人懂你的工作內容跟難度...
作者: blu1121 (Big Brain)   2016-11-03 21:43:00
不夠直觀是不是有可能用了很多Design pattern的概念?!
作者: TFnight (二十四夜)   2016-11-03 21:58:00
先把class的概念弄懂 從class & function 猜大概的功能先
作者: twobrother20 (twobrother20)   2016-11-03 22:04:00
程式碼簡單易懂 最好了 寫一堆難懂 有屁用以後離職更難交接
作者: s410294 (暖囊)   2016-11-03 22:19:00
我覺得你不懂物件導向
作者: brucetu (sec)   2016-11-03 22:24:00
如果有寫測試 從測試開始看,如果沒有呵呵 連程式是不是對的都很難講,你就亂改看看吧 不熟的狀況我覺得debug單步爬比你用人腦runtime容易看懂 也有call stack資訊方便來回檢視
作者: viper9709 (阿達)   2016-11-03 23:11:00
推越級打怪
作者: cakeboy   2016-11-04 01:11:00
Java 通常變數和方法取名取得好的話,大概就會知道流程是什麼,細節再印log 看看大概就可以懂8成以上了
作者: maxqq (max)   2016-11-04 07:17:00
六年前...我沒任何 app 經驗,公司就幫我接下一個月的案子
作者: qweqweqweqwe (4qwe)   2016-11-04 07:36:00
其實… 新手怎麼能看的出是不是高手…
作者: longlongint (華哥爾)   2016-11-04 07:41:00
如果時間不夠 看 func name 就好 當機再一行一行看
作者: tipsofwarren (tipsofwarren)   2016-11-04 09:48:00
個人經驗:先把架構看懂,子功能/演算法則用debugger
作者: vi000246 (Vi)   2016-11-04 10:10:00
先找出是哪個地方call 這些類別的 找出程式主要的流程
作者: doranako (真愛無限)   2016-11-04 10:16:00
如果偶合很少的話要trace才看的懂,先從ui下手,起碼一個activity或fragment對應一個xml,把所有ui的關聯畫起來然後針對每個畫面所需功能再進行研究著手進行前起碼要先知道android的ui生命周期,這個不用花多久時間
作者: ginnyhuang (ginnyhuang)   2016-11-04 10:29:00
猜測高手code有一堆共用code共用(extends)baseView?你先抓出所有Activity,通常一個Activity對應到一個page如果分不清哪個Activity是哪頁就先抓第一頁(manifest中有LAUNCHER的那個activity)。從這頁開始,有創建view的(不知道他是coding還是xml,猜是前者更難懂)、有UI邏輯的、有取data的,和你在iOS的那頁做比較,應該可以從這頁了解那些code在做什麼,以此類推,看下一個activity的速度會更快。如果某一頁太複雜還看不懂,那可以先挑簡單的來看。看了幾頁應該就能大致懂對方寫code的邏輯和習慣,不要太執著於單一function裡面的運算(細節可以後面要修改時或習慣後再填補),而是先知道這個function是在處理什麼。(PS.交接沒有文件?)PPS.看code時可以手寫筆記畫流程,對理清邏輯很有幫助
作者: popcool (我不懂)   2016-11-04 10:57:00
看高手code的機會可遇不可求啊!看懂不管邏輯或架構你都會大躍進,加油
作者: jazzter (阿里巴巴你媽媽)   2016-11-04 11:30:00
啊可是iOS本身在app 開發上就和mvc強烈結合,這一定要懂吧,不然想討論的話歡迎
作者: pkwelly (新街國小小小郭)   2016-11-04 13:02:00
Android先就MainActivity的onCreat()慢慢看摟~加上AndroidManifest.xml以及全域變數開始看applicationiOS既然有在寫的話應該就多多注意每個Controller的Delegate應該差不多吧...? 我也是兩個都有在寫~歡迎討論 顆顆
作者: jin0000 (某某)   2016-11-04 20:33:00
用心智圖軟體去描繪自己瞭解的流程,應該起碼就能先入門了
作者: ak2840 (77529685)   2016-11-05 19:27:00
可以先問為什麼你會覺得這是高手寫出來的?看完上面的敘述只覺得雷而已
作者: geroge0820 (可.....可惡)   2016-11-06 14:49:00
想知道這樣待遇多少
作者: shietsd (123)   2016-11-06 17:11:00
看起來你並沒有project壓力吧?因為外包已經做完了?這樣你只要選擇先看iOS還是Android的code,選你以後想做的先看,然後先看概念,自己畫關聯圖,function 不要看太深,知道function input/output 什麼就可以自問自答,當別人問你flow時要講的出來,這樣就可以了,然後再看另外一種,記住不要鑽太深
作者: OpenGoodHate (什麼東西什麼東西)   2016-11-07 11:44:00
要同時開發為何不用跨平台套件
作者: realmeat (真肉)   2016-11-07 12:28:00
我是覺得沒很難, 比起讀講不清的文件...我都跑去看sourcecode... 如果有的話不過啥叫高手的code? 這是哪來的定義?
作者: s860134 (s860134)   2016-11-07 20:57:00
通常高手的code是最好懂的,減少重複才是重點,不是寫得短就好
作者: otaku5566 (オタク56)   2016-11-07 23:58:00
菜鳥5萬應該是一開始就打算要人雙修的吧

Links booklink

Contact Us: admin [ a t ] ucptt.com