记录在阿里云的这段日子

程序人生 / 散文分享 / 生活感悟——【追光的日子】《爷爷的12本日历》,若你也共情,欢迎在评论区分享你的故事、观点、感悟和思考! 【程序人生】这是一篇杂文/散文。以笔者“海樱”的角度,分享与“爷爷的12本日历”有关的故事。感人至深,特此分享给大家。如果你也感到共情,可以在评论区分享下你的观点与感悟。另外附:基于Arduino平台的实验,即:设计一个红、绿、蓝三色呼吸灯,要求每种颜色从最暗到最亮再到最暗完成整个呼吸过程,并按照红-绿-蓝-红-绿-蓝…的顺序一直循环。附具体的代码和注释。 阅读详情

一、忙碌的暑假

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GuT2ZjXq-1598942226315)(http://note.youdao.com/yws/res/24389/EC29CBFCF0FF4BDE8631A4789B9E6009)]

这个暑期都在忙碌的实习中度过,自己的博客也很久没有更新过了,哈哈哈。(其实一直都有写,不过是写在了公司内网里边,由于数据安全问题不能够转出来),趁这个机会也写写这三个月的实习总结,也算是对这段实习经历的一个回顾与沉淀。

二、关于业务

在这里插入图片描述

第二点收获是业务上的一些沉淀,主要是通过和导师、师兄的交流以及自己写代码的时候了解到的一些东西。

2.1、稳定性保证

首先我想着重记录的第一点是稳定性保证,这是我在阿里实习这段时间收获到的最有用的知识之一。

稳定性保证其实理解起来很简单,思想就是当业务在线上出现问题的时候,如何避免影响大范围的用户,如何阻止故障的扩散。

比如线上一个功能模块因为一些BUG影响了大规模的用户,如果不能及时地关闭掉这个模块的话这个故障就会在用户间进行传播,导致巨大的线上问题,直接就是P0故障,团队就可以等着拿325跑路了。

为了做好稳定性保证,可以把需求开发流程分成以下阶段:

在这里插入图片描述

其中日常验证指的是在日常环境中对需求做充分的验证,简单些的自己想一些Bad Case去验证一些系统是否能够做到正确的响应,或者找需求提出方或者测试人员进行测试,如果日常环境测试不通过,那么打回代码设计阶段,找BUG并进行编码修复。

经过日常验证后,要对功能做灰度开关,也就是在线上只对小范围用户放量,比如1%的灰度,让这部分用户去体验到这个功能,然后程序里边可以做双读校验去进行日志记录,最后使用脚本进行分析这部分用户使用功能的执行结果是否符合预期,或者比较粗暴一点就让用户自己反馈使用过程中遇到的问题。简而言之,灰度开关就是要让小范围用户去做“内测”,让他们做程序的“测试”人员。当小部分人使用没问题后,再逐步扩大灰度,直到功能全量。

做好了灰度开关后,还需要多做一个功能开关,也就是万一这一块真的还有其他问题,直接把功能开关关掉,不要再让用户走到错误的功能里去,避免影响大范围的用户,最后可以给个降级提醒。

2.2、单元测试及代码规范

第二点业务提升在于单元测试和代码规范。

在阿里,非核心应用日常代码部署的标准是80%的代码增量测试覆盖率,核心应用日常代码部署的标准是90%的代码增量测试覆盖率。可见的单元测试有多么的重要。

单元测试指的以方法或函数为单元进行测试,在这个过程中不可依赖外界数据源(MySQL、Redis、RCP调用、配置中心等都属于外界数据源),只对代码的执行流程进行测试,如果需要依赖外界数据源则需要Mock数据。

我自己就通过单元测试发现过自己代码中的流程错误,从而避免了潜在的线上问题。

但是单元测试有一点不好在于有些代码只是对一些数据进行封装处理,没有太多的逻辑,所以会存在“为了单元测试而单元测试”的情况,这也会影响需求开发的效率。

代码规范的话,基本上都是遵守的《阿里巴巴Java开发规范》,主要要注意的就是代码变量命名规范、全局异常处理规范、函数名命名规范、单侧书写规范等。设计模式不要乱用,过度设计不如没有设计,代码最重要的就是规范性以及易读性。

2.3、DRY原则及低注释原则

DRY原则指的是Dont Repeat Youself,不要在代码中重复自己,也就是要做好代码的复用。

一般来说如果一段代码在不同的地方出现了3次,就可以考虑封装起来了,不然越来越多的重复出现时,如果需要改动这段逻辑,就会异常痛苦。

低注释原则指的是将代码也视为一种表达语言,注意方法的命名和封装(动词+名词),达到大部分地方只通过代码就能够清晰地表达程序执行的大致流程,只在关键的代码上加上注释。这种做法的好处是极大地避免了无用的注释(能用代码说清楚的话就不要用注释来表达,不然就是代码的封装和抽象能力不够)。

2.4、全局搜索

Idea全局搜索也是一个很有用的功能,是找代码和改代码必须要掌握的一项技能。比如修改一个配置项,就可以通过全局搜索的功能找到每一个被使用到的地方,然后进行修改;或者是想找到某个类是在Spring的哪个配置文件中配置的,也可以进行全局的搜索而确定。这可真是个好东西啊!

三、关于技术

技术沉淀的话主要写自己这两个月用得比较多的技术和一些工具。

3.1、阿里内部中间件技术

众所周知,阿里的Java技术栈的深度和广度都是全国顶尖的,整个后端开发几乎只需要依赖于Spring和Maven就可以搞定,其他的譬如RPC、MQ、分布式事务处理、任务调度、注册中心、配置中心、灰度开关、缓存、表格储存等技术都基于阿里云中间件团队或者淘宝中间件团队的实现,所有的部门都会借助这些中间件进行业务开发。

在实习过程中自己用得比较多的是HSF、MetaQ、Diamond、Tair这几款中间件,也就是RPC框架、MQ、持久化配置中心、分布式缓存。

3.1.1、HSF

HSF(High Speed Framework 高速服务框架)是阿里内部使用最多的RPC框架,几乎所有的分布式应用都是通过HSF来构建的。

HSF的主要特性是使用简单、支持异步调用和泛化调用、有良好的控制台支持、支持多种集群容错策略、可对调用链路进行Filter拓展以及良好的SLA保证。

其实相对来说,Dubbo的功能及文档是更加全面的,比如Dubbo的SPI做的很好,基本上HSF有的功能Dubbo都有,但是因为一些历史原因,HSF诞生于淘宝,经过了十几年的大流量验证,所以内部更加倾向于使用HSF。并且HSF可以和阿里内部的配置中心、框架无缝整合在一起,这也是HSF自身的一大优势之一。

在这里插入图片描述

和Dubbo的服务调用过程类似(基本上Java的RPC框架的设计核心原理都是差不多的),HSF也需要借助注册中心(ConfigServer)来提供将自己的服务(接口全限定名+版本号+调用方法+参数列表)注册到注册中心中,一般内容都为服务提供方IP地址+RPC协议+序列化协议+重试次数+集群容错策略,然后客户端根据注册中心中中需要调用的接口全限定名及参数找到这个服务提供方IP,使用Netty建立一个连接,客户端将请求参数编码序列化成通信对象发送给服务提供方,服务提供方拿到后做反序列化和解码,最后通过反射调用拿到具体的返回值返回即可。

在这里插入图片描述

3.1.2、Diamond及ConfigServer

Diamond和ConfigServer都是阿里内部通用的注册中心,但是不同之处在于Diamond是持久化的注册中心,并且更加适合于做分布式配置中心和灰度控制,而ConfigServer是HSF的地址服务注册中心,是非持久化的注册中心。

先说说Diamond。

Diamond主要的特点是持久化、配置化、变更主动推送,基于推拉结合的发布订阅模型。阿里内部一般使用Diamond来存储持久化的、不会经常变更的配置数据,一般采用JSON形式进行存储,比如可以存储灰度配置信息及一些数据的配置信息。另外的一大特点是当通过控制台变更Diamond配置时,会触发程序中配置的监听器,然后更新程序中的配置信息(实质上是长轮询)。

在这里插入图片描述

再来看看ConfigServer。

ConfigServer是一款基于发布订阅模式的非持久化的配置中心,比如HSF的地址服务注册中心就是ConfigServer。其主要特性是支持数据的列表聚合(把数据聚合成一个List)以及连接失效后,会自动删除掉该连接所写入的数据,也就是非持久化的体现。

这就可以在HSF的服务提供方挂掉时及时地把列表里的IP等信息删掉,防止服务调用方调用到不存在服务的机器。

3.1.3、MetaQ

MetaQ是阿里内部的一款分布式消息中间件,MetaQ3.0实质就是内部版的RocketMQ。

由于MetaQ一开始的设计参考了Kafka,所以两者的使用来说是比较相似的,并且底层的消息存储结构也具有一定的相似性。

MetaQ主要的特点是支持海量数据堆积、可严格顺序消费、每条Topic都可回溯状态、Topic重发接收不成功时会进入死信队列保留、高稳定SLA保证、支持负载均衡、支持数据持久化。

和Kafka比较的话,第一点不同在于MetaQ使用Tag作为消息发布及订阅的最小单位,而Kafka则是以partition作为最小单位。

第二点不同在于底层的消息存储结构设计,Kafka会把Topic分为多个partition,一个partition实质上就是一个独立的文件,读写都会在这个文件中进行追加,也就是磁盘顺序读写。但是当partition过多后,Kafka的读写性能就会存在瓶颈,因为这相当于把磁盘给分散化了,形成了随机读写。

而MetaQ为了优化这一点,采用了虚拟队列及真实磁盘存储空间配合的方式,采用虚拟队列来追加Tag的消息,而每条消息中存储的只是索引,索引到唯一的真是磁盘空间,而真实磁盘空间中仍然采用了顺序写的方式。

在这里插入图片描述

3.1.4、其他技术

其他我觉得比较好的技术是一些监控上的技术,比如鹰眼(EagleEye),可以用于分布式环境下的全链路追踪快速定位问题。不然RPC调用太多了,根本不知道是哪一块调用发生的问题,很难排查。

还有一个技术是LogService,是阿里云的日志分析服务,可以用来聚合分析多台机器的日志,从而达到快速的数据分析和错误排查的效果。

Sentinel,阿里开源的稳定性中间件,主要用于请求限流、服务降级以及熔断处理,是分布式环境下被频繁使用的中间件。

3.2、Arthas

Arthas是阿里开源的一款Java开发线上诊断工具,继承了JVM工具,能够替代大部分需要查看日志的场景,比如线上某个方法调用异常分析等等。

基本原理:通过cglib动态代理技术,动态修改正在运行时的方法,生成切面,拦截到执行的入参、出参等所需参数并进行分析。

排查问题常用操作:

  • monitor

对方向执行结果进行监控,可以获得一个周期内方法的调用次数、失败率、rt等,是非实时的监控。

使用方式如下: monitor className methodName -c 10,标明对特定类特定方法做监控,-c 10表示监控刷新时间为10s,每次会将1个周期内的调用数据统计出来

  • watch

对方法的执行过程数据进行监控,可以获得方法执行前后入参、返回结果,是实时的监控。使用方式如下:

watch className methodName need ognl -b -x 2, need使用{params,returnObj}来制定要看到的指标,ognl为ognl表达式,可用于做数据过滤来查看指定的方法,-b表示在方法执行前进行观察,-x表示参数和返回值的解析深度,默认为1。

watch命令可以通过参数切入不同的事件点来观察参数及返回值,通过-b表示 方法调用前,-e 表示方法异常后,-s 表示方法返回后,-f 表示方法结束后,默认是-f也就是方法执行结束后显示入参和返回值(此时入参可能被改变了),所以如果要查看方法的入参,需要-b指定在方法调用前监测。

返回值含义: @ [入参(params)], @ [方法内部调用(target)], @ [返回值(returnObj)] 使用ognl表达式根据特定入参或者返回值过滤方法: https://github.com/alibaba/arthas/issues/71

  • trace

对方法的内部调用路径及耗时进行监控,可以取得具体的方法调用路径(默认屏蔽JDK库调用路径),以及调用的时间。

  • stack

查询当前方法的调用路径进行分析,获取到方法的具体调用方

  • tt

和watch类似,都可以获取到方法的入参和返回值进行分析,但是不同之处在于tt可以不断地进行分析

3.3、Git高级命令

GitFlow主干开发流(项目驱动,小团队开发,统一合并到主干测试,本地分支不提交到远程)、多分支开发流(大团队开发,不统一合并到主干,本地分支提交到远程进行测试,最后合并到主干)

  • git revert

和git reset类似,都可用于回退commit版本,但是git revert可以再基于该版本生成一个新的回退commit,仍然保留之前的commit

撤回某次commit的内容,并且基于本次撤回新建一个commit

  • git cherry-pick

用于从拿另一个分支的几个commit的情况

对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。一种情况是需要另一个分支的所有代码变动,那么可以分支合并(git merge),而另一种情况是只需要部分代码变动(某几个提交),这时可以采用 Cherry pick

  • git stash

用于在分的分支写代码,突然需要切到主的分支,但是当前代码并不完善,不希望commit到本地版本库的情况

暂存当前分支的工作区代码改动而无需add和commit到当前版本库就可以切换到其他分支。当切换回当前分支后使用git stash pop恢复之前的改动,git stash list可以查看所有的暂存

  • git rebase

用于合并多个commit以及将本分支代码“变基”到另一个分支的头上,和merge不同之处在于merge会保留两个分支的历史commit,而rebase会直接删去当前分支之前的commit记录

用于合并多个提交到一个提交中,避免提交过多导致污染;也可以起到merge的作用,(A)git rebase B后,会抹去A分支之前的提交内容,直接把A分支建立于B分支之上,而merge会保留A分支和B分支的提交内容,并且在log中可以看到merge。

在这里插入图片描述

3.4、Apache Chains链式调用

在日常的工作中,我们经常会碰到一些业务流程比较复杂的场景,这些东西糅合到一个方法里就使得代码耦合度特别高,随着业务场景逻辑的越来越多,就会越来越复杂,难以维护。
如提交的订单的动作可能涉及到如下场景:

  • 各种各样的校验
  • 各类信息的补充
  • 订单提交成功/失败后产品信息/库存的改变
  • 订单提交成功/失败后支付信息/状态的改变
  • 订单提交成功/失败后的各种推送

Apache commons chain,原理是责任链模式。大致实现方式是根据不同的业务场景,建立多个Command,每个Command处理各自的业务逻辑,每个Command执行完毕后,将处理后的处理传给下一个Command,直到所有执行完毕。

通过Spring就可以做到快速地组装和调整每个Command的执行顺序,使得代码更加清晰易懂并且易于复用。

在这里插入图片描述

3.5、Mockito及PowerMockito

单元测试指的是对单个方法、函数、过程等最小单位进行的测试,通常用于校验实现逻辑的正确性,一般核心的流程或者复杂的流程应该经过单测,并且要有较高的单测覆盖率。

Mockito及PowerMockito是Java开发中很常用的两款单测框架,其使用简单并且功能强大。Mockito常被用于Mock一些依赖的外部类和方法,而PowerMockito常被用于Mock静态方法和私有方法。

单测可以说是我在阿里代码写得最多的了,基本上和需求代码五五开。

一个标准的单测,应该符合以下几点要求:

  1. 无论执行多少次,都是通过的
  2. 测试的方法不依赖于外界真实数据
  3. 都需要具备断言判断
  4. 对于不同情况的测试应该拆分出不同的测试方法
  5. 单测中不可含有println这样的直接输出或者log
  6. 核心流程的代码单测要保证高覆盖率

写单测有什么好处呢?总结了如下两点:

  1. 对程序的执行流程做正确性校验,在方法级别避免BUG的发生
  2. 纠正坏代码风格,为了写单测就需要把代码给做好足够的抽象和封装,不然单测是写不下去的
3.6、PlantUML

在实习过程中另一个常用工具就是PlantUML,这是一个使用文字绘图的工具,使用PlantUML可以轻松地画出符合规范的时序图,并且便于修改。

在这里插入图片描述

3.7、Maven Helper

Maven helper是Idea里边的一个插件,可以快速地分析依赖冲突问题并且解决冲突。

在这里插入图片描述

四、总结

在这里插入图片描述
在实习的过程中还是发现了自己许多不足的,比如:

技术上的:

  1. 代码写得不够好看,不够精简,没有考虑如何给后人维护。在之后写代码的过程中,要力求把代码写得简单易懂,并且要考虑到代码的复用以及标准化,不要写“一次性”代码,代码要复合DRY和低注释原则。
  2. 对技术的理解不够深刻,许多技术只停留在使用层面,而没有进行过多的思考。所以后续写博客的话,发出来的东西要做到尽量有价值,有思考,而不只是CV和一味的笔记记录。

其他方面:

  1. 表达能力有待提高,如何快速地表明自己的意图,如何高效地沟通,如何做好一份PPT等,都是需要不断地锻炼。
  2. 有点儿害羞,特别是问别人问题的时候,总是会习惯自己考虑问题,而不是找特定的人去解决特定的问题,这会浪费很多时间。之后要加强这方面的锻炼,多与人沟通,多向优秀者学习。
【大模型微调】魔搭社区GPU进行LLaMA-Factory微调大模型自我认知 本教程介绍如何使用魔搭社区GPU资源和LLaMA-Factory工具进行大模型微调。主要内容包括环境配置、工具安装、模型训练和效果评估。通过LoRA算法进行自我认知微调,详细说明了从数据准备到模型导出的完整流程,并提供了参数调优和显存管理等实用技巧,帮助读者快速掌握大模型定制化训练方法。 阅读详情

相关推荐

第七章 Wi-Fi连接过程

系列文章目录 第一章 国内下载AOSP最新源码的方法 第二章 下载AOSP WiFi相关的代码 第三章 将源码导入Android Studio(无需编译idegen) 文章目录系列文章目录前言一、Wi-Fi连接是什么?二、Wi-Fi连接的过程1. 手动连接总结 前言 Wi-Fi连接分为下面几种过程,每种的流程都有些许差异: 手动连接 自动连接 在BSS之间漫游 Passpoint热点连接 一、Wi-Fi连接是什么? Wi-Fi连接是指STA(手机)连接到AP(无线路由器)的过程,这个过程分为链路

Frank.Zhang的专栏 2527

阿里中间件——diamond

一、前言 最近工作不忙闲来无事,仔细分析了公司整个项目架构,发现用到了很多阿里巴巴集团开源的框架,今天要介绍的是中间件diamond,访问了对应开发团队的博客(http://jm-blog.aliapp.com),认真学习了一下diamond,下面是本人学习中的一些心得,故写出来。 二、diamond学习笔记 1、diamond简介 diamond是一个管理持久配置(持久配置是指配置...

shunzi1046的博客 5727

使用Python下载ECMWF的ERA-5数据

一、注册账号 [官网]https://www.ecmwf.int/ 二、登录后获取下载key https://cds.climate.copernicus.eu/api-how-to 如图右侧红色框中的内容复制保存为TXT文件,并重命名为“.cdsapirc”,注意前面有点,保存在 C:\Users\username\.cdsapirc,(WINDOWS系统),username指当前电脑登录账户。 三、安装cdsapi库 以pycharm为例: 在pycharm中依次打开:File>setting

wise_sun的博客 7706

五万文长字~阿里配置中心Diamond探索

通过diamondEnv, dataId, group创建CacheData,listeners是采用线程安全的CopyOnWriteArrayList,isInitializing表示数据是第一次发起监听,将从容灾、缓存目录依次获取content、encryptedDataKey,获取对应的md5值,并把CacheData set到cacheMap中,最后将listener add到CacheData.listeners中。如果同一个配置项的变更频率达到了一分钟一次的量级,肯定是不正常的。

森伯416的博客 1611

DirectX function “GetDeviceRemovedReason“ failed with DXGI_ERROR_DEVICE_HUNG (“The GPU will not resp

游戏报错"DXGI_ERROR_DEVICE_HUNG"的解决方案 在使用RTX 40系显卡运行FIFA 23等游戏时,可能出现DirectX报错导致游戏崩溃。这主要由于最新显卡驱动与DirectX 12的兼容性问题。解决方法包括: 降级显卡驱动版本 修改游戏配置文件,将DIRECTX_SELECT设为1 在显卡控制面板中关闭垂直同步、抗锯齿、DLSS 3等功能 调整电源模式为性能优先 这些操作可以有效解决因驱动兼容性导致的游戏崩溃问题。

猿小白的博客 3893

Python爬虫教程:抓取Android或iOS应用中的数据

随着智能手机的普及,移动应用程序已经成为我们生活中不可或缺的一部分。从社交媒体、在线购物到金融服务和健康管理,几乎所有领域都有相应的手机应用程序(App)服务用户。而这些应用程序通常会存储大量的数据,例如用户行为、产品信息、订单记录等。如果我们能有效地抓取这些数据,可以为数据分析、商业智能、用户行为分析等提供有力支持。本文将重点介绍如何使用Python爬虫技术抓取Android或iOS应用中的数据,尤其是如何从这些应用的后端接口、存储、或网页中提取数据。我们将探讨如何通过反向工程技术访问移动应用中的API接

2201_76125261的博客 802

阿里开源配置服务diamond分析

diamond简述 diamond是阿里巴巴开源的一款配置中心服务。diamond中文意思是钻石,而钻石的特点有小巧、珍贵、稳定。 小巧:在如今的互联网公司中配置服务作为基础的中间件,其核心功能比较简单就是存储并管理配置数据,功能单一。 珍贵:随着公司业务线增加及规模的扩大,传统的基于配置文件、尤其是多环境下繁杂、易出错的配置和需要动态感知配置变化时,统一化的配置服务显得弥足重要,对开发人员更加...

double snail 6498

【unity知识】最新的虚拟相机Cinemachine3简单使用介绍

本文介绍了Unity中Cinemachine 3虚拟相机系统的使用方法。相比旧版本,新版功能更强大且参数分类更直观。文章详细讲解了摄像机镜头参数、旋转控制(包括None、目标跟随、样条线推拉、旋转追随等6种模式)和位置控制(跟随、样条轨道、硬锁定等5种模式)。重点演示了样条轨道摄像机的创建与配置,以及如何实现第一人称和第三人称视角。通过丰富的GIF图示,展示了各种模式的运行效果,帮助用户快速掌握Cinemachine 3的核心功能。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 866

diamond简介和搭建

diamond简单介绍 diamond简述 diamond是阿里巴巴开源的一款配置中心服务。 diamond中文意思是钻石,而钻石的特点有小巧、珍贵、稳定。 小巧: 在如今的互联网公司中配置服务作为基础的中间件,其核心功能比较简单就是存储并管理配置数据,功能单一。 珍贵: 随着公司业务线增加及规模的扩大,传统的基于配置文件、尤其是多环境下繁杂、易出错的配置和需要动态感知配置变化时, 统一化的配置服务显得弥足重要,对开发人员更加友好,也避免了系统频繁上线。 稳定: 充分考虑线上环境可能出现由于网络、磁盘等引

Hanyinh的博客 2392

华为OD机试 - 计算数列位置N的值 - 模拟法(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。输入 M,N 两个数,则按照以下规则形成一个数列。数列的前 M 个元素的值为 1 到 M从 M+1 个元素开始,计算逻辑为如果其前 M 个元素中,存在值相同的元素,则该位置上的数值等于前 M 个数中最大数值与最小数值之和。如果其前 M 个元素中,

学Java,找哪吒 508

099、LLC谐振变换器的大信号建模

摘要:LLC谐振变换器的小信号模型在大信号工况(如启动、负载突变)下会失效,导致保护失灵、过冲等问题。通过状态空间平均法和分段线性化建立大信号模型,需关注谐振腔能量转移、模态切换条件及离散化实现。实际应用中,该模型可优化启动策略、精确设定保护阈值并验证环路补偿,但需注意变压器饱和等非线性因素。经验表明,大信号建模能显著提升设计可靠性,但需结合实验验证(误差<15%)和工具适配(如MATLAB离线仿真与C语言嵌入式调试)。三颗炸裂的MOSFET警示:深入掌握大信号建模是避免关键故障的必要手段。

Jack010169的博客 47

在阿里巴巴的那些日子

不知道现在为什么可以静下心来回忆在阿里巴巴实习的那段日子?在刚回来的时候自己也有想过去将这段时间记录下来,但是每当提起笔来就不知道从何写起,不知道是因为自己没有勇气面对自己的不足?还是因为不想触及心中仍然对西溪园区的不舍?亦或是因为那段时间成长的太多,没有办法用足够的文字来记录?当时间一点点的流逝,我也越来越看清楚自己的心,所以在这个闲暇的傍晚来记录这一段自己的成长历程。         201

Working... 3663

电池管理系统(BMS)技术全景解析:从基础原理到智能未来

《BMS技术演进与核心功能解析》摘要: 电池管理系统(BMS)作为新能源系统的智能中枢,已从基础保护电路发展为具备预测能力的智能系统。文章系统梳理了BMS三大技术时代:1.0保护时代(1990-2000)采用硬件保护电路;2.0智能时代(2000-2020)引入SOC算法;3.0云脑时代(2020后)实现AI预测。详细解析了BMS三大核心模块:AFE感知系统(±2mV精度)、功率驱动模块(10μs级保护)和均衡技术(效率提升至85%),并对比了主动/被动均衡技术差异。同时阐释了SOC/SOH等关键参数定义与

bother3000的博客 2985

如何购买阿里云服务器更实惠

做技术有些年头了,一直想弄一个自己的网站,没时间懒得做,趁着失业的这段日子自己写个网站挂上去。 开源的网站程序并不少,但想着练手就自己写了。程序写得差不多了,得找个服务器测试,由于是jsp写的找jsp虚拟空间并不容,主要是考虑经济实惠,试用一些但都觉得不好用,想到阿里云服务器,网上搜了一下,阿里云服务器的评价还是相当不错的,决定就用它了。 刚开始想...

iteye_13028的博客 140

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

新买的/重置的aliyun服务器要怎么操作呢?我将一步步记录我的操作

我是真的偶尔就会把我的小阿里云服务器搞坏。。所以记录一下每次环境搭建的过程,以后就不用四处搜了。。直接一键还原,然后重新安排!哈哈。 0、基本操作就不多说了,从开始登陆一个空白的阿里云服务器开始,我在选择操作系统的时候选择的是0元的打包好的centos7 1、登陆进来以后先确认一下资源使用情况 ## df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况 -h方便阅读方式显示 df -h ## 查看系统主机名及其它相关设置 hostnamectl ## 查看centos版本 lsb_relea

Jamie Jiang's Blog 589

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

基于Android的医院陪诊护理服务系统APP(编号:622212181)

该系统基于Android平台开发,旨在为医院患者及家属提供便捷的陪诊护理服务。通过移动互联网技术整合医疗资源,优化传统陪诊流程,提升就医体验。

ztopmind的博客 789

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

从零开始,和我一起探索钉钉生态与中医科技的结合之路

开启钉钉生态专栏,专注 开源+实战 开发。专栏将系统讲解钉钉应用开发、低代码平台等方向,重点探索中医领域数字化创新。博主结合中医世家背景与技术专长,计划开发问诊系统、中药管理等工具。欢迎对钉钉开发或中医科技感兴趣的伙伴加入,共同实践技术与传统行业的融合创新。。

归梦工作室 1170

七载雪域,归心向家

但很快,高原反应就给了你一个下马威。可每一个日出日落,每一次克服困难后的喜悦,每一份收获带来的成长,都让你坚信,这是一段无悔的旅程,是一段刻在骨子里的成长,你感激命运的馈赠,感激在这片土地上遇到的每一个人,更感激那个在孤独中默默成长的自己。2019年身份证上生日那天,你背着行囊,踏上了前往西藏的征程,过安检时,工作人员笑着对你说生日快乐,你突然红了眼眶,那些藏在心底的不安与惶恐,在这一刻被突如其来的温柔击中 —— 原来在奔赴未知的路上,从来都不是孤身一人,陌生人的善意会像颗温软的糖,成为支撑你前行的力量。

崔崇鑫的博客,你linux/云运维工作中的百科全书。 607

一个编程小白的梦的开始

一个编程小白梦的开始

2601_95826833的博客 1264

主机回来以及,简单的环境配置(RTX3070+CUDA11.1+CUDNN+TensorRT)

紧接着前几天的事: 特殊的日子,想起了当年的双(1080TI)显卡装机实录 和 炼丹炉买不起了:聊一聊这段日子的显卡行情 之后,决定买一台整机玩玩。 而现在,主机终于回!来!了!主机回来干什么,当然是——配置环境。 老潘之前也有一些配置环境的文章,可以参考: ubuntu16.04下安装NVIDIA(cuda)-gtx965m相关步骤以及问题 pytorch-0.2成功调用GPU:ubuntu16.04,Nvidia驱动安装以及最新cuda9.0与cudnnV7.0配置 win10下安装使用pytor

老潘的博客 2610

我是赵士杰,自述我的 Java 之旅:四年编码,千言万语中成长

我是赵士杰,一名 Java 攻城狮,欢迎关注我的微信公众号【技术人阿杰】。

赵士杰——成功并非一蹴而就,而是在持之以恒的努力中逐渐实现。 1113

【优快云创作纪念日】——博客小梦的“256”鸭~

创作纪念日总结分享

小梦的博客 864

【人生底稿】09|2018 北京创业 180 天(下):以太坊、钱包、泡沫与清醒

2018年,医美社区、以太坊、数字钱包、欠薪、痛风、鸟巢旁的好声音决赛、考研数学8分。 180天,从狂热到清醒,从泡沫中长出免疫力。 没有神话,没有暴富,只有一段真实的经历。

37岁Java后端 | DevOps/AI/架构实战 510

Let‘s Encrypt泛域名证书:统一保护www/api/admin等子域

通过DNS-01挑战自动化签发和续期Let's Encrypt泛域名证书,实现对所有一级子域的统一HTTPS保护。结合acme.sh或cert-manager工具,可无缝集成到Nginx、Kubernetes等环境,大幅降低运维负担,提升安全自动化水平。

weixin_42466723的博客 953

【2023年终总结】纵是一路仆仆风尘,也莫忘了仰头

2023即将过去,新的一年里低头做事、抬头看路!加油

吴秋霖的博客 4962

阿里巴巴“数据库侠客”:此行路远,不问归期

从空中俯瞰,2019年阿里巴巴和蚂蚁金服的数据库百花齐放,POLARDB、POLARDB X、OceanBase、AnalyticDB、NoSQL、图数据库、时序时空数据库等等一应俱全,在技术光谱上,我们第一次拥有了不输给人和人的完整的生态。一点一点,数据库的运转速度,缓慢而坚定地追上了全国人下单的速度。这位网易工号25,迅雷工号前10的技术大神手里常提一把血淋淋的刀,一边“庖丁解牛”般把程序解剖成底层电路上的嘶嘶电流,一边看向围观震惊的吃瓜群众,摆出一副“都坐下,都坐下,这是基本操作”的傲骄表情。

专注自动化、性能测试、测试架构学习交流 5809
上一篇: JDK 1.8 流式编程在数据处理方面的应用
下一篇: 操作系统精髓-进程相关知识总结
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值