你好,helloworld.net上线已经将近半年了。 一眨眼就过去了。 在这半年中,重复了近10个版本,优化了很多体验。 交互的不足之处在于,同时我们的安卓APP也上线了。 因为苹果公司还在申请开发者账户,所以还没有上线

在这半年中,网民们花了很大力气,提出了很多建议和优化,很多网民表示愿意为helloworld开发者社区出力。 在此,我感谢这些支持我们的用户。 helloworld开发者社区一如既往地坚持免费、共享、干燥的精神创建程序员自己的技术社区

今天,我们来谈谈go、iris、nuxt等技术在helloworld开发者社区中的应用。 因为我们的用户在进行研究开发,所以看到网站的第一反应是这个网站是用什么样的技术制作的。

下图是helloworld.net的框架图

nuxe(hello world是我爱你-编程之家

我有几个问题。 用户感兴趣。 请先回答几个问题

一 为什么选择了 Go 而不是 java ?

我不想回答这个问题啊。 因为容易引起程序员之间的战争。 语言之争,是非多,不清楚,在这里说明

Java是现阶段最成熟、最稳定的,相关库的第三方库、解决方案毫无疑问是最完整的Go我个人认为是未来的语言。 虽然现在各方面的库、框架没有Java那么多,但那是因为Java已经很多年了,Go现在已经有的框架、库,至少在我写这个网站上,使用了足够的Go真的虽然Java的SpringBoot套装很强大,但是和Go的iris框架相比,我喜欢太重、太重、太重、Go的简洁。 Go的性能,让我选择使用它,用Go iris和Java的SpringBoot做简单的测试,写界面,用Go和Java

关于go和java之争,就像当时的java和php之争一样,既然有争议,那么得出结果就一定需要一个过程。 在这个过程中,可能会有很多人战队,但最终会代替老的好。 之后,就像java慢慢地挤压了php一样

以上是个人看法,请不要喷我

go的web框架中也有beego、gin、iris、Echo等很多东西,最有名的是beego,现在多用gin

由于iris的demo丰富,mvc的功能丰富,所以当时选择了iris。 其实我为gin和iris的选择而烦恼,但最终选择了demo更丰富的iris

要建立

二 服务端渲染怎么做?

技术社区,不能使用vue、react单纯地以写单一页面的方式写网站。 百度上不知道啊。 不收录啊

作为vue和react各自非常好的ssr解决方案,vue为nuxt,官方也推荐使用。 react是下一个。 这两个人的ajdxmy、ssr程序名字相似。 相差1个字符

helloworld.net早期的时候,造人,用昵称等兔子。 一个人做,而且不会写前端。 现在学的前端,vue比react容易,所以当时学的是vue。 那个nuxt当然也必须使用。

三 服务器配置

服务器是在腾讯云买的。 买了4台。 花了五万多。 是4核8G的。 带宽也还可以。 现在足够了,到目前为止有100米的,16核32G的从机房租,但这现在成了测试机

数据库什么也不说mysql

现在,让我们来看看下面的框架图

nuxe(hello world是我爱你-编程之家

当用户在浏览器的地址栏中输入www.helloworld.net返回车里时,请求首先发送到nginx,然后在nginx上进行转发处理,所有请求都发送到了node服务器,也就是nuxt的服务器。

nuxt请求接口服务。 这是我们在开发常规业务的时候,返回json数据,解析数据后nuxt在接收到接口返回的json后,动态生成网页,返回nginx,nginx返回用户。

用户浏览器现在接收渲染的html,而不是客户端渲染

请理解,nginx是http服务,在节点上跑nuxt的也是http服务,api接口也是http服务

一个请求等于说经过了几个http服务

nginx http负责转发请求的节点上的nuxt http负责ssr。 也就是说,请求接口服务。 将返回的数据动态渲染为在htmlapi服务器上运行的http负责缓存。 从数据库中提取数据的人可能会担心。 在中间的node上运行的nuxt始终是node,有些公司会反对在服务器上运行的node。

我们也有过这样的担心,但是后来实际测试使用的时候,没什么大问题,所以请放心使用

api接口的后面是redis、es搜索和mysql主从服务

以上是helloworld开发者社区整体的技术堆栈和选型过程,在技术选型时,必须根据自己的实际情况进行选择

而且,还需要慎重考虑未来的技术趋势等

最后,再次感谢大家的支持。 我们将一如既往地建立一个体验良好的程序员自己的技术社区