🎣 适合前端程序员成为独立开发者的“0”成本项目

前言

大家好,我是一名前端程序员,做过很多别人的应用(项目),作为一个从事多年前端工作的程序员,对各种产品有自已的一些想法。至少我是这样想的,做开发是没有前途的,我一直想做一个自己的产品,从0做用户增长,挖掘用户需求,解决用户的痛点。

成为一位独立开发者,我还需要做什么?今天我会从如下:

等方面,讲讲我今年一年做的独立开发的"0"成本项目,如何实现到落地,结果怎么样,有那些需要优化改进......

开发

我们是程序员,最擅长就是实现需求,但对于白天忙于工作,晚上基本没有时间搞自己的开发,所以要利用一些开源的工具去提效开发,后面还会提到这一观点。

对于前端产品的开发,我们最熟悉不过了,就是一个面向用户的应用,可以是小程序,APP,再不行H5移动网页是最容易实现的,这里没有讲 PC 端,到今天来看,移动端的用户量是远远大于PC端的,所以我建议你在后面的用户群体分析是要优先考虑这一点的。另一个就是后台的管理系统,相信大家都在天天忙于实现之样的需求而头痛。

我也找到一些开源的工具去实现,但是真的没有很好的开源产品是比较容易上手的,中后台管理在github 搜 "admin" 关键词能搜到很多的"模板",如"vue-vben-admin",但真要用于快速开发的项目,我觉得还是不够的,所以我带着这个问题,我开发了一个前端脚手架工具 watt-cli

为什么要生产一个脚手架,难道vue-cli他不香吗?

那么一个优秀的脚手架,需要提供什么功能:

  • 快速创建模板项目的框架
  • 批量处理静态文件
  • 快速在项目中创建路由页面
  • 部署项目上线

1、创建模板项目

arduino 复制代码
-$> watt init ms
? 请选择您要创建的项目类型: 中台系统(vue3 + ant-design + vuex + router)
? 是否覆盖原有的文件夹 是
? 项目名称 ms
? 项目title
? 项目描述
✔ 下载模板...
项目初始化完成✅

cd name

npm install

npm run dev

会在命令行提示显示 模板列表

  • 旧版中台系统(vue2 + ant-design + vuex + router) 开源模版 已完成
  • 中台系统(vue3 + ant-design + vuex + router) 开源模版 已完成
  • CMS静态网站或博客(nuxt2 + generate) 开源模版 已完成
  • CMS网站Nuxt3新建站(nuxt3 + generate) 开源模版
  • H5活动单页(nuxt3 + vant4 + h5 ) 开源模版 已完成
  • 前端框架文档(vue2 + vuepress) 开源模版 已完成
  • vue3前端框架文档(vuepress2 + vue3) 开源模版 已完成

更多待加...

2、批量处理静态文件

静态资源上CDN,unpkg.com源访问不了问题,自建? 七牛,腾讯云,阿里云,火山云

bash 复制代码
watt upload -h  #可以查看帮助

watt upload -f test.js -p demo #上传当前目录文件 ./test.js 到 /demo

watt upload -d test -p demo  # 上传当前目录下的 test 文件夹内所有文件到 /demo

watt upload -c -p test #上传当前目录下所有文件 到 /test

watt u -f ./lib/uploader/banner_bg.jpg -p demo  # 假使这个目录的文件存在 ./lib/uploader/banner_bg.jpg

3、快速在项目中创建路由页面

这个功能相信开发过小程序的人都懂,就是有个菜单项创建页面,同时路由都是同步更新的,项目中支持创路由就是页面,路由文件自动同步:

图示-创建页面

4、部署项目上线

前端的部署上线,就按现在流行的PWA方式,其实我们生成都是产物,产物挂到静态站点上就可以访问了,如果是history类型的路由还要做个重定向的配置,腾讯云的对象存储有个静态站点的功能,我想把产物丢上去不就是发布吗,我不但做了,还碰到问题了,也总结出了一些经验,由于篇符原因不展开了,有兴趣私聊我。

图示-发布项目

整个脚手架一直在更新,而且也不仅仅只是以上的功能,更多请细品

开源链接:github.com/xiejunping/...

产品

首先你需要找到一个产品方向,可以通过平时工作,生活中的痛点去发现,并通过自己能做的方面,去策划产品,千万不要一开始做个多么牛x的产品,在独立游戏开发圈子,有个传言"独立开发者的前面十个游戏都是垃圾",但你要尝试去动手,你才能发现你考虑不到的点,你才能知道怎么去优化了,而不是天天想着怎么去设计到最好。产品界也有个语叫"MVP"(最小可行性方案),因为你是独立开发者,开始不要把产品设计得太大而全。

什么,没有产品?最常见是"个人博客",这有很多牛人的博主发财了的,当然这赛道我也不是很看好。

插件

我今年3月8号做的一个产品,utools 插件 "CDN静态资源",开始时我对utools 开发完全不懂。

h5 链接 cdn.pjpiao.com/

中台管理界面

服务器

你一定会说,做产品要服务器,要会Java,Mysql,装各种中间件,作为前端这块还真是大部分缺的,我参加工作比较早,讲个早前的程序员工作职责,是根本不区分前端后端的,你可能只是听过,我确是真正经历过这个时段的,那时候找工作只有安卓工程师,Web工程师,不会像现在分得这么细。扯远了,我个人觉得前端到最后,还是会回归到程序员本质。结论是,你必须会一门后端语言,这我没法帮你,如果你还不会后端语言,我建议你直接去学 egg.js或 nest.js ,前端上手很快。

开始我觉得用自己的电脑当开发服务器还是不方便,在网上买了个电视盒子改的 centos7 当服务器,省电,性能也不差

当然,你有旧的笔记本也是可以利用起来,只是电费高点,一天大约2度电,市电价就1.5元左右。 按365天 算,这个价的成本还有一个比较优秀的选择,就是校园服务器,搞个2核2g可以用,200元/年,性能上比不了你的旧电脑,但有个好处是还送了后面讲的带宽。

Linux 服务器上装软件,相信搞过的人都知道,命令行的操作,以及各种编译安装命令,一顿操作不知道熬了多少个夜晚,后面了解了宝塔这种针对应用层的服务器管理,真不要太香。今年还有一个竞品 1Panel 也可以使用,不过我比较熟悉宝塔。

宝塔

服务就全写在了一个egg.js 的服务里,用的Mysql、 Sequelize、Redis、 Swagger,基本就能满足很多的CURD的功能。

全部接口平台 api.pjpiao.com/swagger-ui....

域名

在上面演示的页面,都基于是你有一个域名,并且"备案"好的,买域名我就不推荐了,阿里云,腾讯云都有。这些没有什么巧的,只是以前有养域名的,就是把抢注一些比较短,且好记的域名,持在手里,然后放在域名交易平台出售,好的域名能翻很多倍的。

备案

Icp备案,公安网备案都要做,主要就是提交材料,网站名称尽量使用个人的技术,分享之内的,网站里不能做留言,互动。等审批过了,基本是能在网站挂上备案号,供审局核查就行了,如果你做的项目有一点超域权限,你可以不要放在根目录上,用二级域名,一般没人举报都没有事的。

带宽

为了省云上服务器,我一直在寻找白嫖的方案, 3年前发现腾讯试运行云函数,结果搞了半年就开始收费了。后面找到了unicloud 推出的severless, 这个结果玩了一年,也开始收个运营费 5 元/月。便宜也就还好,我也用云函数URL 化的方式,写了一版所有的接口,结果在线上测试时,很不稳定,我用的是阿里云服务器这边的,48个免费云函数,但由于有冷起动时间,经常在首次访问时在300ms以上。如果是一个玩具项目,其实也能接受,但我的目标不是这样的,我看公司生产的接口基本在60-100ms左右。

内网穿透

以前在电信拨号上网时,电信还会分配动态公网IP,只要路由器不重启,可以使用 dmz 主机,在内网做路由规则能让内网的服务器向外提供服务,(这里有人会问,需要ISP备案,就是电信那边要求你报备,这其实是基于80、443端口的,如果你不用这两端口,是可以向外暴露的)但现在电信是不会再分配公网IP了。

櫻花 frp

Sakura frp 是看到微信群里有人说, 这个好用,我也是用这个免费的套餐,就把我的服务穿透出来了,我家是从电信拉的300M,按理论算上传带宽在2m 左右,不管你家的服务器多好,就是你向外提供服务,可以独享2M,你可以看看各大平台(腾讯云,阿里云)的2M带宽多少钱。

樱花是一账号两个免费的线路,流量是30G每月,对于网络服务器来说基本是购用的。

还有一个好处就是自已建的Nas服务,基本不能夸端,夸外网访问,我觉Nas根本没有太大的意义,你用电脑一样可以看高清电影,就是点播和投屏的服务。如果Nas外网访问,内网穿透也是绕不过去的。

截止发稿时,我又了解了 贝锐 出了一款穿透的路由设备,更加适合Nas。

监控

作为一个用户增长的产品,产品需做一些数据埋点上报,这个对于前端开发来说,并没有什么挑战性的,尤其前期用户量不大的情况下,其实开发一个接口也能统计得过来。但有一个致名的问题,就是服务端的报错,做为独立开发你不能可以有资源覆盖到很全面,还有就是服务的移定性的保证。

健康检查

由于我致力于使用"0"成本去做产品,服务的稳定性很难得到保证,比如可能frp穿透服务会不定时断开服务,或是家里因为一些不可抗力因素停电,在前期用户量少的情况下,等用户给我反馈明显不合适。于是,我用node 写了个每分钟的定时任务,去做服务的健康检查,这个服务不能在我的内网,应该部署到外网。如果服务不通就会及时给我发邮件,但有一次家里停电了,邮箱也爆了,一直接收到报警,后面优化了一下程序,会成指数级发送报警邮件,也就是说,5分钟内检测一直是错误,就没必要报警了。

推广

推广是我做得不好的地方,我只在掘金写了一篇文章,被推送到了首页,带来了一定的流量,但后期基本没有什么流量了。

长沙前端,第1/6个独立产品小孩

最后

前端程序员成为独立开发者,有一些天生的优越性,同时也有很多横向方面知识需要掌握,今天就我自身的一些想法和实战,也在懵懵懂懂的碰壁后,慢慢摸清了一些门道。独立开发者这条路,险阻且漫长,需要你坚定你的信念,及强的自律和耐心,通过不断的自我改正与创新,才能达到你的预期。万一哪天机遇来了你就可以变换赛道,过上睡后收入的日子。

相关推荐
木子七21 分钟前
Js Dom
前端·javascript
程序员鱼皮1 小时前
刚毕业,去做边缘业务,还有救吗?
计算机·程序员·互联网·求职·简历
谢小飞1 小时前
我做了三把椅子原来纹理这样加载切换
前端·three.js
圈圈的熊1 小时前
HTTP 和 HTTPS 的区别
前端·网络协议·http·https
GIS程序媛—椰子1 小时前
【Vue 全家桶】2、Vue 组件化编程
前端·javascript·vue.js
Beamon__1 小时前
element-plus按需引入报错IconsResolver is not a function
前端
努力奔波的程序猿1 小时前
HBuilderx修改主题色-改变编辑器背景颜色等
前端
正小安1 小时前
Vue 3 性能提升与 Vue 2 的比较 - 2024最新版前端秋招面试短期突击面试题【100道】
前端·vue.js·面试
yqcoder1 小时前
electron 中 ipcRenderer 的常用方法有哪些?
前端·javascript·electron