幾次面試後,我的一些思考和總結

jani發表於2019-03-01

最近我去幾家公司面試,本意上只是去看一看自己的水平如何,到達了什麼水平,在下一階段我需要怎麼做,然後在和幾位面試官聊天的過程中,思考了一些問題,這些問題也是下一階段我需要去注意的,希望看到文章的諸位,這些問題可以給你們一點小的啟發。


1. Swift和Objective-c語言的區別是什麼?

這個問題其實很說簡單其實很簡單,但是重點卻不是這個問題本身,而是那位面試官的原話當你使用Swift程式設計的時候,你就不能使用Objective-C的思路去使用Swift了,你要知道Swift的特性是什麼,不單單是針對OC的特性,而是這門語言本身的特性, 確實,在聽完這個回答之後,其實我非常的震撼,因為我以前確實都是在用使用Objective-C的方式去使用它,而忽略了這門語言自己獨有的特性!!!

我從官網Swift的介紹中擷取了它的幾點特性:

- Closures unified with function pointers
- Tuples and multiple return values
- Generics
- Fast and concise iteration over a range or collection
- Structs that support methods, extensions, and protocols
- Functional programming patterns, e.g., map and filter
- Native error handling using try / catch / throw
複製程式碼

其實在使用swift的使用,如果真的想去使用好,就得去在使用的過程中去思考Swift的特性有哪些,你有沒有用到這些特點,如果你沒有使用,那麼你和使OC有區別嗎?這是我需要考慮的事情,希望看到我文章的你也可以考慮考慮~

個人感覺可以從兩個地方出發去充分使用Swift的特性:首先是它的語法特性(如上所寫:閉包;元組;快速的迭代;支援方法,擴充套件,協議的結構體;函數語言程式設計;原生的錯誤處理);然後呢,就是程式設計思想的使用了,Swift的核心的程式設計思想,我覺得有兩個一個是函數語言程式設計思想,一個就是面向協議的程式設計思想,當然還有一種思想是AOP(面向切面程式設計) ,當然還有很多其他的思想,但是我所知的這三者應該是最常見的,希望我,也希望大家,在使用Swift的時候,去思考思考自己使用了這些Swift特性沒有?使用了這些程式設計思想沒有?如果沒有考慮這些東西,就要去自我審查一下了~

2.在每一個方案的時候,一定要去考慮考慮你的演算法是最優的嗎?還有更好的解決方案嗎?

確實,很多時候,在考慮方案的時候,甚至是基本的業務邏輯,同一個問題,是一定會有更好的方案的!但是在現在我卻並沒有去思考比較好的演算法去解決問題,而是大多數情況下采用的是非常基本的程式導向的程式設計思維,這是不可取的也是不正確的方式。

那我在下階段可能就去要去花費時間去仔細的鑽研鑽研演算法這一塊了,演算法本身不就是程式設計師所必須掌握的基礎技能嗎?

3. 談到元件化的方式,你提到了有通過路由的方式,協議的方式,以及Target-Action的方式等,來實現iOS專案的元件化的思想,聊聊他們?

當然這個問題是我抽象出來處理的問題,實際上呢,面試官的原話是什麼呢?

你說你知道這三種方式,你覺得Target-Action的方式最好,那麼其餘的兩種方式呢?你使用過嗎?他們的建立一定是為了解決某些問題,如果沒有足夠的瞭解的話,你又如何知道在具體情況下使用哪種方案呢?
複製程式碼

猶如醍醐灌頂,每一種方式都有它本身所擁有的好處,並不是說某一種方式就是最優的,那基於這個問題,其實還可以衍生很多知識點,希望大家都對架構這一塊去研究研究吧,寫出低耦合高內聚的程式碼。

4. 關於專案的構架MVP,MVVM,MVC,它們各自是什麼,它們的優點分別是什麼?

不同的軟體的構架是針對於不同的專案的,沒有一種構架是完美的,當我們使用習慣了MVVM的構架之後,它就一定是最好的嗎?你使用它的目的是什麼?你有沒有充分利用了MVVM,還是說你只是使用了簡單的資料夾層次的劃分?MVC固然有壞處,那是你真的充分的理解了MVC的構架嗎?

5. 知其然而知其所以然,SDWebImage庫,你有沒有閱讀原始碼,當你去使用它的時候,它的流程你可以說出來,但是每一個非同步下載圖片的框架都是這個流程啊,它的優點在哪裡?相比於其他的框架,它具備什麼特點呢?

哎,不問不知道,一問就感覺自己非常的菜了,在使用第三方庫的過程中根本就沒有去仔細的思考這些問題,那麼自己如何可以提高呢?看來使用第三方庫的時候,去看看原始碼也是一個非常值得做的事情啊!

6. 你回去等訊息吧!

這也是一個很深沉的話題,如果展開的話,其實還有挺多要講的…

相關文章