Category: 理解程式

Node.js 與Express.js 的前因後果

August 8, 2024 | 理解程式

JavaScript本為前端頁面的腳本程式語言,以JavaScript 寫出的程式,用戶須在瀏覽器上執行,故此,JavaScript的採用多在前端的程式開發。 2009年,美國軟件工程師瑞安·達爾,以Javascript 和 C+,結合了Google的V8、事件驅動模式和低階I/O介面,編寫了Node.js ,令JavaScript 的應用,跳出瀏覽器,在用於侍服器的終端上;換言之,自Node.js 的出現,JavaScript已不只用於前端編程,亦可應用於後端開發。 Node.js 含有一系列內建模組,如 HTTP 模組,使建置網站脫離 Apache HTTP Server ,令伺服器能獨立於前端,兩者能分離運作。 Node.js 可視作為一個微型作業系統,在執行環境中(runtime environment)運作,發展至今日,Node.js 已是很多前後端框架的執行環境,前端就有Angular.js 、React.js和Vue.js等等。 而後端的應用,因Node.js的modules 極有限,不敷應用於現實各種商業邏輯,於是便有Express.js 的出現,它是Node.js的web應用框架,除了簡化一些Node.js 原有功能的編程外(如HTTP modules),亦提供更多物件和方法處理較複雜的商業應用,彌補了Node.js 的功能不足。 自Node.js 和Express.js提供了完善的後端開發方案,能創造API 給前端所用後,Javascript的網站堆疊方法就再不局限於LAMP Stack ,過往十多年出現多樣化的框架組成,如MEAN Stack 和JAM Stack 等等,可真如雨後春筍,令編程者有更多的堆疊選擇。 就讓我們加以學習Node.js 和Express .js 吧! Backend Programming: Node.js and Express.js – RedTechSchool

繼續閱讀

我為何要學C++

July 3, 2024 | 理解程式

舊生見我最近在「消化」C++(自從VS code 有了Copliot 後,我學習程式語言改了態度,是在消化),有點狐疑,問我C++這麼舊的語言(幾近有40 年的歷史),還有需要學嗎? 需不需要,在乎你的好奇心有幾癲,像我般要查根究底,誓要直落到跟粒kernel 溝通的野心下,就由不得我不去了解C++ 這套極底層的語言了;而事實上,大多數的操作系統、瀏覽器、數據庫引擎和圖像或視頻處理軟件,都是用 C++ 構建的,包括Windows、Linux、Chrome、FireFox、Safari、MySQL、MongoDB、Photoshop 等等!這又怎會不重要。 以我所知,C++ 仍然是目前最快、最高效的編程語言之一,對改善程式系統的表現至為重要;而且,它真不老!幾近每三年發布一個新版本,今年是最新版本23,有如斯具活力的社區支持,怎會老土落伍! TIOBE 指數是編程語言流行程度的指標,依其最新排名,C++ 已差不多跟Java不相伯仲,幾近世界前 3 大編程語言之一(其實已是,因為它的姊妹語言C已位列第二)。 C++亦是物聯網設備中使用最廣泛的編程語言之一,IoT設備是通過 Internet 收集數據和通信的硬件,例如您的智能燈、冰箱、烤麵包機、安全系統等等、這些系統的computing resources 有限,只能容載一些高性能的應用程式語言,C++ 正正能針對這需要而大派用場,所以我認為我不可以對C++無知。 再就我所知, 在構建視頻遊戲而言,甚麽unreal engine,聽說是一個革命性的框架,將視頻遊戲提升到另一個新的水平,亦是以C++ 來編寫的,我雖然對遊戲開發一點興趣也沒有,其C++應用場用之廣泛,可見一斑! 學完C++,我會見識Rust ,它是一種在性能和效率方面與 C++ 競爭的新興語言(只有 12 年歷史),聽說它更容易學習,使用起來更安全…… 我不太理解程式語言怎樣叫做「更安全」,這方面我又極好奇。 但我要先征服C++!

繼續閱讀

程式是怎樣跟電腦溝通?(以Java為例)

July 3, 2024 | 理解程式

初學電腦,很多時都用到一些科技公司所提供的IDE(integrated development environment) ,方便是方便的,但你真的不太明白整個程式編寫過程的始末,究竟這些程式是怎樣跟電腦溝通而出到output 呢?我可真身在雲深不知處,只能在其既定框架中不斷輸入程式,然後按一下某個鍵,就看到output 。 譬如我當初學習Java ,是用甲骨文公司提供的IntelliJ IDEA這個IDE 的,甚麽也在裏面實現,日子一久,我會好奇:「咁無左呢個IDE,我點算,點用Java?」於是,我開始查根究底,才明白Java 需編譯,其編譯器叫Javac,編譯完得到個class file,但咁重未得,因為作業系統的不同(主要有window、Mac OS 和Linux),所以要有個Java Runtime Environment (JRE)執行,才可將可程式語言轉化為機器語言(即二進制運算),先可以跟粒晶片的內核溝通,然後,終於在terminal 出度output囉! 當中又因為Javac 同JRE 都有input 同output 呢個過程,原理上係一副「機器」,但不用接駁硬件,是「虛擬機器(VM)」,又因專為Java 用,所以叫JVM。 好了,那我不用Java 的IDE,上面所述的編譯器Javac 和執行環境(JRE)如何可取得,很簡單,在Browser 下載一個套件叫Java Development Kit (JDK)就可以了,這套件又是甲骨文公司出的。 曾有一段日子,我被Java 這幾個術語JDK、JVM和JRE弄得暈頭轉向,現在豁然開朗,對電腦溝通是怎樣的一回事,又清楚了一些。

繼續閱讀