编辑
2026-06-23
undefined
00

先来简单说下笔者的经历,笔者的研究生专业是电磁场与微波技术,毕业后跨专业选择进入看了一家互联网OTA公司,从事前端开发岗位,19年底加入到字节后又逐渐从前端、全栈转成了全职后端开发,这其中伴随着业务的转变带来的转型需要,也有一部分是自己有强烈的学习意愿,有成长的诉求。虽然我并不推荐你经常这样去做,因为这会让你之前的知识积累、积攒的经验以及所带来的竞争力有所削弱。但于我而言,每一次的转变都非常具有挑战性,我也顺利完成了角色的过渡和转变,这种成长是潜移默化的,我也试着写下我自己的经验之谈,希望能给大家后续发展带来一些借鉴。当然了,这里很多的点虽然只适用于互联网工程师,不过对各行各业的技术类工程师,其中很多基本素养和成长路径究也大抵如此。

编辑
2026-06-23
undefined
00

什么是Thrift?

Thrift 是一套轻量级、跨语言、全栈式的RPC(远程过程调用)解决方案,最初由Facebook开发,后面进入Apache开源项目,包含了代码生成、序列化框架和RPC框架三大部分。大致相当于protoc + protobuffer + grpc。三部分的具体作用如下:

  • 代码生成:Thrift提供了一个IDL(接口描述语言),用于定义数据类型和服务接口。通过Thrift编译器,可以根据IDL文件生成不同编程语言的代码。这些代码包括数据结构、客户端和服务器端的接口,使得不同语言的系统可以无缝地进行通信。
  • 序列化框架:Thrift提供了高效的序列化和反序列化机制,用于将数据对象转换为字节流进行传输。Thrift支持多种传输协议(如二进制、压缩、JSON等)和传输层(如TCP、HTTP等),以满足不同的性能和兼容性需求。
  • RPC框架:Thrift包含了一个强大的RPC框架,用于实现远程过程调用。通过Thrift生成的代码,客户端可以像调用本地函数一样调用远程服务,而服务器端则可以方便地实现这些服务接口。Thrift的RPC框架支持多种传输协议和传输层,确保了跨语言和跨平台的通信一致性。
编辑
2026-06-23
undefined
00

Go语言中的map是一种内置的数据结构,用于存储键值对。map提供了快速查找、插入和删除操作,是实现字典和哈希表的基础。大多数情况下,它都能在O(1)的时间复杂度下实现增删改查功能,若在极端情况下出现所有key都发生哈希碰撞时则退回成链表形式,此时时间复杂度为O(N)。由于哈希表在使用过程中可能会发生内存分配,因此哈希表一般是不允许并发读写的。

编辑
2026-06-23
undefined
00

ElasticSearch 是什么?

ElasticSearch(下文简称ES)是一个分布式的开源搜索和分析引擎,底层基于Lucene,适用多种数据类型,对外提供简单易用的 Restful 风格的 API 。 lucene是一个开源搜索工具包,基于java编写,其主要功能就是索引和搜索

使用场景

第一想到的场景就是各大搜索引擎,底层可能或多或少有ES的身影。

除此之外,在互联网领域,ES的主要应用场景还包括:

  • 站内搜索、应用程序搜索
  • 日志管理、监控、数据分析(通常使用ELK套件)

ELK 是一个由 Elasticsearch、Logstash 和 Kibana 组成的开源数据分析和搜索解决方案。

  • Elasticsearch(数据存储和搜索引擎):一个分布式搜索和分析引擎,基于 Apache Lucene 构建。它主要用于存储、搜索和分析大规模数据。
  • Logstash(日志采集和处理):一个数据收集和处理引擎,能够从各种来源(如日志文件、数据库、消息队列等)收集数据,并将其传输到指定的存储目标。
  • Kibana(数据可视化和分析):一个数据可视化和分析工具,专为与 Elasticsearch 集成而设计。它提供了丰富的可视化组件和交互功能,帮助用户探索和分析数据。
  • 基础设施指标和容器监测
编辑
2026-06-23
undefined
00

关于元素的大小

关于尺寸的属性

  • clientHeight和clientWidth:

    • 元素可视内容区域的高度和宽度,不包括水平滚动条、边框和外边距。比如,clientWidth=width+padding

    • 单位是像素px。整数(亲测,这是个四舍五入后的值)。返回值不带px

    • 只读属性

  • offsetHeight和offsetWidth:

    • 元素可视内容区域的高度和宽度,包括元素的边框、内边距和元素的水平滚动条(如果存在且渲染的话),不包括外边距和

      等伪类元素的高度。比如,offsetWidth=width+padding+borderWidth

    • 单位是像素px。整数(亲测,这是个四舍五入后的值)。返回值不带px

    • 只读属性

  • scrollHeight 和 scrollWidth:

    • 元素内容的实际高度和宽度,包括由于溢出导致的视图中不可见的内容,也包括
      等伪类元素的高度和宽度,不包括边框和外边距。没有垂直滚动条的情况下,scrollHeight与clientHeight相等。
    • 单位是像素px。整数(亲测,这是个四舍五入后的值)。返回值不带px
    • 只读属性