从0到1写一个网站(1)

1,272 阅读5分钟

开篇

最近想写一个连载的系列文章。主题是《从0到1写一个网站》。写这个主要有几点原因,

  1. 自己的个人网站yasinshaw.com已经有一年多没有加新的功能了,上次更新还是在19年的10月份,现在虽然能稳定运行,满足基本功能,但还是有点简陋;
  2. 最近想学点以前没有深入学习或者实践过的技术,比如前端的vue3和TypeScript,比如后端的kotlin语言、响应式编程、DDD实践等;
  3. 也能作为一个挺不错的公众号文章素材,能够保持比较高频率的输出,把自己如何从0到1写一个网站的用博客写出来,分享给更多的朋友,尤其是对全栈感兴趣的朋友;
  4. 想把它作为一个开源项目,顺便学学如何运营一个开源项目。

为什么是个人网站?

一个是自己平时需要用,另一方面之前写过,也有一些经验和思考,如果写其它类型的网站,自己又要兼顾学习和使用新技术,可能会比较累。

所以就写个人网站吧,如果这个项目写完了,后面再考虑写个电商网站或者自己一些创意idea的flutter APP。

会用到哪些资源?

会用到一台阿里云的服务器,大概1核CPU, 1G, 1M的最小配置款。

域名也是在阿里云上万网申请和备案的。因为备案比较麻烦,所以我打算沿用自己之前的域名yasinshaw.com。因为开发过程还要继续使用自己的个人网站,所以www, admin,file这些二级域名不会动。新的应用在开发阶段会使用newPortal、newAdmin等带有new的二级域名。等开发完成后再切换过去。

存储会用OSS,因为需要CDN,特别是图片。之前用的七牛云的,感觉还不错,现在也打算继续沿用。

SSL证书,用阿里云和七牛的免费证书。缺点是必须一个二级域名就要申请一个证书,而且要每年更新一次。但优点是免费的,还是挺香的。

所以严格来说并不是真正的“从0到1”,云平台的一些资源还是会用现成的。这部分也不会单独写文章介绍,毕竟跟技术关系不大,去云平台花钱买资源,然后简单设置一下就行了。

会用到哪些技术?

前端

前端的话,会用Vue3了。但我也很久没有关注前端了,Vue3的一些新特性我也不是特别了解,只能一边做一边看看了。TypeScript其实比较纠结要不要用,因为目前感觉ES已经能够满足自己项目的需求了,且目前没有学习过TS,不知道有没有足够的时间去学习TS。不过TS是趋势,看情况是否使用吧。

UI库

UI库,之前用的是vuetify,感觉也挺不错的。但这次想尝试一下拟物风格,不知道vuetify支不支持。如果不支持的话,到时候再去搜一下有没有合适的UI库。

后端

后端主要用Kotlin,因为想学习一下这门语言,听说挺香的。结合最新版的SpringBoot。应该会用到DDD结合整洁架构,之前有写过一些文章,趁这次机会实践一下。不打算用SpringCloud,因为机器资源太少,项目也比较简单,目前也没有深入学习的打算,用不太上。

DB

DB还是用MySQL了。这块暂时没有特别的需求,也没有时间和精力去学习其它DB。等以后再说吧。

搜索

搜索还是用ElasticSearch,单机部署,加个中文分词插件。这块之前做过,有经验。

缓存

缓存目前的个人网站是用的Redis,但是目前来看其实用不上。就单机的情况,其实用内存缓存会更好一点。

容器

Docker会用。不过之前用Docker用得比较简单,是用命令手动去启动的一些服务或中间件。这次打算用上Dockerfile,结合CI来更好地做DevOps。不用用到K8s和ServiceMesh,因为没有必要……

项目会写多久?

这个真不太好估算。大概期望能够在年前完成目前已有的基本功能吧。尽量保证每天都写一点,但是如果要同时更新系列文章的话,可能会有点忙不过来,但肯定是会经常更新代码的。

这段时间会写其它技术文章吗?

会的。其它技术文章周末会写一写,还是保持周更。跟这个系列文章不冲突。但是最近更新的技术文章可能跟自己最近学习或者思考的东西相关,毕竟有输入才有输入,所以其它技术文章的主题可能跟项目上用到的技术有一些关联。

求个支持

我是Yasin,一个坚持技术原创的博主,我的微信公众号是:编了个程

都看到这儿了,如果觉得我的文章写的还行,不妨支持一下。

文章会首发到公众号,阅读体验最佳,欢迎大家关注。

你的每一个转发、关注、点赞、评论都是对我最大的支持!

还有学习资源、和一线互联网公司内推哦