java技术圈 为您找到相关结果 111

Hive SQL的编译过程

Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到了一些大大小小的问题。通过向社区的咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有了比较深入的理解。对这一过程的理解不仅帮助我们解决了一些Hive的bug,也有利于我们优化Hive SQL,提升我们对Hive的掌控力,同时有能力去定制一些需要的功能。MapReduce实现基本SQL操作的原理详细讲解SQL编译为MapReduce之前,我们先来看看MapReduce框架实现SQL基本操作的...阅读全文

博文 2020-08-07 07:08:10 美团技术团队

并发编程

TIP 本文主要是介绍 并发编程-JUC简介 。 1. JUC 简介2. volatile 关键字3. i++ 的原子性问题3.1 CAS 算法4. 并发容器类4.1 ConcurrentHashMap4.2 CountDownLatch(闭锁)5. 创建执行线程的方式三6. 同步锁(Lock)7. ReadWriteLock(读写锁)8. 线程同步锁9. 线程池9.1 线程调度10 Fork/Join 框架参考文章 # 导读【重要】 进入Java多线程进阶篇的学习。初学者通过基础篇的学习,应该已经对多线程的初步使用有了基本概念和掌握。多线程这块知识的学习,真正的难点不在于多线程程序的逻辑有多复杂,而在于理清J.U.C包中各个多线程工具类之间的关系、特点及其使用场景(从整体到局部、高屋建瓴,...阅读全文

博文 2021-12-26 14:31:56 JUC简介 | 智能后端和架构

Spark(五)Spark任务提交方式和执行流程 - Frankdeng

一、Spark中的基本概念 (1)Application:表示你的应用程序 (2)Driver:表示main()函数,创建SparkContext。由SparkContext负责与ClusterManager通信,进行资源的申请,任务的分配和监控等。程序执行完毕后关闭SparkContext (3)Executor:某个Application运行在Worker节点上的一个进程,该进程负责运行某些task,并且负责将数据存在内存或者磁盘上。在Spark on Yarn模式下,其进程名称为 CoarseGrainedExecutor Backend,一个CoarseGrainedExecutor Backend进程有且仅有一个executor对象,它负责将Task包装成taskRunner,并从...阅读全文

博文 2019-11-27 06:07:44 博客园

产品经理到底要不要懂技术?

「产品经理需要懂技术吗?懂到什么程度?」这是产品新人最容易提起的问题。 不学吧,怕做产品的时候思考不周全,学吧,又感觉太难,不知道从何学起。 今天咱们就来聊聊对于产品经理来说,到底要不要懂技术,以及对技术要了解到什么程度。 ![image.png](https://img-blog.csdnimg.cn/20200622143801997.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70) 我们把对技术的了解程度分为3个层次: ...阅读全文

基于Netty的高性能RPC框架Nifty(一)

1. 前言 Thrift是Facebook贡献给apache的rpc框架,但是这款框架的java版本在公司内部并不是那么受待见,因为其性能相比C++版本差了很多,但是后续基于netty重写了以后性能得到了极大的提升,相比于C++版本已经差距不大了。为此取了个新的名字Nifty = Netty + Thrift。 如果你使用过thrift的话,基本都会使用自动生成的代码,那真的是没法看,即使定义一个简单的类都会生成巨多的代码,把read,write方法全部写到里面去了。总之早期的thrfit各方面都似乎不那么友好。后面架构进行了升级,提供了新的swift库,注意这个不是ios的swift,从而生成的java类和普通的java类基本一致,无非多了点注解,而序列化反序列化也都移到了相应的包中,从而...阅读全文

博文 2021-08-16 07:02:59 服务端启动全解析

敏捷开发实践之Scrum方法运用

摘要:目前软件开发除了强调产品质量,同时对产品能够快速发布并且迅速适应市场变化的要求也日益强烈。为适应这种开发环境和市场需求,传统的软件开发模式已被敏捷开发模式所替代。本文介绍敏捷软件开发中的Scrum方法,并结合实际问题,分析Scrum方法在实践中的运用。 ![image.png](https://img-blog.csdnimg.cn/20200117153148745.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70) ...阅读全文

企业数字化转型带来的三大变革

什么是数字化转型的本质?我们认为,数字化转型的本质是,在数据+算法定义的世界中,以数据的自动流动化解复杂系统的不确定性,优化资源配置效率,构建企业新型竞争优势。 无论是社会经济,还是科学技术,都始终处于一个流动的过程之中,由于信息技术和硬件设备的不断成熟,数字化转型是当下经济社会中的一个里程碑事件,也是企业发展的必经之路。数字化转型对于企业来说,不单单是某一次的变革和动作,而是企业的整体框架升级,渗透到企业的生产、决策、经营等各个环节之中。在数字化转型中占据先机的企业,将会在竞争中获得更多的优势。 下面我们就来细数一下,企业数字化转型将会给企业带来的三个变革。 一、决策革命 决策革命简而言之就是基于数据+算法的决策。“数据+算法=服务”实现分四个环节:一是描述,在虚拟...阅读全文

Jackson 快速入门 - 捏造的信仰

捏造的信仰 2.3k Jackson 快速入门 java jackson json 发布于 7月14日 本文是对 Jackson 的快速入门介绍,主要分为四部分: 基本使用 基础配置 自定义序列化/反序列化 对泛型的处理 上面这几个话题足以覆盖日常开发的场景了。限于篇幅所限,本文力求读者读完后能掌握 Jackson 在日常使用中的绝大部分场景,以及了解如何着手探索 Jackson 的深层定制。 基本使用 引入 Jackson 本文假设读者熟悉 Maven 的使用,那么只需要在项目中添加下面的依赖关系就可以了: com.fasterxml.jackson.core jackson-databind阅读全文

博文 2020-09-02 02:51:58 SegmentFault 思否

【Java】利用反射执行Spring容器Bean指定的方法,支持多种参数自动调用

目录 使用情景 将定时任务录入数据库(这样做的好处是定时任务可视化,也可以动态修改各个任务的执行时间),通过反射执行对应的方法; 配合Netty实现简单的HTTP请求处理框架 其他需要使用反射执行Spring方法的业务亦可 目的 很多文章都提到了反射,但是对于方法参数处理这一块都是明确了类型,不支持按照实际参数动态转换,而本篇文章提供了一个思路怎么做到方法参数的动态调用。 大家也可以通过利用本文的方法结合自己的业务场景写出复用性更高、可扩展性更好的代码。欢迎各位指出文章中的错误,如果有更好的思路可以在下方评论,我们一起讨论。 欢迎转发,请注明出处。 实现方式 前提: 明确清楚需要执行的类和方法。 思路 通过Spring容器获取需要执行的类,注意:从spring容器中获取的类可能是被JDK或C...阅读全文

博文 2021-06-07 13:00:18 博客

聊聊 TCP 长连接和心跳那些事 | 徐靖峰

前言可能很多 Java 程序员对 TCP 的理解只有一个三次握手,四次握手的认识,我觉得这样的原因主要在于 TCP 协议本身稍微有点抽象(相比较于应用层的 HTTP 协议);其次,非框架开发者不太需要接触到 TCP 的一些细节。其实我个人对 TCP 的很多细节也并没有完全理解,这篇文章主要针对微信交流群里有人提出的长连接,心跳问题,做一个统一的整理。 在 Java 中,使用 TCP 通信,大概率会涉及到 Socket、Netty,本文将借用它们的一些 API 和设置参数来辅助介绍。 长连接与短连接TCP 本身并没有长短连接的区别 ,长短与否,完全取决于我们怎么用它。 短连接:每次通信时,创建 Socket;一次通信结束,调用 socket.close()。这就是一般意义上的短连接,短连接的好...阅读全文

博文 2019-12-23 03:56:40 个人博客

WebRTC简介

引言最近一段时间的主要工作内容是开发一个远程控制手机的功能,其中使用到的一个关键技术就是WebRTC,在此准备分享一下我对这个技术的理解。其他 WebRTC 相关文章均收录于贝贝猫的文章目录。 什么是WebRTCWebRTC是一个由Google发起的实时通讯解决方案,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,我们可以通过技术快速地构建出一个音视频通讯应用。 虽然其名为WebRTC,但是实际上它不光支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通。WebRTC架构架构组件Your Web AppWeb开发者开发的程序,Web开发者可以基于集成WebRTC的浏览器提供的web API开发基于视...阅读全文

博文 2021-09-06 08:58:22 知乎

Scrum与OKR融合实践经验分享

很多软件公司的研发团队都喜欢用Scrum管理研发流程,Scrum是一个诞生于20世纪90年代的敏捷方法论,CORNERSTONE内部也一直在使用这一方法。 相较于瀑布式开发的其他传统方法,Scrum最大的优点是关注持续快速迭代以及对变化的适应性。如果使用瀑布式开发,在项目一开始就要确定项目结果,并且要对此达成一致,通常还要有详细的计划和项目规范。项目计划是从这些规范中产生的,通过以项目在未来的完成情况为出发点,向后推进,以线形的方式规划出时间、预算和各阶段的联系性。 瀑布式开发的成品是一份路线图,能推算出一款软件到推出之日为止,需要完成的所有开发工作,而不足之处就是如果在软件开发过程中出现了变动,包括时间线或各阶段连接时出现问题,甚至在很多时候连预算都需要完全重做,实际上这就破坏了计划。 S...阅读全文

博文 2019-12-30 08:59:15 CORNERSTONE

MapReduce 数据倾斜原因和解决方案_一次次尝试

MapReduce简介 MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义: 1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。 2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。 3)MapReduce是一...阅读全文

博文 2021-02-22 04:44:09 CSDN博客_mapreduce数据倾斜原因

Hadoop中的Mapper和Reducer数量设定

在对Mapper调优的过程中,一个经验法则是: map任务最好拥有一分钟以上的运行时间。 因为如果任务运行时间过短,将导致在整个作业的执行过程中任务启动所花费的时间过大,从而降低了实际的任务执行效率。 对map任务的运行时间影响最大的是Mapper的个数,不过与Reducer不同,Mapper的个数是无法显示指定的。 调节Mapper数量的一种方式是设置参数mapred.jobtracker.maxtasks.per.job, 但其只能限制每个job中并发运行的map或reduce任务的上限,而当实际运行的map数低于该上限时,该参数将失效。 如果想要对Mapper个数进行更加直接有效的控制,需要指定输入数据的分片大小。 输入分片(input split)是MapReduce框架为使map任...阅读全文

博文 2020-08-31 02:33:58 Summer is Green

如何有效利用企业资源,发挥Scrum最大优势?

Scrum与组织的关系 ![image.png](https://img-blog.csdnimg.cn/20191224172145560.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTM3NDkz,size_16,color_FFFFFF,t_70) Scrum是一种能使业务变得敏捷的框架,而企业恰恰需要变得敏捷。只是,企业本身有时候并没有足够的能力来帮助Scrum团队的成长,甚至还会阻碍Scrum团队的成长。 企业能以什么样的方式最大限度地发挥Scrum的优势?又在哪些方面阻碍了个人的发展? 企业本身所具备的公...阅读全文

博文 2019-12-25 08:19:34 CORNERSTONE

双亲委派模型与 Flink 的类加载策略

我们知道,在 JVM 中,一个类加载的过程大致分为加载、链接(验证、准备、解析)、初始化5个阶段。而我们通常提到类的加载,就是指利用类加载器(ClassLoader)通过类的全限定名来获取定义此类的二进制字节码流,进而构造出类的定义。Flink 作为基于 JVM 的框架,在 flink-conf.yaml 中提供了控制类加载策略的参数 classloader.resolve-order,可选项有 child-first(默认)和 parent-first。本文来简单分析一下这个参数背后的含义。parent-first 类加载策略ParentFirstClassLoader 和 ChildFirstClassLoader 类的父类均为 FlinkUserCodeClassLoader 抽象类,...阅读全文

博文 2021-10-22 03:09:33 知乎

工作效率低?这个锅远程办公不背

疫情仍在继续,每个人为这个社会做贡献的方式,除了做好防控和不必要的恐慌外,我们更应该做好本职工作,以确保社会经济的正常运转,要做到“各司其职”。 从2月3号开始,越来越多企业选择了远程办公模式。但因为沟通不畅所带来的信息不对称、效率低下,内耗等问题,对管理者和员工都是不小的考验。 远程办公三大疑问:如何远程办公?如何高效远程办公?如何高效协同他人一起远程办公? 别急,这就为大家一个个来解答。 一、如何远程办公? 据阿里统计,2月3日,全国上千万企业、近2亿人开启在家办公模式。要进行远程办公,当然最基础的条件是得有互联网,4G网络、光纤宽带均可,配上一台电脑,我们一起做整条街最靓的仔。 虽然隔着网线无法获知屏幕那端真实的办公情况,但节后复工且远程介入,最切忌将家庭舒适、慵懒、休闲的气息传递至工...阅读全文

博文 2020-02-24 05:18:26 CORNERSTONE

Cglib及其基本使用 - 五月的仓颉

前言 最近一直在看Spring源码,其实我之前一直知道AOP的基本实现原理: 如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cglib 即使针对接口做代理,也可以将代理方式配置成走Cglib的 之后要看AOP源码了,Proxy+InvocationHandler这套我已经很熟了,想着如果把Cglib研究研究,应该看AOP源码的时候会更快一些,因此本文就研究一下Cglib是什么、如何一些基本的使用、底层实现原理。 Cglib是什么 Cglib是一个强大的、高性能的代码生成包,它广泛被许多AOP框架使用,为他们提供方法的拦截。下图是我网上找到的一张Cglib与一些框架和语言的关系: 对此图总结一下: 最底层的是字节码Byteco...阅读全文

博文 2021-06-12 14:36:43 博客园

Alibaba之jvm

前言 在开始之前,我们先来模拟一下以下的场景: 小李:“小明,你的接口没有返回数据,麻烦帮忙看一下?” 小明:“我这边的数据也是从别人的服务器中拿到的,但是我不确定是因为逻辑处理有问题导致没有结果,还是因为我依赖的服务有问题而没有返回结果,我需要确认一下。” 小明:“哎呀,线上没有日志,我需要加个日志上个线。” 30 分钟之后…… 小明:“不好意思,日志加错地方了……稍等……” 接来下隆重登场的就是本文的主角 JVM SandBox 了。基于 JVM SandBox,我们可以很容易地做到在不重新部署应用的情况下,给指定的某些类的某些方法加上日志功能。当然,动态加日志仅仅是 JVM SandBox 可以应用的一个小小的场景,JVM SandBox 的威力远不在于此。套用官方的话说就是"JVM-...阅读全文

博文 2021-06-29 02:14:20 sandbox初体验 | 码农家园

Netty 权威指南笔记(二):Java NIO 和 Netty 对比_albon arith

Netty 权威指南笔记二Java NIO 和 Netty 对比 Java NIO 开发Netty 开发 示例程序 Netty 权威指南笔记(二):Java NIO 和 Netty 对比 Netty 是业界流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都说首屈一指的,也已经得到了成百上千商用项目的验证。Netty 框架都有什么优点呢? API 使用简单,开发门槛低。功能强大,预置多种编解码功能,支持多种主流协议。定制能力强,可以通过 ChannelHandler 对通信框架灵活扩展。性能高。成熟稳定,社区活跃,已经修复了 Java NIO 所有的 Bug。经历了大规模商业应用的考验,质量有保证。 Java NIO 开发 我们看一看在 笔记(一)里面的 Jav...阅读全文

博文 2021-08-27 08:12:00 CSDN博客

SpringCloud+Vertx+Disruptor 金融业撮合交易系统实战

下载地址:百度网盘SpringCloud+Vertx+Disruptor 金融业撮合交易系统实战金融软件工程师一直是高薪争抢的稀缺人才,作为金融软件工程师,需要同时具备软件研发基础和金融业务知识。这门课对于想涉猎、了解以及从事金融行业的技术人员,非常有帮助。课程将带你总览金融行业的IT全景图,重点讲解证券交易中的撮合业务,并利用Vue+Spring Boot等技术栈,从搭建前后端分离的委托终端开始,带你从无到有开发一个高可用低延时的撮合交易系统。助力你成为为国家金融行业基础设施建设添砖加瓦的IT工程师适合人群有前后端基础知识,想投身证券金融行业做开发的同学想进入Fintech行业或银行业,非银金融,互联网金融业的IT工程师技术储备要求具备Java、JavaScript基础了解Spring C...阅读全文

Seata 分布式事务 XA 与 AT 全面解析

Seata 分布式事务 XA 与 AT 全面解析 2021-04-23 FUNKYE Seata Seata 目录 1.XA模式是什么? 1.1什么是XA 1.2什么是Seata的事务模式? 2那么什么是Seata XA 模式? 2.1什么是Seata AT(TXC) 模式? 2.2AT 模式如何做到对业务的无侵入 ? AT模式一阶段 2.3 AT 模式如何保证隔离性 AT 模式二阶段提交 AT 模式二阶段回滚 3.为什么支持XA? 4.为什么Seata要支持XA模式? AT与XA的关系 Seata AT与XA的优劣 总结 Seata 是一款开源的分布式事务解决方案,star高达17300+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 注:本期分享借鉴于Sea...阅读全文

博文 2022-11-12 17:32:05 objcoding.com

Java实操避坑指南 业务代码-整合框架-存储-缓存常见错误详解

​Java实操避坑指南 业务代码-整合框架-存储-缓存常见错误详解 【点击下载】面试通过,却担心通不过试用期?明明认真做了,还是Bug满天飞?刚入行的Java开发者,总会遇到这样那样的坑。资深技术专家,调动多年经验,为你排除易出错、易被忽视、易被曲解的“坑”,根据业务需求流程,带你系统处理业务代码-整合框架-存储-缓存的常见错误,清扫知识误区。通过课程,让你对重点、难点和知识点理解更加的清晰和熟练,助力你升级打怪再上一个台阶!适合人群有Java实际开发经验,对排查Bug有困扰的Java开发者技术储备要求有实际开发经验。包括:Java Web实际开发经验 Spring、SpringMVC、SpringBoot、MySQL、Redis 实际使用基础百度网盘链接下...阅读全文

博文 2020-09-30 17:58:38 jmterorh

Vue3+Django4全新技术实战全栈项目

### download:[Vue3+Django4全新技术实战全栈项目(https://www.zxit666.com/6467/) Vue3+Django4的前后端别离开发 什么是Vue3和Django4 Vue3是Vue.js的最新版本,它是一个用于构建用户界面的渐进式框架。Vue3提供了更好的性能、更好的开发体验、更好的组合才能和更多的新特性,例如Proxy响应式系统、Composition API、Teleport、Suspense等1。 Django4是Django的最新版本,它是一个用于快速开发Web应用的Python框架。Django4提供了许多功用,如ORM、路由、模板引擎、表单、用户认证、缓存、中间件等2。 为什么要运用Vue3+Django4 运用Vue3+Django...阅读全文

博文 2023-08-28 10:22:19 zxit666

SpringBoot3+Vue3 开发高并发秒杀抢购系统[高清]

### download:[SpringBoot3+Vue3 开发高并发秒杀抢购系统高清](https://www.zxit666.com/6646/) 随着互联网和挪动互联网的快速开展,电子商务行业也在不时壮大,而秒杀抢购系统作为电子商务的一种重要方式,曾经成为各大电商平台的标配。在高并发的状况下,如何保证秒杀抢购系统的稳定性和性能,是一个十分重要的问题。 SpringBoot3 是一个基于 Spring 框架的快速开发框架,它能够快速构建 Web 应用程序和微量级的企业应用程序。Vue3 是一个盛行的前端框架,它能够协助开发人员快速构建交互式用户界面。在这个系统中,我们将运用 SpringBoot3 和 Vue3 来完成秒杀抢购系统的高并发和高性能。 在这个系统中,用户能够经过前端页面阅...阅读全文

博文 2023-11-04 23:52:05 zxit666

[完结19章]SpringBoot开发双11商品服务系统

今天给大家分享一下关于SpringBoot开发双11商品服务系统的整个流程,我将深度还原大厂实习期技术成长全流程,让你收获大厂项目开发全流程与实战经验,具备应对大流量场景问题的解决能力,全面助力提升实习/转正/跳槽表现力与成功率。 以下是参考资料下载: 网盘地址:https://pan.baidu.com/s/1QNf3FbzlswJd_DU3FC64nw 提取码:q61x 腾讯微云下载地址:https://share.weiyun.com/o6TKslZV 密码:qn8bim Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spr...阅读全文

博文 2023-11-22 14:46:53 kaidnxhd2023

高性能无锁并发框架Disruptor,太强了

Disruptor是一个开源框架,研发的初衷是为了解决高并发下队列锁的问题,最早由LMAX提出并使用,能够在无锁的情况下实现队列的并发操作,并号称能够在一个线程里每秒处理6百万笔订单官网:http://lmax-exchange.github.io/disruptor/目前,包括Apache Storm、Camel、Log4j2在内的很多知名项目都应用了Disruptor以获取高性能为什么会产生Disruptor框架「目前Java内置队列保证线程安全的方式:」ArrayBlockingQueue:基于数组形式的队列,通过加锁的方式,来保证多线程情况下数据的安全;LinkedBlockingQueue:基于链表形式的队列,也通过加锁的方式,来保证多线程情况下数据的安全;ConcurrentLi...阅读全文

博文 2023-02-02 12:22:37 知乎

Java可视化UML工作流系统(Activiti7+SpringBoot)

下载地址:百度网盘章节目录:第1章 清晰的学习目标,让学习更轻松首先项目演示了解项目整体情况,便于小伙伴通过本课程学习,能够最终做出的怎样的项目效果。同时,明确学习activiti工作流对今后工作的重要性,确立学习目标。1-1 玩转黑马项目,“技术+业务”能力齐飞试看第2章 开发前准备:环境搭建篇【选修】所谓“君欲善其事,必先利其器”,因此本章带着小伙伴们将课程所需环境一一构建起来,小伙伴们可以结合自己情况,有选择有重点的去学习。注意:MySQL安装时讲解了如何开启远程访问、设置电脑防火墙;Maven国内镜像仓库修改等。...2-1 JDK安装2-2 Maven安装2-3 MySQL安装2-4 SpringBoot项目创建2-5 BPMN插件第3章 项目从git下载与打包部署很多小伙伴在别的...阅读全文

博文 2020-08-19 10:20:30 jmterorh

React 为什么是 JSX 而不是 Templates

前言 前几天得到一个疑问,为什么 React 要用 JSX 语法,这样显得代码好像“很耦合”。按照传统应推荐 html、js、css 模版分离,这样设计的优越性到底在哪里? 从一开始接触前端,大学课程里首先学的也是 html、js、css 这前端二代三剑客,可以类比于“母语”的概念。于是接触了 Vue 框架,便顺理成章地理解了 templates、script、style 三个模版分离的概念。到后来接触了 React 框架确实在熟悉 JSX 语法过程中花费了一定的精力,现在理解来看,其实就是把 JS 语法和 DOM 结构组合绑定到了一起,当时真正头晕的应该是渲染的能力。 因此,React 为什么是 JSX 而不是 Templates,这种感觉就好像脱离了一开始学习的母语,这样的学习成本难道是...阅读全文

博文 2023-04-17 03:18:23 掘金

深入学习小程序框架底层原理,培养双线程思维(2023版,15章)

![1.png](http://static.itsharecircle.com/231218/2289eb20f589afd8f12b3d6989607720.png) 小程序上线以来,一直被称为便携版的 APP,关于两者之间的区别,无外乎是小程序相对轻便、开发成本低、开发周期短、收效快。 小程序并非凭空冒出来的一个概念,当微信中的 WebView 逐渐成为移动 Web 的一个重要入口时,微信就有相关的 JS API 了。 微信小程序是双线程架构,分为逻辑层和渲染层,在进行文件解析的时候不会发生阻塞。 逻辑层: (1)解析js,负责逻辑处理、事件逻辑、动态数据的处理 (2)小程序的所有代码逻辑都包含在同一个逻辑线程(逻辑层是单线程),小程序只有一个APP实例,但是有多个page,小程序编译...阅读全文

博文 2023-12-18 16:12:25 feilipu2023nui

C#+WPF模块化开发反应釜控制系统

![1.png](http://static.itsharecircle.com/240103/140f9fd119d2445ba6c54c1c5518872a.png) WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。 WPF(Windows Presentation Foundation)是由微软开发的桌面应用程序框架,用于创建现代化、高度交互和具有视觉吸引力的用户界面。它是 .NET Framework 的一部分,提供了一种基于 XAML(Ext...阅读全文

博文 2024-01-03 15:32:16 udbmaidns

【完结23章+电子书】SpringBoot+Vue3+MySQL集群 开发大健康体检双系统

【完结23章+电子书】SpringBoot+Vue3+MySQL集群 开发大健康体检双系统 ![image.png](http://static.itsharecircle.com/231123/e50d868d4cb62b9f223e21d67804e365.png) 分享课程——SpringBoot+Vue3+MySQL集群 开发健康体检双系统,已完结23章,附电子书。 Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的...阅读全文

博文 2023-11-23 22:02:39 woaiwodejia333

[完结16章]深入学习小程序框架底层原理,培养双线程思维

![1.png](http://static.itsharecircle.com/240301/4dc7ed222f4e606b77a11bc6e1412473.png) 深入学习小程序框架底层原理,培养双线程思维——前端高手特训 从0到1带你手写一个微信小程序底层框架! 无论你是一位新手,还是一位有经验的开发者,能够自研一套小程序底层框架,都是你突破技术瓶颈有效途径。我将通过本篇文章带领大家从架构设计 ,原理剖析,再到源码的实现,一步步地实战构建一个完整的微信小程序底层框架,让大家深度掌握小程序双线程原理,助力大家具备把握最佳机会的能力和提升获取心仪Offer的成功率,成为一个真正有实力的技术人才!! 一、首先,我们先来认识小程序,那么什么是小程序呢? 小程序是一种不需要下载安装即可使用...阅读全文

博文 2024-03-01 10:26:45 gaindiuhgw

使用Arthas获取Spring应用上下文的2种方法 - cdfive

背景 项目中有时我们需要对应用进行诊断和调试,如调用某个接口进行业务验证、业务执行、数据修复、刷新缓存、查询数据、跑批量任务等等。 微服务项目 如基于Dubbo搭建的微服务,我们可使用Dubbo支持的telnet运维管理,其中invoke命令方便直接调用Dubbo接口; 也可整合swagger-dubbo,方便在网页界面上直接调用Dubbo接口。 web项目 如使用了SpringMVC、Jersey等框架,可考虑暴露一些运维相关的内部rest api,里面调用业务方法,用于某些场景下人工操作处理。 有些情况下以上条件不具备,如不能修改代码、希望不修改代码、不方便修改代码、没有源代码等原因。 Arthas Arthas 是Alibaba开源的Java诊断工具,可以用于快速诊断Java应用和定位...阅读全文

博文 2023-09-13 16:30:42 博客园

Web3.0入门与实战 一站式掌握4大主流区块链开发

download:https://caodada.com/8045.html【资源介绍】:Web3.0入门与实战 一站式掌握4大主流区块链开发Web3.0迎来爆发式增长,技术人才紧缺,薪资涨幅可观。但Web3.0体系庞杂,很难系统掌握。因此,我们邀请以太坊、IC、Flow及XuperChain社区资深开发者精心打造更适合初学者从0到1系统学习的课程。课程将从编程语言,到四大主流链项目开发,带大家系统全面掌握Web3.0开发技术,帮助大家顺利入行,开拓新的职业机会,增长职业竞争力及副业收入。​​​​​​​【资源目录】:├──1| └──1-1开篇Web30一场已经开启的互联网革命3725_ev.mp4 74.89M├──2| ├──2-10智能合约语言介绍下1137_ev.mp4 35.67M...阅读全文

博文 2023-07-27 15:51:53 caodada

ChatGPT + Flutter快速开发多端聊天机器人App

download:[ChatGPT + Flutter快速开发多端聊天机器人App](https://www.zxit666.com/6258/) Java Web项目开发经验分享 Java是一门强大的编程语言,综合运用Java相关技术能够快速行开发高质量、安全、易维护的Web应用程序。本文将分享我们在Java Web项目开发过程中积累的经验。 1. 需求分析 在进行任何项目开发前,需求分析是非常重要的一个环节。首先,应该与客户充分沟通,明确项目需求和功能点,并记录入详细的需求文档中。其次,设计的用户界面应该符合目标用户的使用习惯和界面审美上的需求。最后,根据需求文档以及UI设计稿,设计出数据库和代码结构,为下一步的开发做好准备。 2. 技术选型 选择合适的技术对于项目的成功至关重要。Jav...阅读全文

博文 2023-06-02 09:37:03 zxit666

Django+Vue:Python Web全栈开发

![1.png](http://static.itsharecircle.com/240105/f6749e0e5ef88ac7dd06fa851e6e37be.png) 今天给大家带来一篇关于Django4.1开发的文章,Vue框架+Django框架+前后端分离项目,带小伙伴们从零开始学习Django框架! 本文包含:Django框架基础知识、Django视图和模板、Django框架和模型和django框架后台、Django框架实战:开发企业官网、Rest Framework 、Vue前端、Vue+Django综合项目;Vue前端对接:通过Vue与后端API进行数据交互,实现前后端分离。 首先,我们先来认识Django: Django是一个高级的Python Web框架,可以快速开发安全和...阅读全文

博文 2024-01-05 11:10:28 udbmaidns

这一次,彻底搞懂React的diff算法_51CTO博客_vue diff算法

在前端面试中,只要涉及到React框架,diff算法便是我们绕不开的话题,这次让我们来系统性的梳理diff算法,不再被这个知识点所困扰。 什么是diff算法? 在了解diff算法之前,我们要直到diff算法并非React独家首创,但是React针对diff算法做了自己的优化,使得diff算法可以帮助我们计算出Virtual Dom中真正变化的部分,并只针对该部分进行实际的DOM操作,而非渲染整个页面,从而保证了每次操作后页面的高效渲染。 传统diff算法 要想了解React的diff算法,我们首先要知道传统的diff算法是如何设计并实现的。 传统diff算法的时间复杂度 传统diff算法的时间复杂度是O(N^3),其中N是树中节点的总数,这样的时间复杂度意味着如果要展示1000个节点,就要执...阅读全文

博文 2023-09-13 14:29:38 blog.51cto.com

一种通过延迟事务提升数据库性能的方法

本文分享自天翼云开发者社区《一种通过延迟事务提升数据库性能的方法》,作者:唐****律一、背景在数据库代理层中,写节点的数据库连接是一种很重要和稀缺的资源,提升其利用率是一个提升数据库整体性能的重要手段。数据库连接占用过高会大幅增加数据库的资源负担,降低数据库的处理能力。通过延迟启动的事务,可以减少不必要的连接占用时长,提升数据库连接利用率。在用户通过代理层使用数据库的时候,如果提交了一条只读查询,那么代理层可以从连接池中获取一个连接、查询、获取数据、然后归还连接。如果在只读查询之前启动了事务,那么在用户提交或者回滚事务之前,该连接不能归还到连接池,大大增加了数据库连接的占用时间。而在ReadCommitted事务隔离级别中,只读查询语句的查询结果是不可重复的,这时如果事务中没有其它写操作,...阅读全文

博文 2023-09-28 16:23:55 Tianyiyun

[完结13章]C++从0实现百万并发Reactor服务器

![1.png](http://static.itsharecircle.com/240129/24ad943a50d0fe5c4b07c9abebc3c578.png) 是否具备高并发、高性能、分布式、事件驱动框架设计能力,是优秀C++中高级工程师的分水岭,我将通过本文带领大家纯手写一个Reactor服务器,让大家可以高效掌握三高框架设计思维,同时让你对C++网络编程、线程、智能指针、C++11标准高阶技术等运用自如。 Reactor是一种事件驱动机制,和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的事件发生,Reactor将主动调用应用程序注册的接口,这些...阅读全文

博文 2024-01-29 11:03:14 udbmaidns

跨平台高手必修课--Flutter动态化解决方案实战(附源码)

![1.png](http://static.itsharecircle.com/240306/3b92ee88e7be3d54f887c918789ef1ef.png) 跨平台高手必修课--Flutter动态化解决方案实战之手把手带你自研一套Flutter动态热更新框架。 Flutter作为跨平台首选框架,未来可期,但动态化问题一直是行业诟病的问题。所以,各大公司都急需一套成熟且高效的动态化解决方案,因此,动态化方面的人才缺口巨大。在本文中,我将带大家从0到1自主研发一套Flutter动态化框架,并深入掌握跨平台动态化解决方案,助力你在跨平台技术上有质的飞跃。 一、首先,我们先来认识Flutter: Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效...阅读全文

博文 2024-03-06 09:39:00 gaindiuhgw

[完结12章]基于C++从0到1手写Linux高性能网络编程框架(附电子书)

![1.png](http://static.itsharecircle.com/231225/931d7c8b4d0c63d29c944b1ac3b670fe.png) 今天我将给大家讲解基于C++的Linux高性能事件驱动网络编程框架的设计方法及技巧,我在文中采取渐进迭代的方式,配合C++11新特性的使用,以及网络编程理论的深度讲解,并手把手带着大家落地实现,助力在网络编程领域有更大的技术提升! Linux系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。Linux系统管理员可能经常会遇到系统不稳定、响应速度慢等问题,例如在Linux上搭建了一个web服务,经常出现网页无法打开、打开速度慢等现象,而遇到这些问题,就有人会抱怨Linux系统不好,其实这些都是表面现象。 Linux ...阅读全文

博文 2023-12-25 10:33:00 udbmaidns

2022年前端框架趋势:React与Vue深度对比

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第 31 天,点击查看活动详情 为什么写这篇文章?最近我在开发一个 real-time Web 开源库,但是我要和团队讨论,这个库应该优先支持某些框架。为此,我需要做一下开源框架的市场调研,拿到一些数据。此外,我前段时间在掘金写了一篇文章,通过概念和语法对 React 和 Vue 进行了简单的对比,但是有些掘友认为深度不够,所以这篇也可以视作上一篇的补充。 前端框架大比拼:2022年的Vue与React谁更胜一筹? 这一次,我会进行更加深度全面的对比,通过多个维度和真实数据来让大家搞清楚到底谁是 2022 年最强前端框架。 个人看法 我使用 React 和 Vue 的时间都超过 6 年,这两个框架都是很优秀的前端框架,而且在...阅读全文

博文 2023-04-17 03:10:22 掘金

[完结14章]鸿蒙系统实战短视频App 从0到1掌握HarmonyOS

网盘地址:https://pan.baidu.com/s/1KqyO8--FE6LSDoNcVfwLbQ 提取码:p64r 腾讯微云下载地址:https://share.weiyun.com/aXaiIMC3 密码:q5aaj7 HarmonyOS作为全球第三大移动应用生态,已有诸多公司将鸿蒙开发列入招聘优先选项,现在入局正当时。但鸿蒙系统涉及颇广,入门容易,进阶难。本课程特邀鸿蒙资深技术达人带你系统学习HarmonyOS 组件和API,实战HarmonyOS 9大主题核心技术,具备0到1独立实现完整HarmonyOS App实战能力,助力移动端开发者拓展职业新边界。 针对HarmonyOS开发按不同的角度划分,可以有不同的分发: 1、从宏观大类上分为三类:1)通用开发(可安装应用app,兼...阅读全文

博文 2023-12-01 15:05:28 kaidnxhd2023

Linux系统性能监控工具:tsar 安装、配置、以及使用 - 宇宙神奇

介绍tsar 是淘宝自己开发的一个监控工具,可用于收集和汇总系统信息,例如CPU,负载,IO和应用程序信息,例如nginx,HAProxy,Squid等。结果可以存储在本地磁盘或发送到Nagios。tsar 可以通过自己开发模块轻松扩展,这使得它成为一个强大的监控工具。 总体架构Tsar是基于模块化设计的程序,程序有两部分组成:框架和模块。框架程序源代码主要在src目录,而模块源代码主要在modules目录中。框架提供对配置文件的解析,模块的加载,命令行参数的解析,应用模块的接口对模块原始数据的解析与输出。 模块提供接口给框架调用。tsar依赖与cron每分钟执行采集数据,因此它需要系统安装并启用crond,安装后,tsar每分钟会执行tsar –cron来定时采集信息,并且记录到原始日志文...阅读全文

博文 2023-09-13 14:48:05 博客园

浅谈基于Shapley值的数据融合反欺骗数据判断相关

本文分享自天翼云开发者社区《浅谈基于Shapley值的数据融合反欺骗数据判断相关》,作者:z****n一、相关背景多个信息源的数据进行融合处理后的信息具有较高准确性,同时具备互补性、及时性等特征,在一定程度上能够克服单信息源获取信息的局限性,能更加客观地对目标形成认识,具有更高置信度和较强鲁棒性。信息融合技术随着人工智能及物联网的发展,在人们日常生活中已被广泛应用。然而,在通过该技术享受生活便利的同时,也承担着其所带来的决策的误判、情报处理混乱等风险。现代信息融合技术担当着越发重要的角色,其原理是通过传感器获取对状态、环境及目标的相关信息,并根据特定的算法对多个传感器所获信息进行处理,为得到用于评估战场的状态、敌方潜在的威胁以及自身相关方面的稳定性等重要信息提供依据。欺骗信息往往可以定义为故...阅读全文

博文 2023-05-19 03:30:19 Tianyiyun

MVC,MVP 和 MVVM 的图示

SSY 说: 原来我一直做的是MVP呀 2015年2月 1日 11:57 | # | 引用 Simba 说: 很好。写的不错。 2015年2月 1日 11:58 | # | 引用 Ricter 说: 这么说来 Django 好像是一个 MVP 框架的样子了… 2015年2月 1日 12:50 | # | 引用 dreamers.yzy 说: MVC是单向的?不是V->C->M -> C -> V 吗? 2015年2月 1日 13:01 | # | 引用 Welkin 说: 清晰易懂 2015年2月 1日 15:51 | # | 引用 Milkman 说: 简明,真知灼见;不像市面上很多文章那般说一揉二,掺杂一起弄得复杂方显高深,骨架连肉一起乱炖,反致初学者云里雾里。 2015年2月 1日 1...阅读全文

博文 2023-12-01 16:12:47 阮一峰的网络日志

基于C++从0到1手写Linux高性能网络编程框架(2023新课)

基于C++从0到1手写Linux高性能网络编程框架(2023新课) 分享课程——基于C++从0到1手写Linux高性能网络编程框架,2023年新课,附源码+电子书,课程包更新。 Linux在服务器领域有着强大的优势,网络编程便是其中一项重要组成部分,运用合理的技巧可以构建出具有高效率、可靠性和强大可拓展性的网络框架,提高服务器功能和效率。 Linux网络编程技巧可以细分为多个方面,首先网络编程的开始必不可少的是编写好的Socket程序。Socket可以说是传输层协议的核心,它充当网络应用程序之间的接口,能够连接本地服务器与外部服务器,实现进程间的通信接口。在Linux环境下,使用C语言需要引入头文件,调用系统函数socket()来生成socket描述符: #include int socke...阅读全文

博文 2023-12-05 16:19:13 woaiwodejia333

MySQL 性能调优的10个方法

MYSQL 应该是最流行了 WEB 后端数据库。WEB 开发语言最近发展很快,PHP, Ruby, Python, Java 各有特点,虽然 NOSQL 最近越來越多的被提到,但是相信大部分架构师还是会选择 MYSQL 来做数据存储。MYSQL 如此方便和稳定,以至于我们在开发 WEB 程序的时候很少想到它。即使想到优化也是程序级别的,比如,不要写过于消耗资源的 SQL 语句。但是除此之外,在整个系统上仍然有很多可以优化的地方。1. 选择合适的存储引擎: InnoDB除非你的数据表使用来做只读或者全文检索 (相信现在提到全文检索,没人会用 MYSQL 了),你应该默认选择 InnoDB 。你自己在测试的时候可能会发现 MyISAM 比 InnoDB 速度快,这是因为: MyISAM 只缓存索...阅读全文

博文 2023-09-13 14:33:37 知乎