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

待兔
• 阅读 2879

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的建站故事与技术选型

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这