在中国,做一个 Ruby 程序员是一种怎样的体验?

Python024

在中国,做一个 Ruby 程序员是一种怎样的体验?,第1张

作为一个妹子,同时还是程序员,对这个问题非常感兴趣,那么写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 反序列化生成对象结束 =====")

    }

}