![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
it
文章平均质量分 88
李自提
这个作者很懒,什么都没留下…
展开
-
STM32与物联网02-网络数据收发
例如,可以向HTTP服务器提供的接口发送POST请求,将传感器数据作为参数发送给服务器,服务器解析POST请求并更新数据库,然后便可以显示在前端上,这样便可以在任何地点查看STM32的状态了。互联网中存在许多类似的接口,只需要构造合适的请求头,便可以抓取很多有用的信息,不过这需要有一定的抓包或爬虫的基础。通过路由器可以接入互联网,在TCP服务的基础上,构造出合适的HTTP等应用层协议的封装,便可以采集互联网中的各种数据,或者向服务器报告自身传感器的数据,由此真正实现物联网的基础。...原创 2022-07-15 12:55:59 · 2822 阅读 · 0 评论 -
springboot 中如何正确的在异步线程中使用request
我的第一反应是不可能,肯定是前端同学写的代码有问题,这么简单的一个接口怎么可能有问题,然而等同事复现后就只能默默debug了.有后端同事反馈在异步线程中获取了request中的参数,然后下一个请求是get请求的话,发现会偶尔出现参数丢失的问题.而且很奇怪,queryString不是null,获取到了正确的参数,但是parameterMap却是空的.看到这里我还是有点不信,心想tomcat不会这么拉吧,异步都不支持,不可能吧…参数也能获取到了,业务也跑通了,也不会报错了....原创 2022-07-15 01:18:46 · 686 阅读 · 0 评论 -
没那么简单的单例模式
目录* 什么是单例单例(Singleton)可以说是最简单的设计模式之一,而且基本上哪怕你没特别了解过,也能够随手写出,但是单例真有这么简单吗?单例对象的类必须保证只有一个实例存在,自行提供这个实例,并向整个系统提供这个实例。上述定义总结以下特点大致有3点:单例模式的核心精髓其实是** 避免创建不必要的对象 ** **不必要的对象 **一般是:常见的使用场合:数据库的连接池、Spring中的全局访问点BeanFactory,Spring下的Bean、多线程的线程池、网络连接池等等单例模式的优点:缺点:对单例原创 2022-07-14 12:47:35 · 180 阅读 · 0 评论 -
技术管理进阶——什么是影响力
最近有个粉丝问了一个很有意思的问题:先来看看百度百科的定义:在工作场景中,影响力反而没这么玄妙,可以粗暴的认为就是别人愿不愿意支持你的工作,影响力在跨部门协作时候特别好用,事实上他跟我们之前描述的势能很相似,我们这里将势能变成影响力:通过不同的事件(多数时候是做项目、做汇报),我们可以提升自己的能力和影响力。影响力达到一定程度,更难的项目、更高的职位才会考虑到你,能力值是做事的基础,影响力涉及你所能利用的资源,需要长期运营。影响力是你在一个团队中所具有的能量,有些时候影响力大的人,言行会造成很大的连锁反应,原创 2022-07-14 01:18:31 · 458 阅读 · 0 评论 -
如何编写测试团队通用的Jmeter脚本
平时学习、工作过程中,编写的一些jmeter脚本,相信大多数都遇到过这个问题。那就是:如果换一台电脑运行,文件路径不一样,会导致运行失败。前不久,自己就真真切切遇到过一回,A同学写了个脚本用于压测,需要其他测试同学协助下,结果部分人员没有提前调试代码,导致运行的时候报错。主要的原因就是,A同学写的脚本不能通用,以自己本机的路径来编写的,而其他同学的文件路径不一样,导致报错。后面我实在看不下去了,把脚本改动了下,压测顺利结束。那么这个问题是否有解决的办法呢,自然是有的,而且很简单。我们来看详细我们先来看第一种原创 2022-07-13 12:49:11 · 337 阅读 · 0 评论 -
跟HR在大群吵架是什么体验?
昨天跟HR负责人在公司大群吵了一架,先说结论:我输了…事情原委是,老板在周一司庆上聊嗨了,说了一句:我觉得打卡没用,建议取消打卡。下来后老板在公司论坛发了一个问题:请问,哪些岗位或哪类人我们可以率先取消打卡制度,反而对公司更好?正常技术对于打卡都是深恶痛绝的,而由于这半年的**“口没遮拦”**,马上成了第一个回应者:产研可以吃点亏,先取消打卡吧!过了一会,HR表态了:这句话有几个重点:但这里有个巨大陷阱,稍不注意就要掉进去:HR将打卡与人效做了强关联,并给了一个选择,如果不打卡要保证人效更高。因为想要规避一原创 2022-07-12 12:44:49 · 208 阅读 · 0 评论 -
博客园主题美化(仅兼容 Markdown)
关于个人笔记,每个人有每个的方案,就我而言大致经历了以下几个阶段:笔记软件,比如 , 等。开放博客,用作技术分享,比如某DN,某CTO,某书等等。自研博客,用 Python + Django 写了一个。自建博客,使用市面上开源的服务搭建一个,比如 Wordpress,Hexo 等。个人推荐: docsify。改博客园主题。其实我很早之前就有改博客园主题,但是以前都没使用 Markdown,所以博客的兼容性不强。在使用 docsify 之后,就准备将以前的一些内容做个重构。为此专门开了这个账号用于做内容的重构原创 2022-07-12 01:18:08 · 966 阅读 · 0 评论 -
Modeling Conversation Structure and Temporal Dynamics for Jointly Predicting Rumor Stance and Veraci
记录一下,论文建模对话结构和时序动态来联合预测谣言立场和真实性及其代码复现。之前的研究发现,公众对谣言消息的立场是识别流行的谣言的关键信号,这也能表明它们的真实性。因此,对谣言的立场分类被视为谣言真实性预测的重要前置步骤,特别是在推特对话的背景下。一些先进的谣言立场分类方法试图模拟Twitter对话的序列属性或时序属性。在本文中,我们提出了一个基于结构属性的新视角:通过聚合相邻推文的信息来学习推文表示。直观地看,**一条推文在对话束中的邻居比更远的邻居更有信息,因为它们的对话关系更接近,它们的立场表达有助于原创 2022-07-09 12:48:29 · 222 阅读 · 0 评论 -
ReentrantLock 公平锁源码 第1篇
这篇还是接着ReentrantLock的公平锁,没看过第0篇的可以先去看上一篇https://blog.csdn.net/sunankang/p/16456342.html这篇就以问题为导向,先提出问题,然后根据问题去看代码现在假设A线程走完后获取到锁,执行业务代码,最后 tryAcquire代码就不进去看了,上篇讲过了 现在只需关注两个点lock方法中的 用来parkunlock方法中的用来unpark首先来看park的条件是啥进入方法也就是 如果这个方法返回true,才会去park现在假设第一种情原创 2022-07-09 01:17:30 · 188 阅读 · 0 评论 -
实战模拟│单点登录 SSO 的实现
单点登录原理图🎈 用户认证中心方式使用一个认证中心,用来专门负责处理登录请求用户中心不处理业务逻辑,只是处理用户信息的管理以及授权给第三方应用第三方应用需要登录的时候,则把用户的登录请求转发给用户中心进行处理,用户处理完毕返回凭证,第三方应用验证凭证,通过后就登录用户。流程是用户访问应用系统,应用系统先检查用户是否有 ,如果没有,则说明用户在该应用上尚未登录,跳转到用户中心,通过用户中心的 去判断用户是否在其他应用上进行了登录如果认证中心发现用户尚未在其他任何应用上执行过登录,则提示用户执.原创 2022-07-08 12:50:02 · 170 阅读 · 0 评论 -
Tapdata 的 2.0 版 ,开源的 Live Data Platform 现已发布
https://www.bilibili.com/video/BV1tT411g7PA/?aid=470724972&cid=766317673&page=1点击上方链接,一分钟快速了解 Tapdata[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B0c18jAd-1657214298003)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c41d9c28059642fe8ef488be4aafbf16~tplv-k3u1原创 2022-07-08 01:19:20 · 468 阅读 · 0 评论 -
Java 内存模型,或许应该这么理解
大家好,我是树哥。在前面一段时间,我连续写了几篇关于并发编程的文章:这几篇文章分别讲了 Java 内存模型、happens-before 原则、volatile 关键字、synchronized 关键字、Java 对象的内存布局。这 5 篇文章看着好像是独立的,但实际上他们是互相关联的。在好几年前我也看过 Java 内存模型这些内容,但网上的内容实在太多太杂,始终找不到合理的解释。刚好就在几周前,当我再次认真看这些内容的时候,突然发现能比较好地串起来了,所以就写了这几篇文章。今天,就树哥一起与你一起重温下这原创 2022-07-07 12:52:20 · 80 阅读 · 0 评论 -
从 1.5 开始搭建一个微服务框架——日志追踪 traceId
你好,我是悟空。最近在搭一个基础版的项目框架,基于 SpringCloud 微服务框架。如果把 SpringCloud 这个框架当做 ,那么现在已经有的基础组件比如 swagger/logback 等等就是 0.5 ,然后我在这 1.5 基础上进行组装,完成一个微服务项目框架。为什么要造二代轮子呢?市面上现成的项目框架不香吗?因为项目组不允许用外部的现成框架,比如 Ruoyi。另外因为我们的项目需求具有自身的特色,技术选型也会选择我们自己熟悉的框架,所以自己来造二代轮子也是一个不错的选择。需要包含以下核心功原创 2022-07-06 06:32:19 · 606 阅读 · 0 评论 -
技术管理进阶——什么是管理者之体力、脑力、心力
最近有个粉丝问了一个很有意思的问题:事实上,我也没有对三力进行过系统性的研究,但稍加思考,竟然有一套能自圆其说体系,这里拿出来与大家探讨一下。首先是心力,心力应该对应我们远大的抱负,比如我们常说的心气高就是说的心力足;心力足的人,体力也会得到大幅度飙升,可以耐久,长时间的做一件事,慢慢的正循环就开始了;不断的正循环,脑力就会运转起来,思维处于一个很好的状态,不断的总结经验形成方法论,产出就会很高;首先心气要足,心气不足没办法启动身体;身体起不来,脑力肯定跟不上,三者是相辅相成的。这里继续回到NPL层次模型:原创 2022-07-05 12:53:59 · 337 阅读 · 0 评论 -
netty系列之:kequeue传输协议详解
目录* 简介在前面的章节中,我们介绍了在netty中可以使用kequeue或者epoll来实现更为高效的native传输方式。那么kequeue和epoll和NIO传输协议有什么不同呢?本章将会以kequeue为例进行深入探讨。在上面我们介绍的native的例子中,关于kqueue的类有这样几个,分别是KQueueEventLoopGroup,KQueueServerSocketChannel和KQueueSocketChannel,通过简单的替换和添加对应的依赖包,我们可以轻松的将普通的NIO netty转载 2022-07-05 07:34:04 · 162 阅读 · 0 评论 -
为什么不建议使用自定义Object作为HashMap的key?
此前部门内的一个线上系统上线后内存一路飙高、一段时间后直接占满。协助开发人员去分析定位,发现内存中某个Object的量远远超出了预期的范围,很明显出现内存泄漏了。结合代码分析发现,泄漏的这个对象,主要存在一个全局HashMap中,是作为HashMap的Key值。第一反应就是这里key对应类没有去覆写equals()和hashCode()方法,但对照代码仔细一看却发现其实已经按要求提供了自定义的equals和hashCode方法了。进一步走读业务实现逻辑,才发现了其中的玄机。鉴于项目代码相对保密,这里举个简单原创 2022-06-30 01:17:15 · 85 阅读 · 0 评论 -
从Mpx资源构建优化看splitChunks代码分割
MPX是滴滴出品的一款增强型小程序跨端框架,其核心是对原生小程序功能的增强。具体的使用不是本文讨论的范畴,想了解更多可以去官网了解更多。回到正题,使用MPX开发小程序有一段时间了,该框架对不同包之间的共享资源有一套自己的构建输出策略,其官网有这样一段描述说明:总结关键的两点:很好奇MPX内部是怎么做到上面这种效果的,尤其是js资源,于是就拜读了揭开其实现的细节。首先简单介绍下是怎么整合小程序离散化的文件结构,它基于webpack打包构建的,用户在Webpack配置中只需要配置一个入口文件app.mpx,它会原创 2022-06-29 12:44:03 · 329 阅读 · 0 评论 -
抓包整理外篇fiddler————了解工具栏[一]
抓包本篇还没写完,因为在工作中,发现有人用fiddler 用的还不是很好,所以去介绍一下这个东西,fiddler大体分为10多个章节。首先了解一下fiddler的抓包原理哈。可以看到当浏览器去访问baidu的时候,那么其实他访问了http://127.0.0.1:8888。fiddler 其实就是作为代理,浏览器将请求发送给fiddler,fiddler 再去请求正在的服务,这种就是正向代理哈。fiddler启动的时候会设置浏览器的代理,然后把,其实就是一个转发了。这个和我们跳跃上网的原理一样的,只不过一个原创 2022-06-28 12:45:53 · 1088 阅读 · 0 评论 -
openssl客户端编程:一个不起眼的函数导致的SSL会话失败问题
我们目前大部分使用的openssl库还是基于TLS1.2协议的1.0.2版本系列,如果要支持更高的TLS1.3协议,就必须使用openssl的1.1.1版本或3.0版本。升级openssl库有可能会导致SSL会话失败,我在升级 wincurl 时,意外的收获了一个函数。这个函数非常的不起眼,但具有的现实意义却很大。大部分情况下如果你不调用该函数,并不影响SSL会话和通信,但有时会被某些服务器拒绝。一旦被拒绝,查找具体的原因将变得非常痛苦。这个函数的意义好比HTTP协议中HOST字段,它和NGINX反向代理原创 2022-06-28 01:19:33 · 986 阅读 · 1 评论 -
【无标题】
前言有时候使用上的包,发现有,我们知道如何修改,但是别人可能一时半会没法更新,或者是我们特殊需求,别人不愿意修改,这时候我们只能自己动手丰衣足食。那么我们应该如何修改别人的源码呢?首先,直接修改里面的文件是不太行的,重新安装依赖就没有了。一般常用办法有两个:这两个办法的缺陷就是:更新麻烦,我们每次都需要手动去更新代码,无法与插件同步更新。如果我们要修改的代码仅仅是别人的一个小模块,其他大部分代码都不动,这时候有一个很投机的操作:利用 来覆盖别人代码。一般用来配置路径别名,使我们可以少写路径代码:也就是说原创 2022-06-27 12:51:02 · 103 阅读 · 0 评论 -
论文解读(LG2AR)《Learning Graph Augmentations to Learn Graph Representations》
我们引入了 LG2AR,学习图增强来学习图表示,这是一个端到端自动图增强框架,帮助编码器学习节点和图级别上的泛化表示。LG2AR由一个学习增强参数上的分布的概率策略和一组学习增强参数上的分布的概率增强头组成。我们表明,与之前在线性和半监督评估协议下的无监督模型相比,LG2AR在20个图级和节点级基准中的18个上取得了最先进的结果。整体框架如下:增强编码器 gω(.):R|V|×dx×R|E|⟼R|V|×dh×Rdhgω(.):R|V|×dx×R|E|⟼R|V|×dh×Rdhg_{\omega}(.): \m原创 2022-06-27 01:17:35 · 533 阅读 · 0 评论 -
一个快速切换一个底层实现的思路分享
现实场景往往是这样,我们应对一个需求,很快就会有一个处理方法了,然后根据需求做了一个还不错的实现。因为实现了功能,业务很happy,老板很开心,all the world is beatiful.但随着公司的发展,有人实现了一套底层的标准组件,按要求你必须要接入他那个,他的功能与你类似,但你必须要切换成那个。且不论其实现的质量怎么样,但他肯定是有一些优势的,不过他作为标准套件,不可能完全同你的需求一致。因此,这必定涉及到改造的问题。一般这种情况下,我们是不太愿意接的,毕竟代码跑得好好的,谁愿意动呢?而且别人原创 2022-06-26 12:47:25 · 105 阅读 · 0 评论 -
记一次beego通过go get命令后找不到bee.exe的坑
学习goweb开发,gin是个轻量级的框架。如果想要一个类如aspnetmvc帮我们搭建好了的goweb框架,beego值得去学习。否则gin下面需要动手构建好多代码。新手还是先学现成的节约时间成本。新手经验,不对地方多指教。第一步:先建一个项目,因为网上教程是执行然后可怕的事情发生了,搜索整个电脑没有发现大部分教程所谓的bee.exe。然后时间一分一秒的在百度上浪费了,依然没找到。知道发现这个提问的同仁。基于最新版go1.18安装beego后发现未在磁盘任何地方找到bee命令 · Issue #4934原创 2022-06-25 12:55:18 · 1108 阅读 · 8 评论 -
使用dockerfile部署springboot应用
本章简单展示如何最短时间 把springboot应用打包成镜像并创建成容器。准备工作:1.安装docker ,保证执行docker version没有问题2.拉下来一个jdk镜像 docker pull openjdk:8-jdk-alpine项目地址:https://github.com/honstat/sp-web.gitApp.classView Codeapplication.yamlView Code直接启动访问curl 127.0.0.1:9098/ping 能返回ok应用算是创建好了,接原创 2022-06-24 12:46:05 · 7309 阅读 · 0 评论 -
【Java面试】@Resource 和 @Autowired 的区别
@Resource和@Autowired的区别我认为是在它们的一个注入的一个方式上@Resource它是根据name来进行注入的,@Autowired是根据类型来注入的。好的,面试官。@Resource和@Autowired这两个注解的作用都是在Spring生态里面去实现Bean的依赖注入。下面我分别说一下@Autowired和@Resource这两个注解。闪现 [@Autowired的作用详解 ] 几个字。首先,@Autowired是Spring里面提供的一个注解,默认是根据类型来实现Bean的依赖注入。原创 2022-06-23 12:46:19 · 1444 阅读 · 0 评论 -
架构师之路,从「存储选型」起步
经常有人问,架构师的学习路线是什么?我一般推荐架构师的基本功,是从「存储选型」开始的。本文整理了存储选型的思路和整体框架,主要包括几个部分内容:DB-Engines数据库排名并不代表数据库的安装数量,或者使用量。但某数据库越来越受欢迎则代表在一定时间范围内更加广泛的使用。https://db-engines.com/en/ranking这里贴了一张2022年5月份的排行榜。我们对于排名前10的数据库中,比较熟悉的应该是MySQL、Redis和ES,这三个数据库在我们日常开发中占据绝大多数的比例。但是,这三个原创 2022-06-23 01:18:52 · 232 阅读 · 0 评论 -
NLog自定义Target之MQTT
重写Write方法使用下面将使用Nlog.Target.MQTT,演示通过web实时查看应用程序的日志。配置MQTTServer和NLogWeb连接MqttServer输出日志实时查看日志访问index.html通过Mqtt客户端订阅日志源码在这里NLog.Targets.MQTT:https://github.com/iioter/NLog.Targets.MQTT[1] NLog.Targets.MQTT:https://github.com/iioter原创 2022-06-21 12:51:12 · 294 阅读 · 1 评论 -
循序渐进 Redis 分布式锁(以及何时不用它)
假设我们有个批处理服务,实现逻辑大致是这样的:流程如图:现在我们单独看看上图中虚线框中的内容(3~6):批处理服务从数据库拉取任务列表投递到消息队列。生产环境中,为了高可用,都会部署至少两台批处理服务器,也就是说至少有两个进程在执行虚线框中的流程。有什么问题呢?假设这两个进程同时去查任务表(这是很有可能的),它俩很可能会得到同一批任务列表,于是这批任务都会入列两次。上图虚线框中那段逻辑在并发原语中有个专门名称叫“临界区”——我们要做的就是让多个操作者(进程、线程、协程)必须一个一个地(而不能一窝蜂地)去执行原创 2022-06-21 01:18:55 · 288 阅读 · 0 评论 -
TypeScript(4)接口
TypeScript 的核心原则之一是对值所具有的结构进行。我们使用接口(Interfaces)来定义对象的类型。声明接口需要使用关键字,接下来我们定义一个接口,需求如下需求: 创建, 需要对人的属性进行一定的highlighter- Python第一步:创建人的对象highlighter- CSS我们创建了一个类型为Person的person对象,里面的属性有id、name、age、sex第二步:给person对象声明类型,第一步的时候我们声明了类型Person,但是这个类型具体是什么,我们还没定义原创 2022-06-20 12:49:35 · 382 阅读 · 0 评论 -
redis持久化之RDB (七)
Redis 提供了不同级别的持久化方式:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里,Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到。一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的原创 2022-06-20 01:17:11 · 154 阅读 · 0 评论 -
使用nodejs的wxmnode模块,开发一个微信自动监控提醒功能,做个天气预报。
这个模块是一个公众号的模块,名字叫“帮你看着”。原本这个公众号是做股票监控提醒的,我也没炒股。因为接口支持写入任何内容,所以可以有其他的用处。比如做成天气预报定时提醒。我们去npmjs中看下这个模块的详情。可以看出,在使用之前,需要先关注一下一个用于接收提醒的公众号,扫码,然后获得生成的账号和密码,就能使用这个模块了。直接安装即可,而且使用方式也很简单:效果如下:可以看出,要提醒的内容都被发送到了微信中了。好了,发送到微信的功能找好了,我们在去找找获取天气情况的网站,然后把需要的内容抓取过来实时发送就可以原创 2022-06-19 12:49:57 · 680 阅读 · 0 评论 -
c++可视化性能测试
本文所有代码贴出来的目的是帮助大家理解,并非是要引导大家跟写,许多环境问题文件问题没有详细说明,代码也并不全面,达不到跟做的效果。建议直接阅读全文即可,我在最后会给出详细代码地址,对源代码细节更感兴趣的同学可以下载参考。在c++中进行性能测试是令人头疼的问题,我们往往需要在数以千计的log中分析出性能瓶颈————找出最耗时的部分。而这部分工作是极其枯燥的:首先,我们需要准备好一个计算时间的工具类,好在我们拥有,有了它我们就可计算出过程经历的时间。聪明的你或许会搞出这样一个东西:哦!我觉得他已经足够好了,或原创 2022-06-19 01:16:10 · 505 阅读 · 0 评论 -
Django——表单
看了下教程,以为表单很简单呢,结果搞了一两个钟才弄懂,哈哈哈,所以说不要小瞧每一件事。先说明下HTTP请求:HTTP协议以"请求-回复"的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据URL来提供特定的服务。下面以输入框搜索为例,分别用get和post方法实战演练(还是基于DjangoTest项目演练),如下是效果图:1)form的action属性说明:action=“/search/”,表示表单提交给的url,此处即表示表单提交后提交到http://原创 2022-06-18 12:49:48 · 319 阅读 · 0 评论 -
vue大型电商项目尚品汇(后台篇)day03
今天把平台属性的管理基本完成了,后台管理做到现在基本也开始熟悉,确实就是对ElementUI的一个熟练程度。先把接口弄好,应该在第三级标题选择后进行发请求静态页面搭建渲染数据属性值列表,用到一个新组件 tag,并且这里有多个属性值,所以要遍历,既然要在里面加标签那就要用slot,最后添加两个图标点击添加修改应该将下面的表格组件隐藏出来一个新的组件如果没有选择到三级分类的时候,添加属性按钮应该不可点新的页面布局点击取消应该回到列表展示界面首先我们的接口需要的数据,这里要注意我们categoryId是收集cat原创 2022-06-18 01:18:55 · 812 阅读 · 0 评论 -
MAUI模板项目闪退问题
在最初发布的时候就曾创建过几个模板项目进行体验过,没遇到什么坑。由于最近需要开发针对餐饮行业的收银机(安卓系统)开发一款应用,这种收银机一般配置不咋滴,系统版本和性能也肯定比不上我们自己使用的手机。在做技术选型时首先想到了,备选,。都是大厂维护的跨平台应用框架,在使用框架时遇到新建的模板应用居然启动时直接闪退,最终也是解决了这个闪退问题,遂分享下这一经历。演示创建项目过程,所有流程都是IDE默认,不做任何修改。用VS新建模板项目,如下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(im原创 2022-06-16 12:54:09 · 662 阅读 · 0 评论 -
微信小程序使用 ECharts
echarts-for-weixin 是 ECharts 官方维护的一个开源项目,提供了一个微信小程序组件(Component),我们可以通过这个组件在微信小程序中使用 ECharts 绘制图表。echarts-for-weixin 自身包含很多使用示例,方便我们参考。克隆项目:切换版本:echarts-for-weixin 最新的 Releases 版本为 v2.0.0,内部使用的 ECharts 版本为 5.1.1,详情可以参考 Releases。项目文件夹 ec-canvas 就是我们需要的 EC原创 2022-06-15 01:18:28 · 429 阅读 · 0 评论 -
ShardingSphere 异构迁移最佳实践:将3.5亿量级的顾客系统 RTO 减少60倍
当当顾客系统主要负责账户的注册、登录、隐私数据维护等功能,历史技术栈为 PHP+SQL Server,是标准的集中式架构,如下图。重构项目启动前,顾客系统的数个业务模块存在多个棘手的业务问题和技术挑战,如逻辑分散、吞吐量低及运维成本高等问题。为改善顾客的购物体验,当当技术团队决定对业务逻辑和底层数据架构进行优化,实现顾客系统多场景下的可用性、扩展性及综合提升等多个目标。在重构过程也实现了众多技术创新,如跨数据源双写、读写分离、智能网关及灰度发布等技术。从需求设计、分库分表规划、逻辑优化、压测再到完全上线等原创 2022-06-14 01:18:45 · 226 阅读 · 0 评论 -
iOS全埋点解决方案-采集崩溃
采集应用程序崩溃信息,主要分为以下两种场景: NSException 异常是 Objective-C 代码抛出的异常。在 iOS 应用程序中,最常见就是通过 @throw 抛出的异常。比如,常见的数组越界访问异常。 我们可以通过 NSSetUNcaughtExceptionHandle 函数来全局设置异常处理函数,然后手机异常堆栈信息并触发响应的事件($AppCrashed),来实现 NSException 异常的全埋点。第一步:在 SensorsSDK 项目中创建 SensorsAnalytics原创 2022-06-13 12:50:32 · 841 阅读 · 0 评论 -
synchronized下的 i+=2 和 i++ i++执行结果居然不一样
逛【博客园-博问】时发现了一段有意思的问题:问题链接:https://q.cnblogs.com/q/140032/这段代码是这样的:java代码很简单(一开始我没看清楚问题,还建议楼主去学习下Java语法,尴尬的一批~~~)大家觉得这段代码会输出什么呢?没错就是死循环!!!有意思的地方来了,如果我把同步方法 evenIncrement() 改为下面这样:java执行结果是退出了虚拟机!!!是不是很纳闷儿,要是不纳闷儿,就不用往下看了 >_...原创 2022-06-13 01:18:38 · 510 阅读 · 0 评论 -
Jetpack架构组件学习(3)——Activity Results API使用
本篇大约有4537个字,阅读预计需要5.67分钟技术与时俱进,页面跳转传值一直使用的是方法,如今有了新的API实现方式,学习并稍微总结下 😄MainActivity代码:Main2Activity代码:效果:上面的代码应该是比较基础的代码,这里我就不再赘述了主要说些缺点所有逻辑都在方法里进行判断,根据和进行判断如果单个还好说,但是如果有多个的,就会看见里一堆的if逻辑,阅读起来就十分繁琐,且维护困难谷歌官方也是考虑到了这个,于是便是在新版本推出了个Activity Results API去替代了上面所述的.原创 2022-06-12 12:53:42 · 349 阅读 · 1 评论