「 整合式開發環境 Integrated Development Environment 簡稱為 IDE 」 ,是一種程式開發軟體,通常只針對特定語言,且有應用程式生命週期管理(Application lifecycle management)簡稱 ALM 的功能 ; 另一方面「 文字編輯器 Text Editor 」通常只提供如複製、剪下、貼上、搜尋、取代等文字操作功能,但現在兩者已經沒有區分的這麼明顯了,原因就是 VSCode 的出現很大了融合了兩者。 VSCode 其定位採用核心是 <Text Editor + code understanding + debug>,並以檔案夾作為專案管理,保持輕量與高性能,但還是提供強大的支援語法。

與許多程式編輯器一樣,VSCode 也採用通用 layout,設計理念是希望可以提供簡單直覺的排版,讓使用者可以直觀的選取檔案並閱覽、編輯檔案,本文章首先討論 Workbench 的定義和介紹 vscode layout 的各個名稱。

Continue reading

Visual Studio Code 簡稱 VSCode ,是微軟 2015 年開源的輕量化 code editor ,基於 Electron 並用自家雲端的編輯器 Monaco Editor 作為其底層開發,支援多語言及平台且使用 TypeScript 來進行編寫,也提供了強大的外掛程式拓展機制給人加強功能。VSCode 的開發是由 Eclipse 之父 Erich Gamma 領導( Erich 也是《設計模式》作者之一),在 2019 年的 Stack Overflow 開發者研究中,其獲選最受歡迎的 code editor 有 50.7% 的使用率,且還在持續增加當中。

Continue reading

當要建立新專案時,都會需要決定一些關於基礎的架構或開發規劃的事項例如 :

  • 設計 folder structure
  • 打包編譯工具的選擇
  • IDE 預設環境配置;IDE plugin 或 extension 的安裝
  • CI/CD、IaC 設定或工具選擇

每次建立專案時都會參考之前的架構規劃,然後手動複製架構雛形,重新設定參數,其實不太方便… 這時就可以引入 Scaffold 這樣的模坂概念,來直接生成專案的骨架。本質用意是把那些重複地創建專案基礎結構、專案規格流程取代掉,實現 DRY (Don’t Repeat Yourself) 原則。而 Yeoman 就是一個著名 scaffolding generator tool,微軟官方維護 Visual Studio Code extensions,就是裡面非常著名的例子。

Continue reading

Homebrew 是一個廣泛使用在 MAC 上的套件管理工具,可以安裝一些 Mac App Store 上沒有的軟體,其操作十分方便,可以簡化軟體安裝的過程,是個很有名的非官方工具,由 Max Howell 以 Git 和 Ruby 為基底寫成,並通過 GitHub 維護,為 2012 年 GitHub 上擁有最多新貢獻者的專案。對於其作者也有個有趣的軼事:Max Howell 曾應聘過 Google 的職位,面試失敗之後在 Twitter 上發文章 :

  • Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so f*** off.

因此在網上引發了面試白板題的討論。

Continue reading

現在越來越多的服務應用使用 Protobuf 來作為資料交換的格式,它被廣泛應用於 RPC 調用和資料存儲。 Protobuf 語言中立、平臺中立,只要定義好一份 .proto 檔案,就可以生成不同的程式語言來處理資料的序列化或反序列化。要了解 Protobuf 序列化/反序列化,首先需要了解一些知識點 :

  • Varint Encoding
  • Zigzag Encoding
  • Wire Type 類型
  • T-L-V 儲存方式

熟悉這些可以更加理解 protobuf,也能避免錯誤使用,以及更好的優化性能。本章節會實際把前面學到的知識點一次用上,用實際案例來了解 Protobuf - Serialization。

Continue reading

隨者網路傳輸、頻寬與硬體的設備的改善和增強,能傳遞資料量也越來越大、越來越複雜,這時我們也不再只是追求能夠將資料傳遞完成,而是更加要求短時內傳遞大量的資料,故勢必會需要強化序列化壓縮的技術。這篇會介紹 Protobuf 編碼後的 byte array 結構,以及會這樣設計的思路,當有了基本的認識後,就會明白 Protobuf 為何它可以比 JSON、XML 傳輸效率更高,更能壓縮資料,實現高效率。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan