從零開始的 dApp 開發:2024 年學習路線圖

從零開始的 dApp 開發:2024 年學習路線圖
作者: Calpa Liu
字數:3200
出版日期:December 18, 2023
更新日期:December 16, 2023

Web3 的機會已經來臨,接下來的三個月,我必須全力以赴。以下是我 2024 年的學習計畫:

當我回想起今年年初的那段時光,我心懷對香港金融科技的雄心壯志,堅信能夠找到理想的工作。儘管我擁有 Full Stack 開發的豐富經驗,但實際願意給我面試機會的公司並不多。或許最相關的面試經歷是與一家本地交易所的,當時我通過了多輪的面試,然而,我們最終未能繼續下一步,這場考驗無聲無息地劃下了句點。

隨著時間的流逝,我漸漸將這段經歷深埋在記憶深處,認為它已經告結束。

然而,命運的齒輪開始轉動。

就在我參加台北區塊鏈週活動,站在 14 樓俯瞰遠處風景的時候,突然間一位交易所老闆喊出了我的名字:

「Calpa,你是 Calpa 嗎?」

我回答說是,你是?

「真的是你,我這裡有你的簡歷。」

我心中突然生出一絲不安,想著是否有人揭開了我過去的一些黑歷史。

然而,當他開始提到他的公司名稱時,我漸漸想起當時他對我提出的一個挑戰:開發智能合約。

當我還在猶豫之際,他突然問了我一個問題:

「你準備好了嗎?智能合約學得怎麼樣?」

頓時,我意識到自己在這段時間雖然學了一些,但還未能深入了解智能合約。我明白,接下來的三個月,我必須更加全力以赴,不辜負這個難得的機會。機會已經來臨,現在是我出發的時候了。

以下,就是我在 2024 年的學習計畫,希望可以不負眾望。

第一步:入門與基礎

在踏入 dApp 開發領域之前,我需要建立一個堅實的基礎。第一個月的目標是入門並理解基本概念:

  • 通過在線課程例如 CryptoZombies,學習區塊鏈的基本原則,包括分佈式帳本、區塊、交易、共識機制等

CryptoZombies

CryptoZombies 是一個互動式的線上學習平台,專門設計用來教授區塊鏈和以太坊智能合約開發的課程。這個平台以遊戲化的方式教授區塊鏈技術,讓學習者通過創建自己的以太坊智能合約來掌握相關知識。CryptoZombies 的課程以易於理解的方式解釋區塊鏈和智能合約的概念,並提供實踐編程經驗,使開發者能夠更好地理解和應用這些技術。這個平台為初學者和有經驗的開發者提供了一個有趣且互動的學習環境,以掌握區塊鏈開發技能。

https://cryptozombies.io/

  • 我需要了解以太坊的基本概念,包括智能合約、以太幣(ETH)、Gas 費用等

以太坊

以太坊是一個基於區塊鏈的開放軟體平台,允許任何人在上面運行智慧合約。智慧合約是一種執行合約條款的電腦程式,在沒有第三方參與的情況下以安全且可核實的方式自動執行。以太坊普及了智慧合約,並成為第二大加密貨幣,僅次於比特幣。以太坊的區塊鏈還能用於建立分散式應用程式(DApps),這些應用程式不依賴於任何單一機構,且由區塊鏈的節點來維護。以太坊的架構讓開發人員可以建立各種各樣的分散式應用程式,包括去中心化金融(DeFi)應用程式。

https://ethereum.org/en/

  • 學習 Solidity,這是用於以太坊智能合約的編程語言。可以使用線上教程和 Solidity 文檔

Solidity

Solidity 是一種用於編寫以太坊智能合約的高級編程語言,它具有合約導向的特點,並用於定義合約的行為和邏輯。這個語言設計用於安全性和可讀性,並且被廣泛用於以太坊和其他以太坊虛擬機支持的區塊鏈平台上。開發者使用 Solidity 可以創建各種各樣的去中心化應用程序(DApps)和智能合約,並利用其豐富的功能來實現區塊鏈上的自動化和可信任的執行。

https://soliditylang.org/

  • 安裝和配置以太坊開發環境,包括 Foundry,Remix 和 Metamask

Remix

Remix 是一個基於網頁的以太坊集成開發環境(IDE),專為以太坊智能合約開發者設計。它提供了一個用於編寫、測試和部署智能合約的直觀界面,並具有內置的編輯器、調試器和模擬器,使開發者能夠更輕鬆地進行合約開發和測試。Remix 還支援多種以太坊網絡,讓開發者能夠輕松切換和測試合約在不同環境下的運行。它是一個強大的工具,有助於簡化以太坊智能合約開發過程。

https://remix.ethereum.org

  • Hello World 智能合約:創建我的第一個智能合約,例如一個簡單的 Hello World 合約,並部署到本地區塊鏈上

第二步:深入學習與實踐

在第二個月,我將深入學習區塊鏈和 dApp 開發的更多細節,並開始實際建立一個 dApp:

Alchemy.com

Alchemy.com 是一家專注於區塊鏈基礎設施的公司,為開發者提供強大的工具和服務,以支援他們在 web3 環境中構建和運行分散式應用程序(DApps)。該平台提供高性能的區塊鏈節點、數據分析、開發工具和可擴展的基礎設施,使開發者能夠更輕鬆地創建和管理區塊鏈應用,從而推動區塊鏈生態系統的發展。

https://www.alchemy.com

  • 學習 Solidity 的高級特性,包括合約繼承、事件、庫等。開始編寫更複雜的智能合約
  • 學習如何使用 Web3.js 來與以太坊區塊鏈互動,包括合約部署、交易發送和數據檢索
  • 開始設計我的 dApp,著手開發前端介面。我們可以使用 TypeScript,React / Vue.js 配合 Viem 來開發我的界面

Viem

viem 是一個針對以太坊的 TypeScript 介面,它提供了 TypeScript 開發者用於與以太坊區塊鏈進行交互的工具和類型定義。這有助於開發者更容易地建立以太坊智能合約和應用程序,並在 TypeScript 環境中編寫安全且可靠的程式碼。viem 有助於簡化以太坊開發過程,並提供了強大的工具,以實現與區塊鏈的集成。

https://viem.sh/

OpenZeppelin

OpenZeppelin 是 一個用於以太坊智能合約的開放原始碼庫與工具。它由多種可供應商使用的區塊鏈安全工具與服務組成。由於區塊鏈的不可變特性,智能合約的任何弱點都會因不可逆轉且不可撤回的交易而被永久記錄和利用。OpenZeppelin 旨在通過提供一系列工具、服務和資源來解決此問題,幫助開發人員構建安全可靠的智能合約。這些工具包括用於測試智能合約的智能合約測試框架、用於自動生成安全智能合約代碼的工具以及用於識別智能合約中安全漏洞的審計服務。OpenZeppelin 也提供專業服務,包括安全審計、智能合約開發培訓和諮詢。

https://www.openzeppelin.com

  • 智能合約測試:學習如何編寫智能合約測試,以確保我的合約安全性和功能正常
  • dApp 部署:學習如何將我的 dApp 部署到以太坊測試網絡,以便進行測試和測試用戶體驗

第三步:實踐與構建項目

在第三個月,我將著手實際建立一個完整的 dApp 項目:

  • 選擇 dApp 項目:選擇一個具體的 dApp 項目,可以是去中心化應用、數字資產管理工具、NFT 市場等。確定我的項目範圍和目標
  • 用戶測試與反饋:邀請用戶參與測試,獲得他們的反饋,並不斷優化我的 dApp
  • dApp 部署:最終,將我的 dApp 部署到主網絡,使其對所有用戶可用

後記

Taipei Blockchain Week 2023

2023 年台北區塊鏈週之行,這一次來台北,有幸聆聽了許多行業專家的分享,也與來自世界各地的區塊鏈愛好者交流了心得。我深刻地感受到,Web3 正在蓬勃發展,並將在未來引領技術革命。這讓我更加堅定了我對 Web3 賽道的信心。在 2024 年,我將全程投入 dApp 開發,為這個新興領域貢獻自己的力量。

區塊鏈技術的去中心化、透明和安全特性,為我們構建一個更加公平、公正的社會提供了可能。dApp 作為區塊鏈技術的應用之一,具有廣闊的發展前景。

我相信,通過我的努力和學習,我可以在 dApp 開發領域取得一定的成就,並為 Web3 生態系統的發展做出貢獻。

附錄:整合開發 dApp 的崗位要求

職位要求

  • 至少 5 年的前端/全端開發經驗
  • 熟練掌握全端開發技術:候選人需要熟練掌握 MERN(MongoDB、Express、React、Node.js)、Next.JS 或其他相關開發框架,以能夠開發全端應用。
  • 具備熟練的 Solidity 編程技能,能夠進行合約開發和性能優化
  • 關注 EVM 兼容鏈、以太坊 Layer 2、ZKVM 等環境中的產品研究和分析
  • 熟悉使用第三方安全合約庫,如 OpenZeppelin
  • 具有網頁/移動產品開發經驗
  • Micro Service 開發經驗
  • 熟悉後端開發技術,包括 GraphQL、gRPC、MongoDB 和 PostgreSQL,這些技術可能在項目中使用
  • 具備卓越的團隊合作能力,能夠獨立思考,並具備強烈的責任感和自我激勵能力
  • 對區塊鏈技術的知識和熱情
  • 具有流利的英語口語和書寫能力
  • 熟悉 Git
  • 熟悉 React
  • 熟悉 CSS-in-JS (Emotion)
  • 擁有 Storybook 經驗
  • 熟悉 esbuild
  • 熟悉 vite
  • 熟悉 ethers.js
  • 熟悉 immer.js
  • 熟悉 Cypress 來編寫 E2E 測試

職責

  • 參與基於區塊鏈的應用的開發工作,涉及到智能合約和分佈式應用的開發
  • 開發和維護高質量軟件解決方案,確保它們滿足客戶需求。
  • 參與從設計、開發、測試、部署到維護的整個軟件開發生命周期
  • 研究和整合新技術,以不斷改進公司的開發流程和產品。

預期

  • 與項目聯合創始人、領域專家、產品和營銷團隊密切合作,從項目的構想到產品上線,共同交付項目。
  • 整合多種服務和低代碼工具:如 Webflow、Retool、n8n,以快速建立原型,檢查可行性並確定業務價值。
  • 指導 Junior 軟件工程師:並促進敏捷開發過程。
  • 設計強大、具有成本效益的系統架構:深刻理解系統中的權衡,並能夠理解基礎設施的維護和成本影響,並執行基本的 DevOps 任務。
  • 識別瓶頸並優化團隊的工作流程:從產品需求到持續交付系統。2024 年:從零開始的 dApp 開發生活
感謝您閱讀我的文章。歡迎隨時分享你的想法。
關於 Calpa

Calpa 擅長使用 TypeScript、React.js 和 Vue.js 開發Responsive Web Design網站。

此外,Calpa 積極參與香港和台灣的開源社區,曾在2019年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在 GitHub 上公開分享個人博客程式碼,已獲得超過300顆星星和60個分支的支持。

更多前端開發技術文章:傳送門