🎣 适合前端程序员成为独立开发者的“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个独立产品小孩

最后

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

相关推荐
L耀早睡11 分钟前
mapreduce打包运行
大数据·前端·spark·mapreduce
HouGISer24 分钟前
副业小程序YUERGS,从开发到变现
前端·小程序
outstanding木槿30 分钟前
react中安装依赖时的问题 【集合】
前端·javascript·react.js·node.js
霸王蟹1 小时前
React中useState中更新是同步的还是异步的?
前端·javascript·笔记·学习·react.js·前端框架
霸王蟹1 小时前
React Hooks 必须在组件最顶层调用的原因解析
前端·javascript·笔记·学习·react.js
专注VB编程开发20年1 小时前
asp.net IHttpHandler 对分块传输编码的支持,IIs web服务器后端技术
服务器·前端·asp.net
爱分享的程序员2 小时前
全栈项目搭建指南:Nuxt.js + Node.js + MongoDB
前端
隐含3 小时前
webpack打包,把png,jpg等文件按照在src目录结构下的存储方式打包出来。解决同一命名的图片资源在打包之后,重复命名的图片就剩下一个图片了。
前端·webpack·node.js
lightYouUp3 小时前
windows系统中下载好node无法使用npm
前端·npm·node.js
Dontla3 小时前
npm cross-env工具包介绍(跨平台环境变量设置工具)
前端·npm·node.js