當前位置: 妍妍網 > 碼農

我做個人站長 7 年的經驗,最痛的莫過於。。

2024-06-20碼農

大家好,我是程式設計師魚皮,從大學期間上線個人部落格網站開始,我做個人站長已經有 7 年多了。在這個過程中,我收獲了很多,除了技術成長帶來的快樂外,個人站長最開心的莫過於有使用者使用、並且留下好評,真的很有成就感。當然,這期間也經歷過很多痛苦,比如網站被攻擊、資料庫被黑、使用者反饋的 Bug 無窮無盡等等。。。

不過現在回過頭來看,經歷這些痛苦反而是一種 「幸福」。一方面我會因為這些事獲得成長,豐富自己的經驗;另一方面有人攻擊你、反饋 Bug,證明了你的網站獲得了一定的關註。而做個人站長,最痛的事情莫過於: 用心做的網站沒人用。 我相信很多有自己網站的朋友,應該會感同身受吧。

這段時間我也花費了大量的精力帶團隊開發最佳化編程導航網站,又增加了不少經驗值。

編程導航 - 學習交流社群:https://code-nav.cn/

這篇文章,我會以該網站為例,分享成為個人站長需要做的工作,以及我做個人站長的一些經驗。希望對想成為獨立開發者的朋友們有些幫助。

如何成為個人站長?

想成為個人站長?想做好個人區域網絡站?以下的事情都是必須要做的。

大家也可以把這段分享當做是 「網站開發流程」 的學習。

1、先有 IDEA

你要做什麽?

明確網站目標和核心價值,是建立網站的第一步。想法是最值錢的,一個好的 IDEA 是網站成功的關鍵。

註意,好的想法可不是找別人要來的。之前我遇到過比較搞笑的問題是 「魚皮魚皮,我想做個創業計畫,能做什麽呢?」

別人要是有好的 IDEA,為什麽自己不做,而是要無償分享給你?

怎麽獲取 IDEA 呢?我有 2 種方法是:

  1. 從自身的需求出發,思考你需要什麽。比如學校搶課,這就是一個需求。

  2. 多看別人的網站,從中找到靈感和改進的空間。多問自己:現有的網站有哪些地方做得不夠好?舉個例子,經常有朋友吐槽微信占用空間過大,能不能自己開發一個比它更好的呢?搞不好你就是下一個 pony 🐴。

比如我的編程導航,IDEA 就源於我做編程知識分享多年來讀者們遇到的問題 —— 學編程效率低、資源分散、缺少交流、沒有動力。所以我們的目標是:提供一站式編程學習交流社群,做您編程學習路上的導航員。

2、產品原型

有了 IDEA 之後,就要開始構想:網站要做成什麽樣子?要有哪些核心功能?一般要編寫詳細的產品設計方案和產品原型圖。

在公司裏,這一般是產品經理做的事,但對於個人站長,你就是產品經理,整個網站做成什麽樣,由你來決定!

首先要梳理網站的功能模組,可以用思維導圖或者列表來展示,比如我們編程導航的功能模組設計:

  • 使用者模組:包括使用者註冊、登入、個人資料管理等。

  • 文章模組:允許使用者釋出、編輯和閱讀文章。

  • 訊息模組:通知使用者有新評論、動態等。

  • 搜尋模組:聚合搜尋所有的文章、資訊。

  • 教程模組:提供免費和付費的學習教程、支持專欄閱讀和視訊播放。

  • 確認好功能模組後,要針對每個功能設計產品原型圖。沒有專業的產品知識和產品思維也沒關系,這是可以鍛煉出來的,可以透過看、模仿、甚至抄一些成功網站的功能和設計來幫助你快速完成產品原型。

    我們編程導航的首頁原型圖,就是我自己畫的,畫圖工具用語雀內建的畫板或者 draw.io 就可以:

    3、需求分析

    完成產品原型後,你會發現有一大堆的功能要開發。

    別慌,這種時候我們要進行需求分析和排期:明確哪些需求要做?哪些需求先做?

    如果是團隊開發,一般產品會拉開發、測試、設計等不同崗位的同學一起開需求評審會來討論。個人建站的話,就沒必要開會了,也沒必要使用專業的需求管理工具,反而麻煩。建議整理出一個需求排期表,將所有需要實作的功能按優先級排序。確定哪些是必須先完成的,哪些可以放在後續叠代中完成。對於大的功能模組,可以拆分為多個小需求,敏捷開發,有序推進。

    需求排期表範例,這是我 6 月剛帶大家做完的新計畫:

    4、前期設計

    明確需求後,就要開始 多線開工 了,設計師要出設計稿,測試人員要設計測試用例,開發同學要進行技術選型和方案設計。

    對於個人站長來說,以上所有的事情都要自己做。如果你是一名程式設計師,個人的建議是在網站開發初期,參考其他網站而不是自己做設計,先完成功能、有人用產品,再去摳那些細節。也沒必要走標準的研發流程一樣設計測試用例,完成功能後自己透過點選驗證功能可用即可。但是,技術選型和方案設計是一定要認真做的,最好出一個詳細的文件,明確實作的方案和細節,防止開發過程中才發現有問題或者無法實作。

    技術方案設計包括核心實作方案和細節確認、庫表設計、介面設計等,比如我們編程導航交流板塊的庫表設計,就是透過方案文件進行確認後,才寫程式碼開發的。

    5、開發實作

    這段是程式設計師朋友們再熟悉不過的流程,也是技術通道的同學 「吃飯的本領」。對於網站開發,通常分為後端和前端。

    5.1 後端

    後端提供數據的操作和管理能力,通常後端開發同學需要提供介面文件,供前端同學檢視。

    有很內送流量備援容錯機制流的後端開發語言比如 Java、Go、C++、PHP、C# 等,需要使用一個提高效率的開發框架比如 Java 的 Spring Boot(Quarkus)、Go 語言的 Gin 等。

    像我們編程導航的後端,就是用 Spring Boot 開發的,絕大多數功能用 MySQL 資料庫就能搞定,有些功能還用到了 Redis、WebSocket 等技術。

    5.2 前端

    前端提供給使用者使用和互動的頁面。通常使用 HTML、JavaScript、CSS 三件套,配合框架如 Vue 或 React 提高開發效率。除了開發頁面外,前端還需要考慮瀏覽器相容性、頁面開啟效能、搜尋引擎最佳化(SEO)等等。

    前端開發中,挑選一個好用的元件庫可以大大提高開發效率,像我們用的是 Ant Design,優點是元件全面,基本每個頁面都可以直接使用元件、像拼圖一樣完成開發。缺點就是這個庫相對有點重,估計我們後面也會最佳化吧。

    對於個人站長,前後端都要自己開發。我的建議是先做後端,明確了介面、數據和邏輯的定義後,再開發前端,會輕松很多。而且最好把復雜的計算邏輯放到後端,避免前後端維護 2 套邏輯,出現混淆和沖突。

    6、測試驗證

    開發完成後,需要進行多輪測試:

    1. 開發自測:開發人員自己進行初步測試,確保程式碼基本功能正常。比如 Java 開發者可以用 JUnit 編寫單元測試。

    2. 測試(QA)測試:品質保證團隊進行詳細測試,包括功能測試、效能測試、安全測試等。

    3. 產品驗收:由產品經理或需求方進行最終驗收,確保產品符合需求。

    對於個人站長來說,除了自己測試外,可以邀請一些自己的朋友體驗,幫忙找找 Bug。

    在網站正式上線或收費前,一般是要經過充分內測的。像我以前開發的一些網站就是沒有做好測試,結果上線就被人鉆了漏洞。不過我覺得在流量沒那麽大的時候,如果上線出 Bug 並沒有實際的損失,那麽測試環節投入的時間比重可以小一些,只需要留給使用者一個可以反饋 Bug 的渠道就好。

    7、部署上線

    部署上線是指將網站檔放到伺服器上,讓使用者可以透過網域名稱存取。

    之前給大家分享過很多種不同方式的上線教程了,其實並不難:

  • 傳統伺服器上線教程:https://www.bilibili.com/video/BV1eT421i7si

  • 容器托管平台上線教程:https://www.bilibili.com/video/BV1Xm421N7Xj

  • 微服務計畫上線教程:https://www.bilibili.com/video/BV1Cp4y1F7eA

  • 最開始我還是建議使用傳統的伺服器上線,因為成本相對較低。而且伺服器的配置建議從低買起,比如 1 核 2 G 就足夠流暢執行大多數個人區域網絡站了,不要一上來就買配置太高的機器,不一定會有明顯的效能提升,反而是浪費資源。等使用者量上來了,可以再考慮切換部署方式或者升級伺服器配置。

    平時可以多關註伺服器的負載狀態和資源利用率,像我自己很多網站占用的 CPU 和記憶體資源都非常低,所以我把部份網站放到了同一台伺服器上,提高資源利用率。

    8、營運分析

    上線只是一個新的開始,站長需要持續營運網站(比如釋出內容、搞活動),並且監控和分析網站的流量和營運情況。可以使用 Google Analytics、51.La、百度統計等專業的工具進行數據統計和分析,一行程式碼即可接入。這些數據可以幫助你了解網站的 UV、PV、使用者來源、各功能使用情況、廣告的投放效果等,對於後續的產品改進和最佳化非常重要。

    9、網站最佳化

    網站最佳化是一個持續的過程,也是最能提升技術水平的事情,涉及多個方面,比如:

  • 產品本身最佳化:收集使用者反饋,改進產品功能和使用者體驗。

  • 頁面設計最佳化:確保網站設計更美觀、更易用。

  • 網站效能最佳化:比如透過最佳化程式碼、使用 CDN 等手段提高網站載入速度。

  • 網站可用性最佳化:確保網站 24 小時可用,避免宕機。

  • 網站成本最佳化:透過監控伺服器資源利用率,最佳化成本,避免浪費。

  • 註意,網站最佳化不是憑空猜測,而是要在 符合產品本身定位 的前提下,透過 分析實際數據和使用者反饋 來決定最佳化策略。

    怎麽理解這句話呢?

    舉個例子,曾經我以為網站最佳化就是不斷地增加新功能,別人家網站有什麽,我就添加什麽,結果到最後很多功能也沒有人用,反而分散了精力,沒有把一個功能最佳化到極致。還有就是使用者有的時候也不知道自己想要什麽、使用者的建議不是都要聽取的,比如有使用者希望給編程導航網站增加一個多人即時聊天室,如果是以前,我可能就做了(技術人內心:反正又不是做不了)。但放到現在,我就會思考一下,然後拒絕,因為我們平台本身就有交流社群的能力,而且做多人即時聊天室的風險太大了,會增加管理和營運成本,誰知道大家在群裏發什麽對吧?

    微信產品的老大張小龍曾經說過:每天有 1 億人想教我怎麽樣做產品。如果不考慮做產品的初衷和定位,盲目聽取使用者的建議,微信恐怕會比現在更臃腫吧。

    如果不確定是否要做某個最佳化,可以對使用者進行調研;或者透過灰度,讓一部份人先體驗最佳化後的網站,再透過收集反饋來驗證最佳化的效果。

    10、網站推廣

    我之前在直播中問了大家一個問題:你認為一個網站成功的關鍵是什麽?

    有同學說:產品體驗好。

    有同學說:使用者多。

    我覺得不完全對,個人認為網站成功的關鍵是: 有人用 => 有的賺

    我見過很多產品,做的很好,甚至不輸大廠,但最後還是死球了。為啥?你做的再好,沒人用,也是白做。這就是我認為,對於個人站長來說最痛苦的事。

    所以網站的推廣至關重要,可以透過以下幾種方式進行:

    1. 內容創作:寫文章、做視訊,透過優質內容吸引使用者。

    2. SEO 最佳化:透過搜尋引擎最佳化,提高網站在搜尋引擎中的排名,吸引更多自然流量。

    3. 廣告投放:砸錢,找 KOL 合作或者直接在廣告投放平台買量。前期一定要先自己最佳化廣告文案,確保廣告效果最大化,再去投放。投放的過程中要關註 ROI(投資報酬率),當你投放 1 元,能穩定收入 1.01 元時,你就已經成功了!

    做網站一定是要考慮盈利的。我認識不少個人站長,其中有些人是純為愛發電,完全不盈利的。剛開始可能很積極,但過不了多久,基本就因為時間忙、嫌麻煩等理由放棄維護網站了。說白了,就是沒動力了、「餓死了」。我之前做的絕大多數網站都是完全免費的,比如免費 SQL 自學網、免費網路安全自學網、框框大學、SQL 生成器、極客範兒瀏覽器主頁等等,也認為做免費網站是值得驕傲的事。但是,這些網站都做不大,因為沒有收入,也就沒有人力和精力去維護更新。稍微換一個思路,如果網站有一些付費內容能夠盈利,從而讓你有資源和動力把網站做的更大,讓更多人知道並使用到你的產品,豈不是更好麽?

    當然,一個網站想要盈利,就必須要有良好的使用者體驗。透過不斷最佳化、營運和推廣,網站才能逐漸前進演化,越做越大。

    最後

    已經說了這麽多,最後再多說幾句吧。經常有朋友問我:對於程式設計師來說,技術重要還是業務重要?

    透過這篇文章,我相信已經有了一個答案:技術是基礎能力、是吃飯的本領,而隨著你的工作年限越高,非技術的能力就越重要,比如產品思維、營運能力、推廣能力、銷售能力、溝通能力、寫作能力等。程式設計師朋友們天然具備站長內容,不妨試著去成為個人站長,做自己的作品是一件很幸福的事。


    以上就是本期分享,我總是寫文章過於投入,這次本來想著 2000 字就停了吧,結果又寫了 4000 字。。讓我看看有多少朋友能夠看到文末,評論區留個言鼓勵下唄,謝謝~
    👇🏻 點選下方閱讀原文,獲取魚皮往期編程幹貨。

    往期推薦