shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数900
阅读:3074回复:0

Golang周报第一期:gorm2、微服务优势、云原生、好程序员

楼主#
更多 发布于:2020-09-02 12:59


  由于我们网站主做Go技术栈条线课程,在学员的建议下决定做个golang周报。定期写一些 golang相关知识点、好库推荐和个人观点的表达。希望大家喜欢,文风可能比较犀利,恐会引起不适。
   每周不定期更新2篇左右。

  一、GORM 发布2.0
      看这里https://gorm.io/zh_CN/docs/v2_release_note.html  
     国内的ORM有几个,我个人用的最顺手的是Gorm ,虽也有缺点,但是再漂亮的脸蛋上都可能有雀斑。关键是要顺手,这里希望gorm越做越好。不排除后面我们要针对gorm做个脚手架
     当然,这里需要说的是,做项目并不能过度依赖ORM。看到很多同学脱离ORM后一句稍微复杂的SQL都写不出,这是不对的。

   二、gopsutil 性能监控
     用过python的同学可能会知道有一个库: psutil 。提供了便利的方法获取系统信息:如CPU,内存,磁盘,网络等,还可以判断进程是否存在、获取进程列表、获取进程详细信息等  适合做一些诸如采集系统信息和监控的服务。
     那么Go也有一个性能不错的的移植库。https://github.com/shirou/gopsutil

  三、关于GO处理浮点数精度问题
   1、go有个第三方包deciaml  https://github.com/shopspring/decimal
   2、数据库层面,如mysql,可以用mySQL的decimal类型。
     不过有个缺陷,到了Go代码层面,尤其是做一些rpc神马的,没有原生的decimal类型支持。  所以 可以考虑把价格字段拆成 2个int 。一个存小数点左边,一个存小数点右边。 到了代码层面都用 int就OK了



  四、Go和java做微服务哪个更有优势。
   此问题来自群友提问。
   几年前  确实 有“java和Go”优势不优势的问题。现在已经进入云原生的年代,那么“”谁比谁好“”这件事是不存在的。
   1)GO做微服务也可能用到java技术栈的 cloud 组件(如nacos、sentinel)
    2)java做微服务 也可能用GO技术栈的cloud组件(如jaeger)。
   关键的,这两者都离不开docker、k8s, service mesh    (这些大部分是Go的天下)
    单纯论 web框架,在不同领域和业务场景 确实有优势不优势之说。 譬如某java框架在社区上比某Go框架全且更强大。Go某框架在某些场景中,开发效率比java某框架高一些  
     但是在微服务角度,这两者只有你侬我侬、你是老汉我推车,没有互相伤害


   五、关于“敏感词过滤“
    这是一个学员提出来的问题。 除了使用关键字 一个个替换还有啥办法? 或者说算法吗?
    这里稍稍提示下。 除了硬替换,比较常用的算法就是前缀树 ,之前有个课程 我们讲到过golang实现前缀树的简单做法
     前缀树 主要用在 框架的路由上  。譬如/service/user/list  和/service/user/detail  .他们都有公共前缀  /service/user/ , 利用前缀树查询性能更高

    敏感词过滤也一样,譬如 来自 日本/美食,/日本/苍老师 。。。 你懂~~~


   六、最后不忘宣传下我们。
     大约是两年前正式开始做go技术栈课程,由于我们本身是软件公司,因此很多时候的课程素材取自于实际项目,所以很少会按部就班的教学,这点敬请谅解。从最早的Go单框架课程到微服务,再到目前正在逐步进入go云原生技术栈课程,越做越嗨。 Go的精髓在云原生、中间件,web开发只是其中一个很小部分。
     很多同学有个小误区,一接触新语言立刻就是想把它用来做门户网站,做爬虫(想一想python)。学习一个语言,首先要了解它的擅长点,技术栈的领域是什么,然后选择适合自己的方向扒了猛干~~~~,同时还要不断关注市场方向,很多技术栈也是在市场的演化中不断进行调整,从而形成目前的领域。
     这里再次放出我们目前Go学习路线, http://b.jtthink.com/read.php?tid=564  (每个月都会有进化和调整)  。明年主要的路线进入云原生方向,更偏向原理级,敬请期待~~~


    另外,想做一个好程序员?
   其实是没有“最好的程序员”的,必须是一个“不断进化的程序员”才是好程序员。
 

最新喜欢:

xuanyingcoolzxuanyi...
会讲故事的程序员
游客

返回顶部