Zeit Now 教學

了解如何使用 Zeit 所創造的 Now 平台 Zeit 現在被稱為 Vercel,此教學可能已經過時。 部署 Node.js 應用程式最簡單的方法之一就是使用 Zeit 所創造的 Now 平台。 最近推出了 Now 2。此教學專注於 Now 2。與 Now 1 有許多不同之處,在這篇文章中有詳細說明。 Now 讓應用程式的部署和分發步驟變得非常簡單和快速。你可以把它當成「雲端」,因為你並不知道你的應用程式將被部署在哪裡,但你知道你將擁有一個可以訪問的 URL。 你可以使用 Now 部署 Node.js 應用程式、靜態網站等等。 Now 不僅支援 Node.js,還支援 Go、PHP、Python 和其他語言,但在這個教學中我只會考慮 Node.js 這個技術。 Now 有免費的使用方案,包括免費 SSL、100GB 的主機空間、每日 1000 次 無伺服器 函數調用、每月 1000 次建置、每月 100GB 的頻寬以及全球 CDN 的使用。如果你需要更多,價格頁面可以讓你對成本有個概念。 安裝 最好的方式是安裝 Now Desktop,你可以從 https://github.com/zeit/now-desktop 下載它。這是一個 Electron 應用程式,也會安裝 Now CLI,這是我們稍後會使用的工具。 透過 Now Desktop,你可以使用簡單的拖放介面部署應用程式,非常方便! 提示:如果你喜歡,你也可以只安裝命令行工具,可以從 https://zeit.co/download 安裝 now CLI。...

如何在本地測試 Netlify Functions

我有很多網站都是在 Netlify 上託管的,其中一些使用了一項名為 Netlify Functions 的功能。 可能是因為他們提供了極佳的靜態託管服務,所以我最喜歡的功能是 Netlify Functions。 您只需添加一個帶有導出函數的 JavaScript 檔案,用於處理 URL 的請求,然後完成設置。 您幾乎可以做任何事情,我將它們用作小型實用工具,用於可視化我所需的內部數據,或者執行“連接點”的操作,即將我運營業務所使用的不同工具「黏合」在一起。 如果您想了解更多資訊,請查看我的 Netlify Functions 教程。 在這篇文章中,我想特別談談如何在本地測試 Netlify functions。 有天我需要進行更改一個正在運行中的 Netlify Function,該函數用於處理註冊我的 Bootcamp 的人員,但我不想干擾正在進行的運營業務,以免給客戶造成問題。 我之前已經在「實時」環境中測試過這個函數,確保一切運行正常,但現在我有了不同的需求。 以下是我的解決方法: 首先,安裝 Netlify CLI npm install -g netlify-cli 然後,在網站文件夾中執行以下命令: netlify functions:serve 這樣就可以在本地提供服務的無服務器功能,使用的端口是 9999。您只需要使用類似以下的 URL 來訪問它們: http://localhost:9999/.netlify/functions/<name> 通過使用 Insomnia 發送虛擬 POST 請求,您可以測試它們。 這種方式測試函數還會抓取您在 Netlify 控制台中設定的任何 Netlify 環境變數,所以它就像在 Netlify 上運行它一樣。

開發者的困境

在使用現有服務或平台和建立自己的平台之間做出決策 我現在遇到了一個很大的問題。 我正在試用各種平台,看看它們是否適合成為我將來托管課程的地方。 我現在使用的平台是基於靜態網站的,使用自定義集成和無代碼工具(如Airtable)進行接口。付款和課程報名使用Node.js服務進行管理。你可以稱它為JAMstack,serverless,或者任何當下流行的時髦術語。 事實上,我有幾個類似的SAAS平台,供我每門課程使用。我喜歡把事情保持簡單和直接。一開始,我為一門課程制作了一個網站。 然後當我需要開設另一門課程時,我只需複製那個網站,製作另一個「版本」。 現在課程的數量增加到了7門,是時候重新檢視我使用的整體基礎設施了。 我第一個想法是使用一個我可以使用的平台,它可以作為課程材料的集中式中心,並提供我不必自己構建的功能。 所以我去試用了一些流行的服務,包括Teachable,Podia,和其他許多平台。 但我遇到了我所謂的開發者困境。 乍一看,這些平台都很棒。設計精美,界面流暢,它們的行銷也很出色,看起來很棒。 然後我開始使用它們。 我開始感到越來越沮喪。 「這看起來很棒」 「整體上我喜歡,但這個東西可以不同一點」 「編輯器糟糕透了」 「我希望我能使用 Markdown」 「這裡有個bug,怎麼可能只有我遇到這個問題?」 「嘿,支援,我遇到這個問題了」 - 「我們已經將它提交給工程團隊,我們會保持你的最新動態」 「我的天啊,我已經在這上面浪費了很多時間」 我是一個懶惰的開發者。我認為這是我最好的技術能力。 當你是一個懶惰的開發者時,過度設計軟體不是問題。這永遠不會發生。我只寫出執行任務所需的最小量的程式碼。 我抵制複雜性。 這有何好處?你不能預測明天的需求,明天的問題。我隨著時間的推移學到了這一點。 作為一名合約工,我曾經在非常複雜的程式碼庫上工作,讓我想哭,每當可能的時候,我都更喜歡過度簡化而不是過度複雜。 作為一個懶惰的開發者,這也使我在編寫軟體之前多思考很多。 因為編寫軟體是一種責任。 你正在寫下你未來要承擔的負擔。 假設,繼續我上面關於選擇課程平台的事情,假設我決定自己編寫我的課程平台。 這意味著我首先必須編寫它。 我需要做出決策。可能是對的,也可能是錯的。 在我建立我夢想中的軟體之後,我需要在未來維護這段程式碼。我為此負責。不再有「向支援請求」的按鈕。 作為開發者,我們有這種令人難以置信的能力創建我們需要的工具。然而,這也代表著責任。 但這也是一個擁有問題。我想依賴於這個特定平台未來的5-10年嗎?如果他們的決策與我的不一致怎麼辦?如果他們提高價格怎麼辦?我能輕易地轉移到其他平台嗎? 在理想情況下,我總是會選擇自己的平台而不是由其他人管理的平台。但我同樣也會選擇最簡單的路線。 對我來說,最大和最珍貴的資源是時間。選擇現有解決方案,我可以有更多的時間。 我應該花一個月的時間來編寫自己的課程平台嗎? 這就是我目前面臨的開發者困境。 我試用了所有可能的現成解決方案。 它們都沒有兌現其承諾(或我心中對它們的形象)的某種方式。 我決定我要寫自己的解決方案。當然,是最簡單的解決方案。