我做个人站长 7 年的经验,最痛的莫过于。。

news2024/11/18 15:28:01

大家好,我是程序员鱼皮,从大学期间上线个人博客网站开始,我做个人站长已经有 7 年多了。在这个过程中,我收获了很多,除了技术成长带来的快乐外,个人站长最开心的莫过于有用户使用、并且留下好评,真的很有成就感。当然,这期间也经历过很多痛苦,比如网站被攻击、数据库被黑、用户反馈的 Bug 无穷无尽等等。。。

不过现在回过头来看,经历这些痛苦反而是一种 “幸福”。一方面我会因为这些事获得成长,丰富自己的经验;另一方面有人攻击你、反馈 Bug,证明了你的网站获得了一定的关注。而做个人站长,最痛的事情莫过于:用心做的网站没人用。 我相信很多有自己网站的朋友,应该会感同身受吧。

这段时间我也花费了大量的精力带团队开发优化编程导航网站,又增加了不少经验值。

这篇文章,我会以该网站为例,分享成为个人站长需要做的工作,以及我做个人站长的一些经验。希望对想成为独立开发者的朋友们有些帮助。

如何成为个人站长?

想成为个人站长?想做好个人网站?以下的事情都是必须要做的。

大家也可以把这段分享当做是 “网站开发流程” 的学习。

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 生成器、极客范儿浏览器主页等等,也认为做免费网站是值得骄傲的事。但是,这些网站都做不大,因为没有收入,也就没有人力和精力去维护更新。稍微换一个思路,如果网站有一些付费内容能够盈利,从而让你有资源和动力把网站做的更大,让更多人知道并使用到你的产品,岂不是更好么?

当然,一个网站想要盈利,就必须要有良好的用户体验。通过不断优化、运营和推广,网站才能逐渐进化,越做越大。

最后

已经说了这么多,最后再多说几句吧。经常有朋友问我:对于程序员来说,技术重要还是业务重要?

通过这篇文章,我相信已经有了一个答案:技术是基础能力、是吃饭的本领,而随着你的工作年限越高,非技术的能力就越重要,比如产品思维、运营能力、推广能力、销售能力、沟通能力、写作能力等。程序员朋友们天然具备站长属性,不妨试着去成为个人站长,做自己的作品是一件很幸福的事。


可访问我的 Github:https://github.com/liyupi ,了解更多技术和项目内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1858575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库精选题(七)(综合模拟题二)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀数据库 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 一、名词解释 1、事务 2、弱实体集 3、正…

顶尖项目经理都在用的SOP

接受任务SOP 了解任务背景了解任务目标(包含deadline)拆解任务,确认负责人执行方案审批确认跟进执行并定期汇报验收结果,进行反馈相关文档存档,形成闭环 推进任务SOP - PDCA循环 制定计划 Plan。依据目标&#xff0c…

【面试题】面试小技巧:如果有人问你 xxx 技术是什么?_面试问你对什么技术特别了解

前端工程越来越大,前面几种方案不能很好的支持单元测试。 在这样的背景下,React 诞生了。React 带来了新的思维模式,UI fn(props),React 中一个组件就是一个函数或者一个类,一个函数或者一个类就是一个基础单位&…

OpenFeign 的请求处理流程

流程 1. 定义 Feign 客户端接口 首先,开发者需要定义一个 Feign 客户端接口,并使用 FeignClient 注解进行配置。例如: FeignClient(name "aService", url "http://localhost:8080") public interface ServiceProvid…

数据库 复习题

有一个关系模式:工程关系(工程号,工程名称,职工号,姓名,聘期,职务,小时工资率,工时),公司按照工时和小时工资率支付工资,小时工资率由…

【面试题】马上金九银十了,简历该准备起来了,面试题你准备好了吗 ?浅谈 JS 浅拷贝和深拷贝

代码展示 let obj_old {name: Tom,age: 15,favorite: {food: bread,drink: milk} } let obj_new {...obj_old} console.log(obj_old obj_new) // false console.log(obj_old.name obj_new.name) // true console.log(obj_old.favorite obj_new.favorite) // true3. Ar…

什么是档案业务建设评价

档案业务建设评价是对档案管理机构或部门在档案业务建设方面进行的评估和考核。评价主要根据一定的评价标准和指标,对档案业务的各个方面进行综合评估,包括档案收集、整理、保管、利用等环节,以及档案管理机构的组织管理、技术能力等方面。 评…

OnlyOffice:现代办公的最佳选择

目录 安装 使用 评价 对比(与WPS) 总结 在当今的数字化办公时代,选择一款功能全面且易于使用的办公软件至关重要。OnlyOffice作为一款现代化的办公软件,凭借其强大的功能和友好的用户体验,逐渐成为了众多企业和个…

【ONLYOFFICE震撼8.1】ONLYOFFICE8.1版本桌面编辑器测评

随着远程工作的普及和数字化办公的发展,越来越多的人开始寻找一款具有强大功能和便捷使用的办公软件。在这个时候,ONLYOFFICE 8.1应运而生,成为了许多用户的新选择。ONLYOFFICE 8.1是一种办公套件软件,它提供了文档处理、电子表格…

19、删除链表的倒数第

1、题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 …

数字图像处理实验报告小论文(Matlab语言)

1.课题分析 在当今信息化社会,图像处理技术已成为众多领域不可或缺的一部分,从医学影像分析到安防监控,再到日常生活中的图片美化,图像处理技术都发挥着至关重要的作用。本次课题主要聚焦于图像灰度处理、图像小波变换和图像分割这…

数字货币与区块链生态

前言:区块链技术与数字货币这一文详细介绍了区块链技术,感兴趣的可以先看看这篇文章 1.比特币之后的数字货币与区块链发展 2.区块链形态 • 无许可区块链(permissionless blockchain) 用户无需许可即可加入区块链网络 • 许…

【简单讲解下C++max函数的使用】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

PSL400PC10P80、PSL410PC10P100、PSL420PC10P60比例换向阀放大器

PSL100PC10P60、PSL110PC10P80、PSL120PC10P100、PSL200PC10P80、PSL210PC10P60、PSL220PC10P100、PSL400PC10P80、PSL410PC10P100、PSL420PC10P60、PSL500PC10P100、PSL510PC10P80、PSL520PC10P100、PSL600PC10P60、PSL610PC10P100、PSL620PC10P60、PSL700PC10P80、PSL710PC10…

【面试题】面试官:判断图是否有环?_数据结构复试问题 有向图是否有环

type: NODE;name: string;[x: string]: any; }; [x: string]: any;}; export type Data Node | Edge; 复制代码 * 测试数据如下const data: Data[] [ { id: ‘1’, data: { type: ‘NODE’, name: ‘节点1’ } }, { id: ‘2’, data: { type: ‘NODE’, name: ‘节点2’ } },…

位置轴轴控功能块封装(CODESYS ST源代码)

博途PLC轴控功能块封装请参考下面文章链接: 1、S7-1200PLC位置控制功能块优化 S7-1200PLC脉冲轴位置控制功能块优化(完整SCL源代码)_s71200 脉冲轴-CSDN博客文章浏览阅读251次。博途PLC 位置控制功能块常用应用,可以参考下面文章链接:1、博…

电脑打印文件怎么操作?

有打印机用户的打印操作 对于已经拥有打印机的用户来说,打印文件通常是一个简单的步骤。首先,你需要将你的文件(如Word、PDF、PPT等)在电脑上打开。然后,点击菜单栏中的“打印”选项,或者快捷键CtrlP&…

ubuntu22.04安装onlyoffice社区版

安装unbuntu22.04 https://blog.csdn.net/qq_36437991/article/details/135915360 安装onlyoffice sudo apt-get update sudo apt-get upgradepostgresql sudo apt-get install postgresql创建用户和数据库 sudo -i -u postgres psql -c "CREATE USER onlyoffice WIT…

浏览器自带的IndexDB的简单使用示例--小型学生管理系统

浏览器自带的IndexDB的简单使用示例--小型学生管理系统 文章说明代码效果展示 文章说明 本文主要为了简单学习IndexDB数据库的使用&#xff0c;写了一个简单的增删改查功能 代码 App.vue&#xff08;界面的源码&#xff09; <template><div style"padding: 30px&…

BC64 牛牛的快递(c++)

牛牛的快递 题目描述输入描述输出描述示例代码 解题思路例如 题目描述 牛牛正在寄快递&#xff0c;他了解到快递在 1kg 以内的按起步价 20 元计算&#xff0c;超出部分按每 kg 1元计算&#xff0c;不足 1kg 部分按 1kg计算。如果加急的话要额外付五元&#xff0c;请问牛牛总共要…