面向 Web 前端的原生语言总结手册
這一系列文章旨在讓具有 Web 前端背景的開發者快速上手原生語言。
背景與動機
從 WebView 到 Hybrid 再到 React Native,移動端主流技術方案中前端同學的施展空間越來越大。但傳統 Web 前端背景的同學所熟悉的編程語言主要是 JavaScript,在與 Native 協作的邊界上很容易遇到掌控范圍之外的坑,這也是 RN 等方案經常被詬病的理由之一。
然而,某一門具體的編程語言并不應該成為生涯的瓶頸或阻礙。已經熟悉某門主流語言的同學,學習新語言的速度可以是非常快的。在這方面,C 領域的《Essential C 》就是一個很好的例子:它假定讀者已經熟練掌握了一門編程語言,從而忽略了入門編程初期大量瑣碎的新手向知識點,直接向讀者展示 C 的核心特性,讓讀者能夠非常迅速地上手 C 語言(注意這和精通是兩回事)。對于這份教程而言,讓已有 JavaScript 背景的同學能夠迅速觸類旁通地了解原生語言特性及其后的原理,從而邁過跨端開發的一個坎,就是我們的初心。
目前這個項目還處于連載中的早期階段,歡迎任何形式的反饋與參與。
要求與目標
這份教程對讀者的要求只有一點:熟悉 JavaScript。而在學習目標層面,請首先明確這份教程不能做到什么:
- 讓你達到精通水平:請慎用這個詞。
- 讓你成為移動端開發者:特定的編程語言只是平臺開發的子集。
- 讓你熟悉 IDE:這份教程會使用最簡單的命令行編譯配置,無需 IDE。
與之相對地,這份教程的定位,是在這些場景下能夠讓你更快地達成目標:
- 你在基于 RN 等方案開發,需要整合原生 SDK 或類庫。
- 你在 RN 等方案下踩到了 Native 的坑,希望能夠獨立調試解決。
- 你需要大致理解現有的 Objective-C 等應用代碼,或進行小修改。
如果這些場景命中了你,那么就別猶豫了,上車繼續吧?
Getting Started
如何閱讀呢?從下面的鏈接開始就行了:
- C
- 重溫 Hello World - 介紹編譯環境外與編碼風格等基礎。
- 變量與類型 - 介紹常常被 JS 程序員忽略的類型系統到底有多么重要。
- 控制流 - 介紹日常司空見慣的 for 和 while 循環是怎樣和底層機制聯系起來的。
- 函數調用與棧 - 介紹原生語言是如何復用代碼段的。
- 指針與引用 - 介紹我們需要區分基本類型和引用類型的理由。
- 結構體與堆 - 介紹對象的雛形與內存管理的概念。
- Objective-C
為什么從 C 開始呢?一方面,WASM 和 WebGL 中少不了 C 的影子,而更主要的是,C 的內容其實非常少,并且有一個非常好的思維模型,能夠幫助你理解編程語言的核心特性,從而更容易地通過類比來掌握其它語言。例如作為 C 的超集,Objective-C 中就有許多 C 的影子。從 C 開始能夠讓你更好地理解它的特性為何這么設計,從而更好地理解其它編譯型的原生語言。當然,如果你已經熟悉了 C,你也可以直接跳過它,閱讀其它部分。
參與
非常歡迎各種形式的參與,包括但不僅限于問題討論、勘誤指正與新增內容?使用 GitHub 的 Issue 和 PR 來參與吧。
致謝
本系列文章的組織結構參考了《Objective-C Programming The Big Nerd Ranch Guide》一書。
許可
CC 署名-禁止演繹
總結
以上是生活随笔為你收集整理的面向 Web 前端的原生语言总结手册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实现小程序canvas拖拽功能
- 下一篇: 再谈前后端分离