作为一个妹子,同时还是程序员,对这个问题非常感兴趣,那么写Ruby是一种什么样的体验?简的CTO LarryZhao曾经总结了两个字,对我而言两个字——爽,快。
一些看法 Rubyist在中国的Ruby中国社区正在聚集。由于人数少,大家都很团结,很多人都有义务建立和维护BBS。Rubyis非常友好,即使你是新手,从来没有接触过编程,也开始学习Ruby或RoR(像我一样),RubyChina有一个非常热情的Rubyist来回答你的问题。在线下,人们会定期组织一些聚会,而Ruby周二在上海是一个很好的活动组织。 一些想法中国有哪些好的创业公司使用Ruby ?流利的英语说,mint,Jane books,醒目的,奢华的圈子,燃烧KnewOne,cicada travel,love等公司架构:使用Ruby创业公司,技术团队一般不超过10人。在CTO的领导下,一般没有严格的等级制度(根据资历可以分为Ruby工程师和高级Ruby工程师),然后在各自的任务之后迅速开放。有能力且经验丰富的Ruby程序员往往是独立的。
关于薪资
当然,一些大公司,比如阿里和eBay,倾向于混合和匹配语言,因为它们必须是高效和稳定的。一些非核心功能或内容也可以用Ruby编写(前几天我看到阿里雇佣了一个Ruby工程师)。Ruby程序员能得到多少?有一次,我们会根据平台上的候选人做一份薪资报告,我们会横向比较。注意:1。Ruby程序员的工作寿命指的是Ruby的开发年限,这是Ruby开发3年多的时间,可能会跑到创业公司去做CTO2。Ruby程序员的平均年薪是14w,而互联网公司加奖金的平均工资至少是14w.
一:环境安装
1 安装brew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2 使用brew安装protobuf
brew install protobuf
3 查看protoc版本
protoc --version
4 查看protobuf版本
brew search protobuf
二:示例
gps_data.proto
syntax = "proto3"
option java_package = "com.dongwt.proto"
message gps_data {
int64 id = 1
string terminalId = 2
string dataTime = 3
double lon = 4
double lat = 5
float speed = 6
int32 altitude = 7
int32 locType = 8
int32 gpsStatus = 9
float direction = 10
int32 satellite = 11
}
执行命令
protoc -I=src/main/resources/proto --java_out=src/main/java gps_data.proto
三:pom依赖(版本号序号protoc版本保持一致)
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.17.3</version>
</dependency>
四:单侧
public class TestGpsProtobuf {
public static void main(String[] args) {
System.out.println("===== 构建一个GPS模型开始 =====")
GpsData.gps_data.Builder gps_builder = GpsData.gps_data.newBuilder()
gps_builder.setAltitude(1)
gps_builder.setDataTime("2017-12-17 16:21:44")
gps_builder.setGpsStatus(1)
gps_builder.setLat(39.123)
gps_builder.setLon(120.112)
gps_builder.setDirection(30.2F)
gps_builder.setId(100L)
GpsData.gps_data gps_data = gps_builder.build()
System.out.println(gps_data.toString())
System.out.println("===== 构建GPS模型结束 =====")
System.out.println("===== gps Byte 开始=====")
for(byte b : gps_data.toByteArray()){
System.out.print(b)
}
System.out.println("\n" +"bytes长度" + gps_data.toByteString().size())
System.out.println("===== gps Byte 结束 =====")
System.out.println("===== 使用gps 反序列化生成对象开始 =====")
GpsData.gps_data gd =null
try {
gd = GpsData.gps_data.parseFrom(gps_data.toByteArray())
}catch (InvalidProtocolBufferException e) {
e.printStackTrace()
}
System.out.print(gd.toString())
System.out.println("===== 使用gps 反序列化生成对象结束 =====")
}
}