SF
Emac
Emac
注册登录
关注博客
注册登录
主页
关于
RSS
【Mini AI Agent】如何用 100 行代码构建一个最小智能体?
Emac
5 月 5 日
阅读 7 分钟
1.6k
今年 3 月份,知名人工智能科学家吴恩达(Andrew Ng)在社交平台 X 上发帖提到,“我认为 AI 代理工作流程将在今年推动 AI 的大规模进步——甚至可能比下一代基础模型还要多......GPT-3.5(零样本)的正确率为 48.1%,GPT-4(零样本)为 67.0%,而在智能体循环中,GPT-3.5 的正确率高达 95.1%”。此贴发出之后,引发了业界广...
【热点】程序员会不会被 AI 取代?
Emac
1 月 2 日
阅读 4 分钟
469
前两周,ZA技术社区举办了一场主题为“未来,程序员职业会消失吗?”的Geek圆桌派,我作为业务研发的代表参加了此次直播。由于直播时间有限,未能充分表达我的观点,故写此篇博客进行详述。另一方面,也想借此篇博客,印证十年后我的这些观点是否还成立。
故障模型哪家强?PDR 模型来帮忙
Emac
2022-04-17
阅读 2 分钟
2.2k
搞安全的同学都知道,有一个非常著名的网络安全模型叫 PDR 模型,提出者是美国国际互联网安全系统公司(ISS),其核心论断是网络安全是一个时间问题,对应的公式为 Et = Dt + Rt - Pt,其中:Et (Exposure) 暴露时间,系统暴露在攻击下的时间;Pt (Prevent) 防御时间,系统扛住外部攻击的时间,或者说攻击者成功渗透的整...
不仅仅是一把瑞士军刀 —— Apifox的野望和不足
Emac
2022-03-13
阅读 2 分钟
3.3k
声明:本文内容不涉及任何 Apifox 的功能介绍,一来网上这方面的文章已经汗牛充栋,二来 Apifox 本身的用户体验做的非常好,对于开发者而言学习成本基本为零。
代码评审赋魅
Emac
2020-09-20
阅读 4 分钟
1.9k
先来看一个令无数技术Leader闻风丧胆的项目“死亡”三角,业务压力引发代码质量下降,代码质量下降引发开发效率下降,开发效率下降又加重了业务压力,最终导致业务压力山大,乃至项目烂尾。如何破解?方法有很多,像精简业务需求、增加开发人手、升级技术架构等,很多时候需要多管齐下,但凡打掉这个“死亡”三角中的任何一...
【JDK 11】关于 Java 模块系统,看这一篇就够了
Emac
2020-07-04
阅读 9 分钟
2.1k
继 2014 年 3 月 Java 8 发布之后,时隔 4 年,2018 年 9 月,Java 11 如期发布,其间间隔了 Java 9 和 Java 10 两个非LTS(Long Term Support)版本。作为最新的LTS版本,相比 Java 8,Java 11 包含了模块系统、改用 G1 作为默认 GC 算法、反应式流 Flow、新版 HttpClient 等诸多特性。作为 JDK 11 升级系列的第一篇,...
【Spring Cloud】详解Feign常用配置
Emac
2020-03-22
阅读 3 分钟
7.2k
搭载着Spring Cloud的顺风车,Feign正以席卷之势成为使用Spring架构的大大小小互联网公司发起HTTP调用的首选框架。基于接口的声明式定义、客户端负载均衡、断路器和后备方法(fallback)是Feign相对上一代HTTP调用框架(比如Spring Template,Apache HttpClient)的四大优势。
MySQL Connect/J 8.0时区陷阱
Emac
2019-12-18
阅读 3 分钟
5.2k
最近公司正在升级Spring Boot版本(从1.5升级到2.1),其间踩到一个非常隐晦的MySQL时区陷阱,具体来说,就是数据库读出的历史数据的时间和实际时间差了14个小时,而新写入的数据又都正常。如果你之前也是使用默认的MySQL时区配置,那么大概率会碰到这个问题,深究其背后的原因又涉及到很多技术细节,故整理出来分享给大...
服务网格:微服务进入2.0时代
Emac
2018-04-01
阅读 3 分钟
4k
微服务自2014年3月由Martin Fowler首次提出以来,在Spring Cloud、Dubbo等各类微服务框架的帮助下,以燎原之势席卷了整个IT技术界,成为了最主流的分布式应用解决方案。但仍然还有很多问题没有得到根本性的解决,比如技术门槛高、多语言支持不足、代码侵入性强等。如何应对这些挑战成为了下一代微服务首要回答的问题。直...
零基础玩转Serverless
Emac
2018-02-04
阅读 4 分钟
2.2k
上篇文章首先指出了Serverless=No Server这一常见误区,然后明确定义了函数这个Serverless中的核心概念,接着介绍了Serverless的4个关键特性:运行成本更低、自动扩缩容、事件驱动、无状态性,最后分析了Serverless和微服务、DevOps之间的关联关系。为了帮助大家更直观的理解Serverless,本文将介绍三种在AWS Lambda上创...
所谓Serverless,你理解对了吗?
Emac
2018-01-01
阅读 3 分钟
4.8k
随着DevOps和微服务的理念日渐被IT业界所接受,另一个新名词Serverless也开始进入人们的视野。尤其在今年4月份国内两大云服务厂商阿里云、腾讯云先后推出各自的Serverless产品之后,Serverless一时洛阳纸贵。那到底什么是Serverless,它跟DevOps和微服务又有什么样的联系呢?本文将尝试揭开Serverless的神秘面纱,让你一...
【Spring 5】响应式Web框架实战(下)
Emac
2017-07-18
阅读 6 分钟
5.3k
引子:被誉为“中国大数据第一人”的涂子沛先生在其成名作《数据之巅》里提到,摩尔定律、社交媒体、数据挖掘是大数据的三大成因。IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。在此背景下,包括NoSQL,Hadoop, Spark, Storm, Kylin在内的大批新技术应运而生。其中以RxJava和Reactor为代表的响...
【Spring 5】响应式Web框架实战(上)
Emac
2017-06-30
阅读 5 分钟
8.2k
引子:被誉为“中国大数据第一人”的涂子沛先生在其成名作《数据之巅》里提到,摩尔定律、社交媒体、数据挖掘是大数据的三大成因。IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。在此背景下,包括NoSQL,Hadoop, Spark, Storm, Kylin在内的大批新技术应运而生。其中以RxJava和Reactor为代表的响...
响应式编程总览
Emac
2017-06-22
阅读 6 分钟
2.6k
引子:被誉为“中国大数据第一人”的涂子沛先生在其成名作《数据之巅》里提到,摩尔定律、社交媒体、数据挖掘是大数据的三大成因。IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。在此背景下,包括NoSQL,Hadoop, Spark, Storm, Kylin在内的大批新技术应运而生。其中以RxJava和Reactor为代表的响...
【Spring 5】响应式Web框架前瞻
Emac
2017-05-30
阅读 3 分钟
4.8k
引子:被誉为“中国大数据第一人”的涂子沛先生在其成名作《数据之巅》里提到,摩尔定律、社交媒体、数据挖掘是大数据的三大成因。IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。在此背景下,包括NoSQL,Hadoop, Spark, Storm, Kylin在内的大批新技术应运而生。其中以RxJava和Reactor为代表的响...
面向开发的测试技术(三):Web自动化测试
Emac
2017-05-15
阅读 5 分钟
3.8k
引子:自上世纪末Kent Beck提出TDD(Test-Driven Development)开发理念以来,开发和测试的边界变的越来越模糊,从原本上下游的依赖关系,逐步演变成你中有我、我中有你的互赖关系,甚至很多公司设立了新的QE(Quality Engineer)职位。和传统的QA(Quality Assurance)不同,QE的主要职责是通过工程化的手段保证项目质量,这...
面向开发的测试技术(二):性能测试
Emac
2017-05-10
阅读 5 分钟
5.4k
引子:自上世纪末Kent Beck提出TDD(Test-Driven Development)开发理念以来,开发和测试的边界变的越来越模糊,从原本上下游的依赖关系,逐步演变成你中有我、我中有你的互赖关系,甚至很多公司设立了新的QE(Quality Engineer)职位。和传统的QA(Quality Assurance)不同,QE的主要职责是通过工程化的手段保证项目质量,这...
面向开发的测试技术(一):Mock
Emac
2017-05-01
阅读 5 分钟
3.2k
引子:自上世纪末Kent Beck提出TDD(Test-Driven Development)开发理念以来,开发和测试的边界变的越来越模糊,从原本上下游的依赖关系,逐步演变成你中有我、我中有你的互赖关系,甚至很多公司设立了新的QE(Quality Engineer)职位。和传统的QA(Quality Assurance)不同,QE的主要职责是通过工程化的手段保证项目质量,这...
【Spring】详解Spring MVC中不同格式的POST请求参数的数据类型转换过程
Emac
2017-04-23
阅读 6 分钟
19.2k
你也许写过很多Controller,那你可曾和我一样好奇最初字符串格式的HTTP请求参数如何转化成类型各异的Controller方法参数? 引子:假设现在有一个Long型的请求参数,需要转化为OffsetDateTime类型的方法参数,请问如何实现? 1 常见的POST请求格式 首先,让我们看一下3种常见的POST请求格式: application/x-www-form-url...
JUnit 5的前世今生
Emac
2017-04-09
阅读 3 分钟
3.2k
对Java程序员而言,JUnit无疑是使用最广泛的单元测试框架。自2006年初JUnit 4发布之后,11年间陆陆续续更新了13个小版本,最新的4.12版本是在2014年底发布的。在现今新技术、新框架层出不穷的IT圈,JUnit的版本更新速度不可谓不缓慢,这一点上,和去年同期发布的Jenkins 2.0如出一辙,后者也花了11年才升级了一个大版本...
【书友会】重读经典:《整洁代码》
Emac
2017-03-06
阅读 2 分钟
2.3k
继“赏码会”之后,最近和团队开始尝试一种新的技术活动形式——“书友会”。简单来说,就是一起选出一些经典的技术书籍,线下阅读,当面讨论,共同进步。文末有具体的活动形式,欢迎到我的留言板交流。
【赏码会】Redis的最佳拍档:Jedis
Emac
2017-02-06
阅读 3 分钟
3.3k
作为Redis官方推荐的三个Java Client之一,Jedis推出时间最早,使用最为广泛(Spring默认使用的Redis Client就是Jedis),同时Star数也遥遥领先于另外两个。和其他Redis Client一样,Jedis通过RESP协议向Redis发送命令请求和解析响应数据。
【赏码会】HTTP Client中的瑞士军刀:Retrofit
Emac
2016-12-12
阅读 3 分钟
5.9k
最近开始在GitHub上找一些优秀的开源项目,跟团队一起阅读源代码,每周一次,每次一个半小时左右,美其名曰“赏码会”(还记得《唐伯虎点秋香》那句“赏花赏月赏秋香”吗?)。为什么要阅读源代码?好处举不胜举,比如学习如何合理的命名,如何写出简洁、清晰的注释,如何编写有效的单元测试,知道良好的编码风格是什么样的...
微服务化改造系列之四:授权中心
Emac
2016-12-04
阅读 3 分钟
7.3k
这篇文章是微服务化改造系列的第四篇,主题是授权中心。有了服务注册中心和配置中心,下一步应该就可以发起服务调用了吧?Wait, 还有一个关键问题要解决。不同于单体应用内部的方法调用,服务调用存在一个服务授权的概念。打个比方,原本一家三兄弟住一屋,每次上山打猎喊一声就行,后来三兄弟分了家,再打猎就要挨家挨...
微服务化改造系列之三:配置中心
Emac
2016-11-27
阅读 2 分钟
8.7k
这篇文章是微服务化改造系列的第三篇,主题是配置中心。上一篇我们谈到服务注册中心,即通过提供某种注册和发现的机制,解决服务互通的问题。那么问题来了,一个服务如何知道服务注册中心的地址呢?这就涉及到服务配置了。我们知道,大至一个PaaS平台,小至一个缓存框架,一般都依赖于特定的配置以正常提供服务,微服务...
微服务化改造系列之二:服务注册中心
Emac
2016-11-21
阅读 2 分钟
8.5k
这篇文章是微服务化改造系列的第二篇,主题是服务注册中心。作为微服务架构最基础也是最重要的组件之一,服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和...
微服务化改造系列之一: 总览
Emac
2016-11-20
阅读 4 分钟
4.1k
第一,我所在公司(简称XR)的后台服务采用的主技术栈是Scala,虽然开发效率很高,但也带来一系列的副作用。1.由于Scala语言强大的表达能力和丰富的函数式特性,很容易写出俗称“意大利面条”式的代码,一个类文件动辄上千行,代码的可读性非常差,导致可维护性也很差。2.编译Scala源码时首先需要将Scala源码转换成Java源...