2019底我從外包性質(zhì)的公司轉(zhuǎn)到了做自己產(chǎn)品的互聯(lián)網(wǎng)公司。一個多月的項目接觸讓我感受到外包公司與非外包公司程序員的區(qū)別
區(qū)別在于:
1. 在非外包公司,你需要更加注重代碼的可維護(hù)性,安全性及可讀性
外包公司更多的只是追求效率、能夠盡快交付產(chǎn)品給客戶。從而獲取盈利
比如,普通的正向傳值,你可以選擇寫個屬性在.H文件,很明顯,你需要加個只讀的屬性修飾,保證不讓外部改變它
你還可以選擇使用 initWithProperty,這種方式的傳值更常用,以參數(shù)的形式傳入,更安全
但換作在外包公司我是不會這樣做的,我會直接丟個屬性在.H文件,啥都不考慮
.h文件的代碼書寫也能體現(xiàn)一個程序員的代碼意識
2. 在非外包公司,你需要注重工程的架構(gòu)
以前大抵用的都是MVC、現(xiàn)在用的是MVVM
加入了ViewModel、用來處理數(shù)據(jù)。比如將一個NSData轉(zhuǎn)換為富文本的NSString
同時項目分層也很重要、目前一個App主要是分為三層:應(yīng)用層、server層、data access層
應(yīng)用層:負(fù)責(zé)用戶界面數(shù)據(jù)的展示
server層:對于應(yīng)用層來說就像是server。該層為應(yīng)用層提供了公共的服務(wù)接口。一般來說包括了業(yè)務(wù)數(shù)據(jù)的處理、網(wǎng)絡(luò)接口的調(diào)用、公共系統(tǒng)服務(wù)API封裝(地圖、權(quán)限等)
data access層:負(fù)責(zé)處理我們app的基本數(shù)據(jù)、這一層位于server層的下方、提供數(shù)據(jù)庫交互所需Api
好像扯得有點遠(yuǎn)……
而在外包,只要是稍微有點規(guī)模的公司都會有屬于自己傳承下來的外包架構(gòu)、各種封裝和工具類。你只需要用就好了,不需要了解內(nèi)部實現(xiàn)細(xì)節(jié)。有時候功力不夠、看源碼也只是觀其形而不知其意。
總結(jié):
這是我2020的第一篇文章啦、在這里給自己立個小目標(biāo)。每個月至少發(fā)一篇有關(guān)技術(shù)的文章。