0%

koala 学习笔记

相关技术栈:linux、golang

编写IDL

在业务项目目录下创建helloworld目录,进入该目录,然后创建编辑hello.thrift,该文件用来生成基本框架。输入以下内容:

1
2
3
4
5
6
7
struct Result {      //定义了一个Result结构体,为接口返回的结构体数据
1: string response,
}

service HelloService { //定义了一个服务,只有一个接口↓
Result HelloWorld(1:string name); //HelloWorld,该接口接收一个string参数,返回一个Result结构体,见上。
}

生成框架代码

键入如下命令生成框架代码,请下载最新版本的thrift工具

1
/path/to/soa_tools/thrift --gen go --packagePath micode.be.xiaomi.com/systech/helloworld hello.thrift

编译执行

执行 ./build.sh 进行编译,编译成功后,生成的程序在bin目录下。

阅读全文 »

moment项目需求

相关技术栈:redis、golang、MySQL、linux

做一个看板任务(照着微信朋友圈来,不过所有用户全部看成朋友即可)

  1. 用户可以登录,可以保持登录状态
  2. 用户可以发布一个想法,包含一段文字,0-4张图片(保存图片链接即可)
  3. 用户可以查看大家发布的说说,按时间顺序从新展示,需分页,一页20个
  4. 用户可以评论想法,也可以删除自己的评论
  5. 用户可以点赞/取消点赞想法
  6. 消息通知,点赞回复要通知所有和说说相关的人

不做界面,规划好接口,数据库,且完成即可
数据库尽可能满足 一对一 一对多 多对多 关系,不要求字段冗余
使用HTTP协议,框架自选(iris,beego等都行)

进度安排:

  1. 设计好数据库
  2. 规划好接口
  3. 做好登录认证
  4. 完成接口
阅读全文 »

xm_ip_service

相关技术栈:golang、MySQL、PostgreSQL、linux、Web

项目需求

通过IP地址(目前仅支持IPV4),进行IP地址相关地理信息的查询,查询过程分为,国内信息查询与国际信息查询两个查询方式。

接口定义

接口内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
struct GeoInfo {
1: string ip,
2: string geoip_country_code,
3: string geoip_country_name,
4: string geoip_city_code,
5: string geoip_city_name,
6: i32 error_no,
7: string geoip_province_code,
8: string geoip_province_name,
9: string geoip_carrier,
10: string error_msg,
11: i64 geoip_start_ip,
12: i64 geoip_end_ip
}

struct GeoRequest {
1: list<string> ipList,
2: string lang // en or zh-CN
}

service IPService {
list<GeoInfo> queryGeoInfoByIP(1:list<string> ipList);

list<GeoInfo> queryGeoInfo(1:GeoRequest req);

list<GeoInfo> queryI18nGeoInfoByIP(1:list<string> ipList);
}
阅读全文 »