Re: [請益] 為什麼文組轉職主流是寫code

作者: baobomb (baobomb)   2021-10-13 19:42:02
※ 引述《horsekit (New Life)》之銘言:
: ※ 引述《baobomb (baobomb)》之銘言:
: : 中文系前來報到
: : 寫文章是寫給人看 讓人讀 要有起承轉合 注意冗言贅字 知道什麼時後用什麼用詞
: : 寫code是寫給編譯器看 讓VM跑 要有好的架構, 注意效能, 知道什麼時候用什麼資料

: : 跟API
: 寫文章是寫給人看 讓人讀 要有起承轉合 注意冗言贅字 知道什麼時後用什麼用詞
: 這沒有錯
: 但是寫 Code 也是寫給人看的 不是給機器看的 所以也可以有起承轉合 注意冗言贅字
: 而編譯器的功能是像是 翻譯
: 將程式碼翻譯成 10101010 給機器看
: 機器也只看得懂 10101010
我的意思是 人腦在解讀一串文字時 也會有自己的翻譯方式
但機器很客觀 你怎麼寫 機器就怎麼讀
不過人腦不一樣 一樣的句子不同人解讀有可能完全不同 所以我說寫文章比較難
: : 我感覺根本就一樣啊
: 我認為在寫程式的範疇其實很忌諱 `我感覺`
: 像你後面說的 機器很客觀
: 就像是你知道這兩個不一樣 但是你不想承認
: 所以就修飾一下 我感覺一樣
: 等到錯了之後才說 喔 我沒有說一樣喔
: 感覺是感性的形容詞 難免會錯誤
: 這樣的習慣會在學習的路上給自己埋很多雷
: : 架構=起承轉合
: 架構 != 起承轉合
為什麼我覺得架構等於起承轉合呢
用一個非常粗糙的System design講一個簡單的例子
如果你用WebRTC在實作一個像WhatsApp, Line的即時聊天App
起 = 一個Application的create
從VM start Runtime start Dex loaded
再到你程式碼的第一個onCreate onStart Create AppComponent Inject Dependencies
然後Connect Socket
並且start processor to observing local database.
就像是你在告訴VM,
我這個應用開始了(文章開始)
同時透過DI 描述說 我這個程式包含了什麼 需要compose什麼元件(描述文章大意)
DI graph需要簡潔明瞭有秩序 元件不要重複(文章不要拖泥帶水, 不要同樣的梗一提
再提)
這個過程必須盡可能的縮短Critical Path 來縮短App啟動時間(文章第一段通常簡潔有力
)
把非必要的Processor丟到Worker thread 去處理 並且在repo裡expose data flow給後面
使用(埋梗)
承 = App進到第一個頁面
開始從components裡取用Repository並subscribe to exposed data stream(Socket mess
ages Read/Write handle by processor/executor and emit final message list to do
wnStream)
根據訊息流去更新UI 描述畫面(開始寫故事了)
這邊故事必須考量到流程線
不然一下講A一下講B 兩邊State不同讀者看不懂(concurrency)
轉 = 使用者開始做一些操作
Send/Receive message..etc
Repo調用SendMessageExecutor 開始 write message to pending send message table
這時起階段已經被Start的processor 已經在observing pending table 一旦table chang
ed 就會把message write to socket
同時也read from socket 等待BE ack back
Socket received message後
交給processor處理
更新local messages DB
清理pendingtable
Emit latest messages list 給repo and down stream
(開始描述精彩的故事了 並且講清楚脈絡 讓讀者身歷其境 並且知道整個故事來龍去脈)
和 = 使用者用完你的App
關閉Application
這時候必須要stop/clear不必要的processor service
並且unsubscribe data stream避免memory leak
Keep必要且輕量的state
讓使用者在 Hot start, warm start app時能夠更快的進入App而不需等待
(文章結尾必須填坑 不能有遺漏的坑挖了沒說 然後保留一些想像空間 讓讀者能夠回味
且不會輕易忘記你的文章)
從System design的角度來看 我真的覺得架構跟起承轉合一樣啊哈哈哈
至於為什麼我感覺資結等於用詞
今天描述一個東西 我們說
一顆紅紅的表面光亮有蠟可以吃的水果
讀的人一定會想說
怎麼不說蘋果就好了
資料結構一樣
在memory跟速度中我們需要取捨
用什麼樣的Data structure可以省記憶體(簡短)
但又能夠保持效能(讀者很快就能理解詞義)
寫起來真的真的很像啦
寫文章還有一個跟寫code很像的地方
是可視化性
你寫的code 是不是能夠讓人一看就能夠在腦中描繪出大概的樣子 跑起來會是什麼輸出
=
你寫的文章 能不能讓人看了在腦中想像出畫面
本科不要歧視非本科 非本科也不要歧視本科
術業有專攻 只要願意花時間深入
都能夠到達一定的高度
除非是天材
不然我真的覺得學歷背景只佔10%
努力佔90%啦
作者: MoonCode (MoonCode)   2021-10-13 20:41:00
起:是事情的起因;通常是交待動機、原因。同學你不要硬套好嗎不需要比喻的時候就不要比喻
作者: aids61517 (奇歐巴肯)   2021-10-13 20:45:00
看完之後我覺得你的國文很爛
作者: BoXeX (心愛騎士團異端審判騎士)   2021-10-13 21:06:00
中文系通常中文不好
作者: zaa0210 (ZAA)   2021-10-13 21:12:00
標點符號 orz然後好多 "然後" =.="
作者: devilkool (對貓毛過敏的貓控)   2021-10-13 21:15:00
補個血,代表原po讀錯系啦,比起中文更擅長程式
作者: alihue (wanda wanda)   2021-10-13 22:24:00
用錯譬喻還要掰下去不覺得累嗎

Links booklink

Contact Us: admin [ a t ] ucptt.com