helloworld.net的建站故事与技术选型

待兔
• 阅读 2057

helloworld.net的建站的故事与技术选型

大家好,我是待兔,也是 helloworld.net开发者社区的创始人之一,自从2021年1月18号,helloworld.net 正式上线当天就引来了很多的技术人的关注,其清爽的界面,人性化的操作交互,得了不少网友的好评,大家有表扬的,有提出不足的,有给出很多中肯的建议的,不过大家最关心的,是 helloworld.net 背后的故事以及用到的技术栈是什么?技术框架如何搭建的?

为了满足大家的好奇,团队一致认定我写一篇文章解答上述问题,理由是我文笔比较好(其实真实原因是他们都太低调了,不愿意出来说,哎,坑了我了.... , 写这一篇文章死了好多脑细胞,比写代码难)

我们为什么要做 helloworld.net 技术社区?

喜欢,热爱coding, 喜欢互联网产品,追求完美,虽然现在有不少的技术社区,但是有一些技术社区广告太多,格式混乱,垃圾信息太多,当然也有的社区做的比较好,但是我们觉得多一个平台多一个选择,我们是想从技术的角度出发,想做一个不太一样的平台,也算是一个尝试。

其实上线之前我们心里一直是忐忑的,会不会上线后没有人访问啊,会不会被人骂啊..... , 好在上线后,除了批评声,还有表扬的声音,心里算是有点谱了

helloworld.net 给力团队

首先呢,做 helloworld.net 不是我一个人,是一个团队在做,有前端,后端,移动端,设计师,产品经理,运维,爬虫,甚至还有已经拿到好几个大厂offer的研究生,我在其中只是担任后端开发。 不过我们团队最神奇的是,前端那哥们以前居然是个水手,去过大西洋,太平洋,上万公里,也经过索马里(还好没遇到海盗,哈哈...),水手转前端,这跨度,够牛了吧,整个网站都是这哥们负责的,我们都叫他水手。

除了有水手,也有在国内某个技术平台有上万粉丝的技术大牛,当时我还得专门去上海见过这哥们呢(刘备三顾茅庐才搞定诸葛亮,我们去一次上海就搞定了,哈哈,赚到了)

还有我们的设计妹子,不仅人长的漂亮,而且非常有才华,从网站设计,APP设计,Logo,海报,头像,定制T恤,无所不能全程参与(设计妹子还没有男朋友哦,想要联系方式的可以私聊我哦)

每个人都不一样,都有自己独特的地方,这里就不一一说了。

helloworld.net 的技术选型

偷偷告诉大家啊,我其实不是做后端的,只是以前接触过PHP,嗯,就是世界上最好的语言,没有之一的。 项目是在2018年成立的,当时只能我来做后端了,因为他们连PHP都没有接触过,哈哈,PHP坑我。

闲话少说,说正事,最初想用java Spring那一套,于是就上网找了个SpringBoot的视频,看了一个星期,还是晕晕乎乎的,全是配置,我应该用什么配置?配置写在哪?用哪个注解?注解里面写什么?啊啊啊,头实在是大,算了,实在搞不明白,可能是我比较笨,搞不定,不搞了,放弃java了。至于PHP嘛,还是算了吧,也是因为自己不喜欢吧,所以吧,公司里面用的框架好与不好,全靠,某一个人的决定的。

1 后端技术选型

java那一套搞不定,php又不想用(我真是作啊),那只能考虑其它的了,目光锁定了go身上,听说这玩意性能好,简单又简洁,而且没有那么多的配置,于又花了一个星期的时间学go,顿时有种找到了知己的感觉,这go太好用了,连nginx都不用安装了,java那一套并发机制,各种锁,各种同步,各种原子操作,唤醒,通知等,在go里面全没有了,go用了管道的方式,让人理解上更顺其自然了,写并发更容易了,而且是语言层面上的。

goweb也很强,自带的http,用go写的http程序,部署方便,不用像java那样装JDK,装tomcat等等,go写好的程序直接打包成一个二进制文件,扔到服务器任何一个目录下执行就完成了,甚至连nginx都不用安装,这么多优点,怎么可能不用

这太爽了,这实在是太爽了,当然我们现在是用了nginx的,主要是接口服务不想对外暴露,而且也要做反向代理。但是有那能力不用和没有,是两码事

所以,最后决定用go作我们的后端语言,而且go最火的web框架gin并没有用,因为mvc的功能没有go的另一个web框架iris的好,所以最后我们选择了 iris ,这当然也是一个非常了用的框架

所以后端用go语言,web框架用 iris

2 前端技术选型

前端技术也是我定的,虽然我是写后端的,但是那个时候水手还没加入呢,所以哪个简单选哪个 当然是react, vue 中选一个了,但是vue好像入门更简单些,就选了vue

后来水手加入以后还抱怨,这谁选的vue,因为水手更喜欢react,但是没办法,总不能推倒重来吧,谁让你不早点来。哈哈,只能入坑了。 当然并不是说vue不好,只是因为我当时想选个对于我来说简单点的。

但是vuereact都是单页面程序,技术社区是要百度收录的,又是百度,人家google都支持单页面收录了,就百度不支持,没办法只能做服务端渲染了,也就是 SSR

  1. 回到60年代,服务端套模板 我负责后端啊,打死我也不想这样,不能,所以坚决pass掉了
  2. nuxt,这是vue生态的,node做服务端渲染 好像没得选了,只能选这个了

3 数据库的选型

像大多数公司一样,数据库的选择,那就是mysql,开源免费又用的人多,出了问题也好解决,听说mysql 8.0 性能比之前的5.0提高了1倍,也不知道是不是真的,反正新项目用最新的就是了

不过在选 mysql之前,是考虑过 postgresql

个人觉得这个postgresql要比mysql的性能好,一直想用这个 只是运维大哥不让用,因为他只会mysql但是给的理由是:mysql出问题了好解决,用的人多,解决方案多。哈哈。。。。好吧,听大哥的没错

4 APP的技术选型

一句话,flutter,我们可没有那么多人,那么多精力,所以找一套跨平台的框架是最适合的了。在研究了flutter之后,觉得会有点坑,但是应该能解决,影响不是太大

所以果然用flutter写了。

以上就是helloworld.net的PC网站,后端,前端,APP的技术选型,有其它的疑问的话可以加我微信 daitukeji 交流技术,也欢迎加入我们的helloworld官方技术交流微信群

在这里,helloworld技术团队谢谢大家的关心和支持,我们会继续努力,继续优化,推出更多我的功能,为我们的技术人的成长贡献一份力

最后送给大家一句话: 不忘初心,未来可期

我的微信: daitukeji

以及一张我在家的 helloworld的办公环境照片

helloworld.net的建站故事与技术选型

点赞
收藏
评论区
推荐文章
光头强的博客 光头强的博客
4个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
4个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
1年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序selectfromtable_nameorderiddesc;2.按照指定(多个)字段排序selectfromtable_nameorderiddesc,statusdesc;3.按照指定字段和规则排序selec
Wesley13 Wesley13
1年前
PHP中的NOW()函数
是否有一个PHP函数以与MySQL函数NOW()相同的格式返回日期和时间?我知道如何使用date()做到这一点,但是我问是否有一个仅用于此的函数。例如,返回:2009120100:00:001楼使用此功能:functiongetDatetimeNow(){
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
NVIDIA安培架构下MIG技术分析
关键词:NVIDIA、MIG、安培一什么是MIG2020年5月,NVIDIA发布了最新的GPU架构:安培,以及基于安培架构的最新的GPU:A100。安培提供了许多新的特性,MIG是其中一项非常重要的新特性。MIG的全名是MultiInstanceGPU。NVIDIA安培架构中的MIG模式可以在A100GPU上并行运行七个作业。多实
helloworld_34035044 helloworld_34035044
7个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
密钥管理系统-为你的天翼云资产上把“锁
本文关键词:数据安全,密码机,密钥管理一、你的云上资产真的安全么?1.2021年1月,巴西的一个数据库30TB数据被破坏,泄露的数据包含有1.04亿辆汽车和约4000万家公司的详细信息,受影响的人员数量可能有2.2亿;2.2021年2月,广受欢迎的音频聊天室应用Clubhouse的用户数据被恶意黑客或间谍窃取。据悉,一位身份不明的用户能够将Clubho