使用go

go语言的好处不言而喻:

效率问题,

无论是开发效率还是运行效率至少都兼顾了,比较适合中国国情。

运行

可以以脚本运行,可以编译结果运行

跨平台

没有大问题

java

java1.7 后的非阻塞做的可以了 大量I/O的情况下,还没有好的解决方案,可以使用分布式,中国后台大量使用了java,以至于不懂技术的人说到后台就认为是java

node

node 很好,很喜欢,但是太脚本化,一般单线程运行,可以多进程运行,可以使用分布式,在运行脚本测试方面,其实比python更加快捷简单,效率高,当然并非使用python效率就不高,python的AI大量模块都是c,c++写的,node也是如此。

go

Goroutine 很好,不多说,使用就行,同样可以使用分布式,各方面比较先进

c c++

效率很好,可惜为此要引入的库时很不方便,编译一大堆库,要效率别无他法,尽量自己写代码,中国国情。。。。。

选择

所以使用go node java,现在偏重于go,其他效率方面的,c 第一 没有之一,如 linus 写的git ,他用c 写东西,那就是开发效率和运行效率一样高。

例子,五分钟httpserve 和 mysql 准备好

show me the code

先写一个数据库连接获取数据的

  package mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx"
)var DB *sqlx.DBfunc initDb() error {var err errordsn := "root:root@tcp(127.0.0.1:3306)/test"DB, err = sqlx.Open("mysql", dsn)if err != nil {return err}DB.SetMaxOpenConns(100)DB.SetMaxIdleConns(16)return nil
}type User struct {ID   int64          `db:"ID"`Name sql.NullString `db:"name"`Age  int            `db:"age"`
}func testSqlxQuery() {sqlstr := "select ID,name,age from user where ID = ?"  var user Usererr := DB.Get(&user, sqlstr, 1)if err != nil {fmt.Printf("select failed, err:%v\n", err)return}fmt.Printf("user:%#v\n", user)
}func main() {err := initDb()if err != nil {fmt.Printf("init db failed, err:%v\n", err)return}testSqlxQuery()
}

运行立刻得到结果,速度效率兼顾,当然自己需要

加上httpserver,然后从httpserver返回结果


package mainimport ("github.com/gin-gonic/gin""fmt"//"database/sql"_ "github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx"//"net/http"
)var (userName  string = "root"password  string = "root"ipAddrees string = "localhost"port      int    = 3306dbName    string = "test"charset   string = "utf8"
)type User struct {ID int `db:"ID"`Name string `db:"name"`Age int `db:"age"`Address string `db:"address"`
}func getUser(Db *sqlx.DB) ([]User) {var users []User  // 这里创建的是存放结构体的切片if err := Db.Select(&users, "select * from user where ID > ?", 0); err != nil {fmt.Println("Select ERROR:", err)return nil}fmt.Println(users)return users
}func getUserRecord(Db *sqlx.DB,id int64){result, err := Db.Exec("select * from user where id = ?",id)if err != nil {fmt.Printf("delete faied, error:[%v]", err.Error())return}num, _ := result.RowsAffected()fmt.Printf("select success, affected rows:[%d]\n", num)//return result()
}func connectMysql() (*sqlx.DB) {dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", userName, password, ipAddrees, port, dbName, charset)Db, err := sqlx.Open("mysql", dsn)if err != nil {fmt.Printf("mysql connect failed, detail is [%v]", err.Error())return nil}Db.SetMaxOpenConns(20)Db.SetMaxIdleConns(15)return Db
}func main() {var Db *sqlx.DB = connectMysql()if Db == nil{fmt.Println("db error")}defer Db.Close()x:=getUser(Db)r := gin.Default()r.GET("/ping", func(c *gin.Context) {c.JSON(200, gin.H{"message": "I am qianbo",})})r.GET("/get/user",func(c *gin.Context){c.JSON(200,gin.H{"data":x,})})r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

浏览器里输入http://127.0.0.1:8080/get/user
可以看到返回的json结果,我会继续写完整,go 语言和c,c++配合来写系统,事半功倍。

使用go来做系统,如何比java node php 更 简单相关推荐

  1. java简单手机脚本编写,Java认证:Java平台上更简单的脚本编写方法

    本文向各位介绍一下Java性能监控小技巧:"JDK附带分析器.远程连接进程.跟踪统计.为离线分析创建一个堆转储.JConsole并不是高深莫测的." 现在,许多 Java 开发人员 ...

  2. html5在线客服系统,产品解析|Live800在线客服系统,让服务和营销更简单

    随着互联网+时代的到来,消费者之间的关系互联正击穿以前人与人之间的圈层链,消费者的声音被放大.服务意识提升到新高度,企业不再闭门造车,开始听取用户的声音,采纳用户的意见,注重用户的需求. 于是,越来越 ...

  3. 【Java】Spring更简单的读取和存储

    文章目录 Spring更简单的读取和存储对象 1. 存储Bean对象 1.1 前置工作:配置扫描路径 1.2 添加注解存储Bean对象 1.2.1 @Controller(控制器存储) 1.2.2 @ ...

  4. 大聪明教你学Java | EasyExcel - 用更简单的方式操作Excel

    前言 我们在开发应用系统的时候经常遇到操作或解析 Excel 的需求,我们在实现此功能的时候也都是借助 Apach POI 去操作 Excel,但是使用过这个框架的小伙伴都知道,这个框架并不是很好用, ...

  5. php和java做众筹系统哪个好,Java版众筹系统和PHP众筹系统对比分析

    众筹系统是为从事众筹行业设计开发的,用于满足众筹运营者和投资之间操作管理的一个平台.目前市场主流的众筹系统主要有java版和php版.今天小编就来介绍下这2个版本的众筹系统有何区别. Java版众筹系 ...

  6. 做一个完整的Java Web项目太难了,因为这些你不会!

    作者:元素侠Jason 链接:https://blog.csdn.net/JasonLiuLJX 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收 ...

  7. 在ubuntn kylin系统eclipse中Java语言helloworld程序

    ubuntu kylin 系统也叫优麒麟 ,是一个有中国特色的操作系统.个人认为ubuntu kylin系统的界面做的很好,在安装系统的时候,就感觉是一个很美的系统.它很多地方都能有windows的功 ...

  8. java如何对一个表达式开根号_作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?...

    0基础就找资料学习吧,建议不要看书,选择视频更好,对于新手来说,书本如果在没有人指导之下去看基本上很难看懂 在你学习Java之前一定要去了解一下这门语言,千万不要脑子热就选择来这行 如何系统的自学Ja ...

  9. 做一个完整的Java Web项目需要掌握的技能

    转自:  https://blog.csdn.net/JasonLiuLJX/article/details/51494048 ------------------------------------ ...

最新文章

  1. 简单好用的中文分词工具之HanLP的安装与使用
  2. Java:使用synchronized和Lock对象获取对象锁
  3. python在哪下载-2018版Python教程从哪儿下载
  4. 数据库acid简介(一)
  5. JUC锁-互斥锁ReentrantLock(二)
  6. [李景山php]每天TP5-20170111|thinkphp5-Model.php-4
  7. 单链表的增、删、查、改、python实现,超详细讲解
  8. linux脚本是什么语言,Linux学习之Shell脚本语言的优势是什么?
  9. linux判断网站被采集,网站被采集的几个处理方法(非技术)
  10. Axure 经典实例高保真原型下载(Axure高保真酒店管理交互组件连锁酒店erp酒店企业web端后台管理财务管理会员管理网销管理报表管理))
  11. 如何快速将文件中的空格更换成逗号(图文详解)
  12. 下载devc++和codeblocks记录
  13. 阿里首席架构师分享的Java工程师职业规划
  14. 使用CSS3 Animation实现输入文字动画
  15. Is It A Tree?(并查集)
  16. 11 Component Composition
  17. win10无法启动修复服务器,win10 bcd损坏无法开机怎样修复_win10系统bcd损坏开机进不了系统解决方法...
  18. java TIFF转JPG并压缩
  19. 新一轮勒索病毒变种全球肆虐 中国已遭攻击
  20. PCI Device Class Codes

热门文章

  1. MyEclipse中搭建spring-boot+mybatis+freemarker框架
  2. indesign照片放入太大_照片打印机,小米、华为到底哪家强?
  3. 网易云音乐刷听歌量_「PC端」解锁网易云音乐灰色歌曲,让你听歌不用东跑西跑...
  4. 马斯克开始行动:下调Twitter Blue订阅费 禁止广告
  5. 苹果年底推出搭载M2芯片MacBook Air和MacBook Pro
  6. 三星公布三款新型车用芯片 向大众供应
  7. 小米汽车总部正式落户北京,注册地为北京经济技术开发区
  8. 西门子宣布美国充电桩扩产计划
  9. 李彦宏:百度智能汽车预计2023年和大家见面
  10. 有点贵但卖光了!这款旗舰要火了吗...