簡單粗暴的“黑科技”

近期很火的一篇網文,名爲《Apple有哪些黑科技》,其中的一篇看後挺有感觸,摘抄下來:


某款產品的主板非常迷你,上面的元器件密度很高,因此用於主板測試的接口只有綠豆大小。proto期間需要設計一款測試軟線(FPC)接到這個接口上測試板子狀況,這是技術背景。

因爲接口太小了,軟線上的pin腳密密麻麻,設計公差只有+/-0.01毫米,也就是說尺寸大一點、小一點或者位置偏了0.01毫米,這根線就沒法用,甚至會把板子直接短路燒掉。測試線一般都是由代工廠自己準備的。代工廠找了好多家FPC廠商來做這根測試線,每個廠家都反饋說做不了,精度沒法控制這麼高。

代工廠沒辦法,找Apple彙報這個情況,問能不能把測試端口做大一點,Apple說你別管了,這根線我們自己做吧。十多天後,兩根合格的測試線送到了代工廠,在場的電子工程師們由衷讚歎蘋果的黑科技。

至於是怎麼做出來的,這事我清楚:蘋果找了一家FPC廠商,一口氣生產了2000根線,然後挨個在板子上試,最後挑出來好用的一共就這兩根。當時的計劃是如果挑不出,就再做2000根。

所謂真正的高科技都來自於簡單粗暴。


有人會覺得這算哪門子的高科技啊,Apple也只會簡單粗暴啊,但是我卻看到了Apple解決問題的廣闊思路。技術人員經常會陷入技術的死衚衕,技術問題非要用技術去解決,往往撞得頭破血流,或者花了太大的代價,是得不償失的。俗話說黑貓白貓,抓住耗子就是好貓,同樣的,管它黑科技還是簡單粗暴,用最小代價解決問題就是好方法。很多廠商都說做不了的線,Apple十多天就給出了合格的樣品,就算簡單粗暴,電子工程師們也要由衷讚歎。


前一陣子遇到一個不同語言utf8編解碼差異的問題,也是用了簡單粗暴的方法解決的。簡單描述一下就是移植一個算法,涉及一段隨機的byte[]轉爲utf8 String再轉回byte[],C#和Java的處理結果在某些情況下並不一致,要找出這個轉換規律。一開始嘗試向底層追核心代碼,看看分別是如何實現的,但稍微深入一點就發現困難重重。後來直接窮舉,把所有可能的值在兩種語言裏比對一遍,把差異找出來,再總結規律。其實也不算太多,幾億次比對而已,最終產生的規則只有21條,順利解決了問題。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章