開發者的困境

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