莓BB10系統作為目前官方商店仍在運行的小眾系統之一,真的是非常難得。尤其對于一個關注小眾系統的碼農掌叔來說,更是彌足珍貴。掌叔曾經在BB10系統上開發過2個應用,上架官方商店的有一個。所以在開發以及應用發布的過程中也積累了一點點的經驗,準備寫成系列教程與其他小伙伴們的分享。如果你手里正好有黑莓手機,又有想親自給它開發一些應用的想法,那么來吧,跟隨掌叔一起,把代碼寫起來!
對于BB10上應用的開發,目前的有三種路徑選擇,一種是用C++寫原生應用,一種是開發Android應用然后在黑莓的虛擬機上運行,還有一種就是利用Cordova采用HTML5技術來寫。這三種開發路徑就難易度上來說,掌叔認為最后一種方法最為簡單,上手的成本比較低。同時因為跨平臺的原因,開發的應用還能在WP、Andorid、iOS上運行。所以本系列教程掌叔就以最后一種開發方式為講解內容。
今天我們先來看一下怎么配置一個開發環境。
1、首先去黑莓官網下載安裝BlackBerry Native SDK。打開剛裝好的Momentics IDE,會提示要下載SDK,這時候電腦接上黑莓bb10手機,然后選擇Connect a BlackBerry 10 device
下一步,輸入手機密碼,注意這一步一定要開啟手機的開發者模式。
下一步選擇API級別,默認就好,點擊Install。
開始下載了。
然后我們進入安裝目錄bbndk雙擊里面的bbndk-env_10_3_1_995.bat文件它會幫我們處理好系統環境的設置。
2、安裝完之后下一步我們來創建bbidtoken.csk令牌 首先我們要先創建一個黑莓開發者賬戶,這里掠過開發賬戶申請流程,我們假設看到這里的同學已經創建好了自己的黑莓開發者賬號。訪問黑莓網站用你的賬號登錄
進入這個界面開始創建令牌,這里需要輸入一個6至8位的密碼。為了好記可以輸入你黑莓開發者賬號的密碼。
點擊“獲取令牌”之后瀏覽器就會自動下載一個bbidtoken.csk文件,根據頁面提示我們將這個文件復制到%HOMEPATH%\ AppData \ Local \ Research In Motion這里。
然后打開一個命令行窗口輸入:
C:\bbndk\host_10_3_1_12\win32\x86\usr\bin\blackberry-keytool -genkeypair -storepass 123456 -author iniche
執行成功后會在剛才令牌那個文件夾里生成一個author.p12文件。123456替換成你令牌的密碼,iniche替換成你要的令牌作者名稱,最好是英文名稱。
接下來我們來安裝cordova,首先要先安裝好nodejs,我們可以到nodejs的官網去下載,nodejs有安裝包,安裝很簡單,這里就不再贅述了。當然注意一下版本,掌叔用的是8.2.1版本的。
裝好nodejs之后我們打開一個CMD命令行窗口,在里面輸入npm install -g cordova@6.1,電腦開始自動安裝cordova需要文件,過一會就會提示安裝完畢。 一切都裝好之后下面就讓我們來創建一個項目吧。
依次在命令行窗口輸入如下命令:
$ cordova create hello com.example.hello $ cd hello $ cordova platform add blackberry10 $ cordova build
如果一切順利的話就能看到bar文件打包成功的提示,如下圖。
安裝包已經打包成功了,接下來我們把應用部署到我們的手機里吧。
首先看一下我們手機的PIN碼是多少,方法是系統設置-關于-類別選硬件。然后把PIN碼記下來。然后把手機用USB線和電腦連接,在手機上進入安全和隱私-開發模式,打開開發模式。這里有一個IP地址我們也記下來。
下面我們在手機上安裝調試令牌,并且安裝應用。輸入cd platforms\blackberry10\cordova回車切換到這個文件夾。然后輸入run.bat --device --keystorepass mypassword,mypassword要替換成你令牌的密碼。執行成功后就會在手機里安裝調試令牌,并且自動幫你把剛才的hello項目安裝到你的手機里了。一切正常話,應用匯自動啟動,如下圖這樣:
擊關注 InfoQ,置頂公眾號
接收程序員的技術早餐
嘉賓|桑世龍
編輯|覃云
2009 年,Node.js 橫空出世,在幾年時間里,Node.js 憑借其高性能、易部署等特點迅速在前端領域脫穎而出,成為大火的明星。但一個技術再好,也是有生命周期的,許多開發者開始質疑,Node.js 是不是在走下坡路了?Node.js 是不是越來越不吃香了?
為此,InfoQ 采訪了阿里巴巴前端技術專家、Node 技術傳道者桑世龍(狼叔),為大家解答關于 Node 的問題,以及開發者在日新月異的技術迭代環境中應該如何建立起自己的“大局觀”。以下是采訪的全部內容。
友情提示:在即將到來的 2018 年 GMTC 大會上,狼叔將擔任 Node 專場的出品人,喜歡狼叔和對 Node 有興趣的讀者千萬別錯過。
Node 為解決后端并發而生,但卻無心插柳,成為大前端的基石。伴隨大前端的發展,Node 也發展得越來越好,越來越重要,其應用場景從腳手架、輔助前端開發(比如 SSR、PWA 等)的快速開發實踐,到 API 中間層、代理層,到專業的后端開發都有非常成熟的經驗。另外,前端越來越復雜,后端服務化,今日的前端要面臨更多的挑戰,Node 全棧給大家更多可能,狼叔對此堅定不移。
1 2017 年,Node 的日子好過嗎?
狼叔主要從以下四個方面介紹了 2017 年 Node 發生的變化:
a)Node 8 進入 LTS 時代
b)企業級 Web 開發
c)不可不見的 Api 中間層
d)新領域(深度學習、區塊鏈等)
a)Node 8 進入 LTS 時代
2017 年,Node.js 最大的變化是進入 Node 8 時代,它是一個穩定的長期支持版本(LTS),除了性能提升外,還有以下幾個要點。
Async/Await 支持。其實在 Node.js v7.6 就可以通過 flag 支持了,在 node8 里直接落地。通過 Async 函數可以更好的進行異步流程控制,遠離 Callback Hell。在 Async 函數里,你可以通過 await 調用 Promise,以及通過 co 包裹的 generator,可以說,向前是完美的 Async 函數,向后也完美兼容各種遺留代碼,稱為異步終極解決方案不為過。
ES6 模塊支持。通過 vue/react、webpack、babel 和 typescript 等火爆發展,es6 模塊得到了廣泛普及和應用,在 Node.js v8.5 可以通過 --experimental-modules 來開啟這個體驗版特性。當然,你想在 Node.js 更早版本里使用 ES6 模塊,可以采用 @std/esm 模塊。
HTTP2 支持。在 Node.js v8.8 就開始默認啟用了,http2 對服務器端推送,多通道復用等特性,能夠更好地為瀏覽器便利,是性能優化的利器。
Node v9.9 對 ES2018 支持是 75%,在 Node v10 里支持是 100%,還是非常值得期待的,更多信息參見 http://node.green/#ES2018。
b)企業級 Web 開發
基礎框架除了應用最廣泛的主流 Web 框架 Koa 外,Fastify 也是一直勁敵,作者 Matteo Collina 是 Node.js 核心開發,Stream 掌門,性能優化專家。Fastify 基于 Schema 優化,對性能提升極其明顯。狼叔認為這是企業級 Web 開發,他在這里給我們介紹了 3 個知名框架。
b1)Egg.js
阿里開源的企業級 Node.js 框架 Egg 發布 2.0,基于 Koa 2.x,異步解決方案直接基于 Async Function。框架層優化不含 Node 8 帶來的提升外,帶來 30% 左右的性能提升。
Egg 采用的是 『微內核 + 插件 + 上層框架』 模式,對于定制,生態,快速開發有明顯提升,另外值得關注的是穩定性和安全上,也是極為出色的。
b2)Nest
Nest 是基于 TypeScript 和 Express 的企業級 Web 框架。
很多人開玩笑說,Nest 是最像 Java 開發方式的,確實,Nest 采用 TypeScript 作為底層語言,TypeScript 是 ES6 超集,對類型支持,面向對象,Decorator(類似于 Java 里注解 Annotation)等支持。在寫法上,保持 Java 開發者的習慣,能夠吸引更多人快速上手。
TypeScript 支持幾乎是目前所有 Node Web 框架都要做的頭等大事,在 2017 年 Nest 算首個知名項目,值得一提。
b3)ThinkJS
ThinkJS 是一款擁抱未來的 Node.js Web 框架,致力于集成項目最佳實踐,規范項目讓企業級團隊開發變得更加簡單,更加高效。秉承簡潔易用的設計原則,在保持出色的性能和至簡的代碼同時,注重開發體驗和易用性,為 WEB 應用開發提供強有力的支持。
ThinkJS 是國產老牌 Web 框架,在 2017 年 10 月發布 v3 版本,基于 Koa 內核,在性能和開發體驗上有更好的提升。
整體來看,Node.js 在企業 Web 開發領域日漸成熟,無論微服務,還是 Api 中間層都得到了非常好的落地。2017 年,唯一遺憾的是 Node.js 在 servless 上表現的不太好,相關框架實踐偏少。
c)不可不見的 Api 中間層
前端越來越復雜,后端服務化,今日的前端要面臨更多的挑戰。一個典型的場景就是在服務化架構里,前端面臨的最頭痛的問題是異構 API,前后端聯調的時候,多個后端互相推諉,要么拖慢上線進度,要么讓前端性能變得極其慢。進度慢找前端,性能差也找前端,但這個鍋真的該前端來背么?
Node.js 的 Api 中間層應用很好地解決了這個問題。后端不想改的時候,實在不行就前端自己做,更靈活,更能應變。
透傳接口,對于內網或者非安全接口,可以采用中間層透傳。
聚合接口,對異構 API 處理非常方便,如果能夠梳理 model,應變更容易。
Mock 接口,通過 Mock 接口,提供前端開發效率,對流程優化效果極其明顯,比如去哪兒開發的 yapi 就是專門解決這個問題的。
除此之外,前端如果想做一些技術驅動的事兒,SSR(服務器端渲染)和 PWA(漸進式 Web 應用)也是非常不錯的選擇。
d)新領域(深度學習、區塊鏈等)
深度學習,https://github.com/PAIR-code/deeplearnjs
神經網絡,https://github.com/BrainJS/brain.js
區塊鏈,http://truffleframework.com/
狼叔說他這部分接觸得不多,不過從這些開源項目可以看到有很多開發者熱衷于使用 Node.js 做開發創新,這是非常值得高興的。
2 如何將 Node 的價值發揮到極致?
狼叔說過,“不是 Node 不行,而是你不會用”,他認為很多人對 Node.js 有很多誤解,從 2009 年誕生到現在,Node.js 的改變進化是非常明顯的,甚至說是有了質的變化。
比如 Callback hell,現在可以通過 Async 函數解決。
比如作為過渡技術棧的 thunk 函數和 generator,慢慢的消失在歷史舞臺。
比如 node 是單進程非常脆弱,但是你真的部署對了么?
比如數據庫事務問題,這是 node 的鍋么?你用 mongodb 玩不好,也要賴到 node 身上么?
一般,后端開發指的是 Web
應用開發中和視圖渲染無關的部分,但現在架構升級,Node
承擔了前后端分離重任之后,有了更多玩法。從帶視圖的傳統Web 應用
和面向 Api 接口應用
,到通過RPC
調用封裝對數據庫的操作,到提供前端Api
代理和網關,服務組裝等,統稱為后端開發,不再是以往只有和數據庫打交道的部分才算后端,這樣,就可以讓前端工程師對開發過程可控,更好的進行調優和性能優化。
對 Node.js 來說,一直沒有在后端取得其合理的占有率。原因很簡單:
1)利益分配,已有實現大多是 Java 或者其他語言,基本是沒法撼動的,重寫的成本是巨大的,另外,如果用 Node 寫了,那么那些寫 Java 的人怎么辦?搶人飯碗,這是要拼命的。
2)Node 相對年輕,大家對 Node 的理解不夠,回調和異步流程控制略麻煩,很多架構師都不愿意花時間去學習。盡管在 Web 應用部分處理起來非常簡單高效,但在遇到問題時并不容易排查定位,對開發者水平要求略高。
3)開發者技能單一,很多是從前端轉過來的,對數據庫,架構方面知識欠缺,對系統設計也知之不多,這是很危險的,有種麻桿打狼兩頭害怕的感覺。
4)Node 在科普、培訓、布道等方面做的并不好,國外使用的非常多,國內卻很少人知道,不如某些語言做得好。
縱覽 2017 年 Node.js 的發展路程,作為一個親歷者,他覺得 Node 在 4 個方面表現得極為突出:
前端實踐,腳手架,工程化,快速開發;
API Proxy 中間層實踐,頁面即服務概念;
面向企業開發的 Web 框架;
Node 最新技術與性能調優。
狼叔希望更多的 Node.js 開發者能夠參與其中,本次 GMTC 大會也會圍繞這寫主題進行 topic 篩選,希望能夠為國內 Node.js 的繁榮做出一點貢獻。
3 如何選擇適合自己的 Node 框架?
開發者在面對如此多的 Node 框架時,總會眼花繚亂,不知道是該從眾還是應當選擇自己擅長的框架,對此,狼叔是這么說的。
Web 應用大致分 2 種,帶視圖的 傳統 Web 應用和面向 Api 接口應用,而 Node.js Web 應用開發框架的演進時間線大致如下:
2010 年 TJ Holowaychuk 寫的 Express。
2011 年 Derby.js 開始開發,8 月 5 日,WalmartLabs 的一位成員 Eran Hammer 提交了 Hapi 的第一次 git 記錄。Hapi 原本是 Postmile 的一部分,并且最開始是基于 Express 構建的。后來它發展成自己自己的框架。
2012 年 1 月 21 日,專注于 Rest api 的 Restify 發布 1.0 版本,同構的 Meteor 開始投入開發,最像 Rails 的 Sails 也開始了開發。
2013 年 TJ Holowaychuk 開始玩 es6 generator,編寫 co
這個 Generator 執行器,并開始了 Koa 項目。2013 年下半年李成銀開始 ThinkJS,參考 ThinkPHP。
2014 年 4 月 9 日,Express 發布 4.0,進入 4.x 時代持續到今天,MEAN.js 開始隨著 MEAN 架構的提出開始開發,意圖大一統,另外 Total.js 開始起步,最像 PHP 里 Laravel 或 Python 里的 Django 或 ASP.NET MVC 的框架,代表著 Node.js 的成熟,開始從其他語言里的成熟框架借鑒。
2015 年 8 月 22 日,下一代 Web 框架 Koa 發布 1.0,可以在 Node.js v0.12 下面,通過co
和 generator 實現同步邏輯,那時候co
還是基于thunkfy
的,在 2015 年 10 月 30 日,ThinkJS 發布了首個基于 Es2015+ 特性開發的 v2.0 版本。
2016 年 09 月,螞蟻金服的 Eggjs,在 JSConf China 2016 上亮相并宣布開源。
2017 年 2 月,下一代 Web 框架 Koa 發布 v2.0 正式版。
2017 年 10 月,ThinkJS v3 發布,基于 Koa 內核。
2017 年 12 月,阿里巴巴開源 Egg.js v1,采用的是 『微內核 + 插件 + 上層框架』 模式。
2018 年 3 月,阿里巴巴開源 Egg.js v2,全面支持 async 函數,性能提升 30% 以上。
我們根據框架的特性進行分類:
對于框架選型
業務場景、特點,不必為了什么而什么,避免本末倒置;
自身團隊能力、喜好,有時候技術選型決定團隊氛圍的,需要平衡激進與穩定;
出現問題的時候,有人能夠做到源碼級定制。Node.js 已經有 8 年歷史,但模塊完善程度良莠不齊,如果不慎踩到一個坑里,需要團隊在無外力的情況能夠搞定,否則會影響進度。
個人學習求新,企業架構求穩,無非喜好與場景而已。
Node.js 本來就為了做后端而設計的,這里我們再看看利益問題。Node.js 向后端延伸,必然會觸動后端開發的利益。那么 Proxy 層的事兒,前后端矛盾的交界處,后端不想變,前端又求變,那么長此以往,Api 接口會變得越來越惡心。后端是愿意把 Api 的事兒叫前端的,對后端來說,只要你不動我的數據庫和服務就可以。
但是 Node.js 能不能做這部分呢?答案是能的,這個是和 Java、PHP 類似的,一般是和數據庫連接到一起,處理帶有業務邏輯的。目前國內大部分都是以 Java、PHP 等為主,所以要想吃到這部分并不容易。
小公司,創業公司,新孵化的項目更傾向于 Node.js ,簡單,快速,高效;
微服務架構下的某些服務,使用 Node.js 開發,是比較合理的。
國內這部分一直沒有做的很好,所以 Node.js 在大公司還沒有很好的被應用,安全問題、生態問題、歷史遺留問題等,還有很多人對 Node.js 的誤解。
單線程很脆弱,這是事實,但單線程不等于不能多核并發,而且你還有集群呢!
運維,其實很簡單,比其他語言之簡單,日志采集、監控也非常簡單。
模塊穩定性,對于 MongoDB
、MySQL
、Redis
等還是相當不錯,但其他的數據庫支持可能沒那么好。
安全問題是個偽命題,所有框架面臨的都是一樣的。
這些對于提供 Api 服務來說已經足夠了。
對于企業 Web 開發來說,更重視穩定性和安全性,通過約定開發方式,提供高效開發效率。目前 Egg、Thinkjs、Nest 這方面是先行者,想必開發者對它們都已經非常熟悉了,可以放心使用。
4 “向前看” or “向錢看”?
生活無非是迷茫的和目標清晰的。迷茫的人想找到目標是非常曲折的一個過程,所以最簡單的辦法就是“向錢看”,市場作為檢驗技術流行程度的一個標準。沒有目標,那就多學點能賺錢的技能。
很多人度過了迷茫期,這時候就需要“向前看”,知道自己想要什么,只能自己該做什么,有自驅能力,這時候更多的是看清趨勢,在變化中總能做對事情,除了做好的分內之事外,無論業務還是技術發展都需要對發展走勢做出正確的判斷。
對于 Node.js 開發者來說,
1)“向錢看”:學會,能用,如果學會 Node.js 不能在收入或者潛在收入有提升,那也沒啥意思。
Node.js 編寫的包管理器 npm 已成為開源包管理了領域最好的生態,直接到 2017 年 10 月份,有模塊超過 47 萬,每周下載量超過 32 億次,每個月有超過 700 萬開發者使用 npm。現在早已經超過 60 萬個模塊了。在此,狼叔舉了一個例子,他說曾有開發者向他討教調整狀態的辦法,而狼叔的建議是,讓他每天看 10 個 npm 模塊。
狼叔認為,對于學習 Node.js 迷茫的人來說,這是最好的方式,當你不知道如何做的時候,就要向前(錢)看,你要知道積累哪些技能對以后有好處。對于學習 Node.js 必經之路,一定是要掌握很多模塊用法,并從中汲取技巧、思路、設計思想的。與其不知道學什么,為什么不每天積累幾個技巧呢?
2)“向前看”:用好,創造更多價值。各家公司都有 KPI,怎么能夠通過 Node 快速達成自己的 KPI 是非常重要的。
a)遇到各種問題,解決不了,能不能用 node?
b)技術驅動,能不能在 node 層做一些創新?
c)提高開發效率,能否讓團隊用好 node,梳理出工程化最佳時間。
d) 在遇到性能瓶頸的時候,node 能否解決這些問題。
對此,狼叔給出了他的招人標準:
基本的 Node.js 幾個特性,比如事件驅動、非阻塞 I/O、Stream 等;
異步流程控制相關,Promise 是必問的;
掌握 1 種以上 Web 框架,比如 Express、Koa、Thinkjs、Restfy、Hapi 等,會問遇到過哪些問題、以及前端優化等常識;
數據庫相關,尤其是 SQL、緩存、Mongodb 等;
對于常見 Node.js 模塊、工具的使用,觀察一個人是否愛學習、折騰;
是否熟悉 linux,是否獨立部署過服務器,加分項;
js 語法和 es6、es7,延伸 CoffeeScript、TypeScript 等,看看你是否關注新技術,加分項;
對前端是否了解,加分項;
是否參與過或寫過開源項目、技術博客,加分項。
“向前看”不是簡單在一個領域內鉆研,而是能夠在精通一門之后,擴展廣度,提高自身的解決問題能力。當然,如果能夠在架構層面去思考問題,那就更完美了,對未來職業發展有無限好處。
5 “專注” or “技多不壓身”?
狼叔對自己的定位是專注于 Node.js 技術,如果沒法做更多 Node.js 相關的內容,不如就離開,但這是不是意味著與“技多不壓身”的觀點相悖呢?對此,狼叔是這么解釋的。
《Node.js in action》一書里說,Node.js 所針對的應用程序有一個專門的簡稱:DIRT。它表示數據密集型實時(data-intensive real-time)程序。因為 Node.js 自身在 I/O 上非常輕量,它善于將數據從一個管道混排或代理到另一個管道上,這能在處理大量請求時持有很多開放的連接,并且只占用一小部分內存。它的設計目標是保證響應能力,跟瀏覽器一樣。
這話不假,但在今天來看,DIRT 還是范圍小了。其實 DIRT 本質上說的 I/O 處理的都算,但隨著大前端的發展,Node.js 已經不再只是 I/O 處理相關,而是更加的“Node”!
Node.js 使用場景主要分為 4 大類:
1)跨平臺:覆蓋你能想到的面向用戶的所有平臺,傳統的 PC Web 端,以及 PC 客戶端 nw.js/electron
、移動端cordova
、HTML5、react-native
、weex
,硬件http://ruff.io
等。
2)Web 應用開發:網站、Api、RPC 服務等。
3)前端:三大框架 React \ Vue
\Angular
輔助開發,以及工程化演進過程(使用Gulp
/Webpack 構建 Web 開發工具)。
4)工具:npm
上各種工具模塊,包括各種前端預編譯、構建工具Grunt
/Gulp
、腳手架,命令行工具,各種奇技淫巧。
可以說目前大家能夠看到的、用到的軟件都有 Node.js 身影,當下最流行的軟件寫法也大都是基于 Node.js 的,比如 PC 客戶端 luin/medis 采用 electron
打包,寫法采用 React + Redux。他一直實踐的【Node 全棧】,也正是基于這種趨勢而形成的。在未來,Node.js 的應用場景會更加的廣泛,更多參見 sindresorhus/awesome-nodejs。
狼叔親歷了從 node 0.10 到 iojs,從 node4 到目前的 node9,也寫了很多文章,參加很多技術大會,做過很多次演講,有機會和業內更多高手交流的機會。當然他也從 qunar 到阿里經歷了各種 node 應用場景,對于 node 的前景他是非常篤定的。正如上文所說,善于使用 node 有無數好處,如快速出成績、性能調優、優化團隊結構、人員招聘等諸多利好,讓他堅定地守護 Node.js。
Node.js 目前的應用場景和招聘市場都是極大的,很多公司都使用 Node.js,阿里、騰訊、百度和去哪兒等,還有青島的海爾集團這樣的傳統名企,video++、石墨文檔這樣的創業互聯網公司,Node 產生的商業價值是無法估量的。
狼叔的定位是 Node 全棧,以大前端為主,Node 輔助,把所有和用戶直接相關的開發囊括。他認為這是趨勢,他也在自身的經歷中體驗到了好處。而大前端目前沒有形成固定模式,還在混亂發展,所以前景是非常看好的。
但他認為“篤定 Node”和“技多不壓身”的觀點不沖突,一個前端領域已經足夠復雜,如果是大前端涵蓋得更廣,可謂進可攻退可守。在這種背景下,Node 其實是增加自身附加值的。個人經歷優先,無法覆蓋更多,這樣的定位也算是另外一種專注吧。
6 大局觀:多思考、多折騰、多更新
“年輕時死磕,年長點讓小弟死磕,現在抓個專家一起吃飯,沒有什么是一頓飯解決不了的,不行就二頓”,這句話雖然是調侃,但也是實話,每個階段做好每個階段該做的事兒就好。有一句名言說的特別好,“高筑墻,廣積糧,緩稱王”。
年輕死磕是為了長本事,少抱怨,多思考,未來更美好。30 歲以前都可以這樣做。
帶團隊后,要懂得任務下放,讓更多人幫你,別帶人越多越累。
30 歲之后是打牌階段,技能積累足夠用,這時要注重社交,打組合拳才能玩的更好。
大部分人都會認為 30 歲后事情,壓力會明顯大得多,比如家庭,孩子,房子,車子,票子,甚至是管理,權利,欲望等。對此,狼叔印象最深的是身體不如從前和記憶力明顯下降。
擁有一個好的大局觀,沒有捷徑,就是多折騰。以前看事情是點,現在看的是趨勢,能夠做到心中有數,自然胸有成竹的感覺。技術發展這么快,作為一個一把年紀的人,每天也需要適當的投入一點精力關注開源,需要不斷的更新自己,才不會讓自己的大局觀過時。
PWA 技術在阿里體系內是如何實踐及應用、騰訊基于 Cocos 改造 Hybrid 形式產品、騰訊頂級人工智能實驗室的 AI 終端產品實踐、微服務平臺下基于 GraphQL 構建 BFF 的實踐與思考、Vue 服務端渲染在快手直播中的應用...... 更多最新最熱的大前端技術議題即將來襲。
GMTC2018 上,來自 Google、Facebook、BAT 等 60+ 國內外一線前端大牛,將與你面對面探討大前端領域最新技術趨勢和實踐。掃描下方二維碼或點擊“閱讀原文”解鎖更多大會詳情!
對代碼、編程感興趣的可以關注「老K玩代碼」公眾號和我交流!
分享代碼、經驗、項目和資訊
Swift,蘋果于2014年WWDC蘋果開發者大會發布的新開發語言,可與Objective-C共同運行于macOS和iOS平臺,用于搭建基于蘋果平臺的應用程序。
Swift是一款易學易用的編程語言,而且它還是第一套具有與腳本語言同樣的表現力和趣味性的系統編程語言。Swift的設計以安全為出發點,以避免各種常見的編程錯誤類別。
K語簡介:
這本書是iOS基礎書,涉及大量swift知識點,雖然是英文原版,但用詞簡單,只要有CET4水平,閱讀此書不會成為障礙,而且會有很大收獲。
書評:
lalalala: 零基礎學iOS開發,四級英語水平就能讀,讀完基本就可以獨自寫iOS應用了
自負的大擼sir: 第二本總算擼完..十一回來改bug...
Feynman阿鍇: 對于我來講,簡單易懂,英語現在不是障礙
K語簡介:
使用Swift制作令人愉快的動畫!不可否認:制作動畫是iOS開發中最有趣的部分之一。動畫是有趣的創造,他們呼吸到你的用戶界面生活,他們使你的應用程序愉快地使用。
在本書中,您將通過一系列的實踐教程和挑戰,從開始到高階,不斷學習Swift中的iOS動畫,使您的應用程序看起來很棒。
這本書面向中高級開發人員,需要已經了解iOS和快速開發的基礎知識,并希望深入研究動畫效果的開發人員。
書評:
liuyunclouder: 非常棒地介紹了ios中的幾種動畫,幾個例子用的都是簡單的屬性,但是效果都很實用。沒有《iOS.Core.Animation:.Advanced.Techniques》那么深入的理論講解,而是更貼近實用。關于POP的三章也有干貨,盡管看過POP源碼,還是學到了之前沒注意的一些點。
不知: 挺好一本書,就是貴了點,實例介紹,非系統解釋
H.van.de.biao: 從淺入深,不錯!
K語簡介:
作者去美國參加了蘋果公司的WWDC 14,親眼目睹了swift的發布,并從它正式誕生的第一分鐘就開始學習和研究這門語言。
在《Swifter : 100 個 Swift 開發必備》一書中,作者總結整理了自己的經驗,并以小竅門和知識點的形式展現出來。
本書共有100個章節,每個章節都是相對獨立的主題,涵蓋了中高級開發人員需要了解的swift語言的各個方面。
書評:
熊貓的大號: 第一個tip講柯里化函數,書中引用的blog上的文章里至少講了使用柯里化實現pure.swift的target-action模式的起因經過結果,你書里面摘抄了一段代碼,前不著村后不著地的貼在那,簡直是莫名其妙,太坑了吧作者
主治醫師: 貓神的書,還是很給力的,里面介紹了不少實用的tips,對深入了解swift也很有幫助,少一顆星是因為相比于網頁版的缺少了更新和勘誤。
lol: 好書,作者寫的很用心,內容十分豐富,覆蓋面光,都是經驗之談。內容碾壓國外那些翻譯書。
K語簡介:
這本書由來自舊代碼團隊的五位高級IT工程師組成。
本書共分為10章:第一章至第二章介紹了如何構建開發環境,第三章至第六章介紹了Swift的語法知識;第七章介紹了Swift與Objective-C之間的相互調用;最后三章通過一個完整的案例,說明如何使用swift語言從頭開始開發商業應用程序。
在知識布局方面,不僅解釋了swift的基本語法,還描述了IOS開發過程中的許多關鍵技術節點,如庫管理工具cocoapods、原型設計工具Axure pro、云測試工具Cordova/phonegap HTML5 hyberapp、實機調試、打包上傳等通過這本書為讀者畫出一條路,這是我們走過的路,也是讀者將來要走的路。
書評:
寂幻森林: 這不僅僅是一門swift.編程語言的入門入籍,其中還涉及到了關于蘋果應用開發所需要的方方面面,包括開發環境、CocoaPods.等等市面上絕大多數書籍不會涉及到的方面。另外,書內語言簡單、樸實、風趣,對入門開發者來說十分友好,書中的細節十分豐富。這本書中包含了老碼團隊在平常應用開發中遇到過的問題、以及心得,是值得收藏的好書。另外本書的作者之一丑哥可是很有趣的喲,哈哈哈!
liujinlongxa: 雖然不能說是經典,但已經比國內大部分的書要強了,Swift入門還是很不錯的
bouunce: 先看官方文檔再讀讀蠻好的!
K語簡介:
這本書介紹了OS X和iOS聲明周期相關的知識,涉及多種SDK功能,對于初學者而言,是很有好的入門書籍
書評:
鍇: 持續學習中
恃沐淇奧: 蠻詳細的,涵蓋信息豐富。
C55x: 沒時間細看,但粗略翻過感覺還是講得很清楚。
如果你也對編程感興趣,記得加老K玩代碼公眾號和我交流哦!
里面有我最近整理的一些與"swift"相關學習資料,有需要的可以去看一下。
關鍵詞swift,希望對大家有用。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。