个人在线工具网站开发实践第01篇——技术栈的选择

我是去年2024年中旬开始有做一个网站的想法。当时意气风发,踌躇满志,灵感爆棚,内心炽热如火,我觉得开发网站这件事儿对我来说不是问题。但是,最终的结果是,这件事儿成为了我当时不可能完成的任务。

我在有这个想法之后,第一时间我就注册了域名。当时我想做一个IP相关的在线工具集,之后我就开始研究做一个网站需要什么样的技术,从Python、Java、PHP这些技术中选择,看得云里雾里,网页怎么做我都一概不知。这时,我想起之前一位大哥和我说的话:“不要去学Java,去学Go,那是未来。”

当我将目光投向Go语言的时候,好巧不巧,团队内部正要准备开始做数据整合项目,对其他团队进行数据接口提供,而我们定方案,这个项目用Go语言进行开发。惊讶之余,开始学习Go语言,边学边开始项目开发。Go语言语法不难,一顿操作猛如虎,也算是上手了。

有一天,我看《Go语言圣经》,里面有第一章有一段是讲解Go语言实现一个Web服务器,用了非常少的代码。我觉得,Go语言可以做我第一个网站的服务器开发技术,简单方便易用,这样有助于开发效率。为此,我选择了GoFrame这个框架作为基础开发。为表纪念,当时还写了一篇文章:《我为什么选择用Go语言来创建我的个人网站?简单聊聊Go语言的好处》

可我终究还是把这件事儿想简单了。当研究GoFrame这个框架的时候,我头又开始大了,一入框架深似海。当时GoFrame提供一个网站的Demo,我调试这个项目,始终没太研究明白网页是怎么诞生的。后来我才知道,这个项目是前后端一体的项目。而我查了一下,目前前后端分离开发是主流。不过,这并不是问题。最终导致我没有继续研究下去的原因是,当时工作太忙,每天研究GoFrame的进度非常小。另外,由于项目的原因,数据整合项目暂时搁置,Go语言也开始渐渐淡出我工作日常(我现在都忘了Go语言的语法了)。再加上屡次研究网站开发碰壁,导致我在开发网站的积极性锐减。所以,用Go语言开发网站的个人项目,也随着公司里的数据整合项目一样,搁浅了。

到了去年年底,还是工作上的业务需求,需要做一个带网站页面的项目。当时定的是用.NET进行开发,而我想提建议使用Go语言,因为我的对.NET的印象还停留在用.NET只能运行Windows平台上,而无法跨平台的阶段。当我研究了.NET Core,研究了后面的.NET 8之后,我意识到我错了,而且是大错特错。看看.NET框架都有哪些新特性吧:

  1. 源代码开源。
  2. 支持跨平台,这个就和Java看齐了。
  3. 支持跨平台编译,Windows上可以生成Linux可执行文件。
  4. 可以将依赖库运行环境作为打包的一部分,一起部署。之前电脑上没有安装.NET Framework库,程序无法运行。
  5. 支持将依赖包和程序生成为一个单独的文件进行部署。
  6. .NET可以采用AOT提前编译技术,将程序直接生成二进制可执行文件,运行程序不需要再将中间代码翻译成二进制。
  7. 性能效率大大提高。
  8. ……

真是对.NET的更新刮目相看。另外,也怪自己有点落伍,没有观察其他行业的技术动态。其实,这些新技术特性都是好几年前的事儿了。于是,.NET框架作为了我开发服务器程序的首选。因为我是做VC++出身,我对Visual Studio开发工具更为亲切。于是,从网上又开始找.NET开发的相关视频。我刚开始创建的是Visual Studio 2022中的 Web MVC项目模板开发项目,跟着网上的视频,我也学到了一些服务器的开发技术,例如各种中间件、路由的设置、依赖注入、数据库迁移等。学得不亦乐乎。但这个MVC的项目也是前后端一体化的开发,有cshtml模板。当网络请求后,通过控制器感知,然后获取数据传入到cshtml模板中,之后程序将cshtml模板和数据整合成一个完整的页面返回。但我对做网页不是特别熟悉,我采用这种方式做网页非常不顺手。所以,我直接选择了前后端分离的开发方式。服务器采用Web API模板创建项目,只提供API服务接口支持,不再参与生成网页的事儿了。网页的开发,需要找更方便的技术代替。

在网上搜索一番之后,我的目光落在了Vue这个前端框架上。而且,很多视频教程都把Vue框架和Element UI组合放到一起来讲(目前最新的组合是Vue3+Element Plus)。Vue是前端框架,而Element UI将网页上常用控件元素封装成组件,例如按钮、表单、导航栏、布局等等。如果你想要用到什么组件,那么直接将组件的代码复制到Vue的项目里,即可完成页面的快速搭建。就这样,我也假装自己是前端开发了。但是,想成为前端专业人士,我觉得很难,还有很多深入的知识需要不断地学习。

就这样,主要的开发工具都找齐了。网站采用前后端分离的方式开发,前端采用Vue3+Element Plus,后端采用.NET8框架。其中,前端的开发还需要一些基础知识,如HTML、CSS和JS这“三剑客”不能落下。在此过程中,我也找到了一些优秀的网络教程:

.NET的开发:

ASP.NET Core 3.x 构建 RESTful API(已完结)

ASP.NET Core MVC入门到进阶

前端的开发的视频:

全新2022版WEB前端140集为初学者而著的精品课

前端开发之Vue项目实战_Element-UI

我的网站最终也确定了想要做的方向。之前想做IP在线工具,我觉得难度较大。目前,我调整战略,做相对比较简单的个人在线工具网站。在线工具网站从今年的2月25日正式上线,中间又更新了两个版本。最终呈现的效果如下:

虽然他看起来很不起眼,但是和2月25日上线的第一个版本相比,差别巨大。这个期间,我的设计想法也在不断地改变,包括多国语言的设置。这个语言设置,我也在准备调整新的方案(这个地方确实超前,因为目前网站有效访问量几乎为0,爬虫和恶意扫描倒是不少)。还有界面的整体布局,也和最初的版本做了大的调整。以后有机会,我也想把网站的页面设计思路和大家分享一下。

目前,这个网站的大部分的功能都没有实现。这些工具类的实现,我原计划是这周完成,使使劲这周完成应该问题不大。但是,这周我忙着写CSDN博客呢,就把这事儿放下了。下周再统一完成剩下的内容。

接下来,本系列的第二篇,我想和大家分享一下我做网站对于用户界面的设计,以及布局的思路。欢迎大家关注,也感谢大家的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值