聊聊专题

聊聊你不知道的建造者设计模式

距离上次写博客的距离也快一个月了,最近打算跟大家分享一下建造者模式,其实这个模式以前也介绍过,当时只是介绍它在android项目中广泛被应用于创建对象的链式调用,并没有深入的去说明其中的逻辑性,由于这次跟王大哥讨论建造者模式,我还是决定写一篇博客记录一下自己对建造者模式的理解,各位可以提出不同的观点,相互交流 1:Builder 设计模式 1.1:为什么要用建造者模式1.2:建造者模式的几个

聊聊 C# dynamic 类型,并分享一个将 dynamic 类型变量转为其它类型的技巧和实例

前言 dynamic 是一种有别于传统变量类型的动态类型声明,刚开始接触可能在理解上会有些困难,可以简单地把它理解为一个盲盒,你可以任意猜测盒子有什么东西,并认为这些东西真正存在而进行处理,等到真正打开时,才能真正确定这些东西是不是真的存在。 所以,当使用 dynamic 声明一个变量时,编译器不会去检查该变量的成员或方法的有效性,换句话说,你可以调用任意成员或方法,即使它们不存在,编译器

聊聊JSON

引言 JSON的概念 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,但独立于语言,这意味着它可以被许多编程语言轻松解析。JSON的简洁性和易读性使其成为Web开发中数据交换的首选格式。 Web开发中的重要性 在Web开发中,JSON扮演着至关重要的角色。它被广泛用于: 前后端通信:作为APIs的数据交换格

面试官:聊聊 nextTick

前言 在最近的面试中,不少面试官叫我聊聊 nextTick,nextTick 是个啥,这篇文章咱来好好聊聊! 我的回答 nextTick 是官方提供的一个异步方法,用于在 DOM 更新之后执行回调。正好在我的项目中用到了,就拿它来形容一下,大概的场景是渲染一个列表,每次点击按钮就会往列表后面添加十条数据,并立即跳到第十条数据的位置。我们知道渲染列表是需要耗时的,想要直接跳到第十条数

聊聊全栈

全栈正在变得越来越流行,很多人都有意愿或正在往全栈的方向去发展。我自己也一直在往这个方向不断提升自己,到目前为止,算是略有小成,勉强称得上是一个合格的全栈架构师。为了给更多走在全栈路上的小伙伴们提供一些思路,我将基于我自己这些年来的经验总结和思考,以及从其他更优秀的人(比如吴军)学习得来的感悟,与大伙分享我对全栈的一些观点。我主要将从三方面来聊聊全栈的问题: What?什么是全栈?Why?为什

聊聊语法糖

语法糖(Syntactic sugar)是指编程语言中添加的某种语法,这种语法对语言的功能没有影响,但更方便程序员使用,并能增加程序的可读性,减少代码出错的机会。 历史: 语法糖这一术语是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的。在编程中,语法糖通过提供更为简洁、易读的代码形式,使得程序员能够更高效地编写和维护代码。例如,在React中,传统的JavaSc

由浅入深聊聊Golang的sync.Pool

前言 今天在思考优化GC的套路,看到了sync.Pool,那就来总结下,希望可以有个了断。 用最通俗的话,讲明白知识。以下知识点10s后即将到来。 1.pool是什么? 2.为什么需要sync.Pool? 3.如何使用sync.Pool? 4.走一波源码 5.源码关键点解析 正文 1.sync.Pool是什么? Golang在 1.3 版本的时候,在sync包中加入一个新特性:Pool

由浅入深聊聊Golang的context

前言 是的,今天本来还想出去玩的。买了动车票,然后又睡过头了。。没办法,可能是天意,只好总结一下golang的context,希望能与context之间做一个了断。 公司里头大家写各种服务,必须需要将Context作为第一个参数,刚开始以为主要用于全链路排查跟踪。但是随着接触多了,原来不止于此。 正文 1.context详解 1.1 产生背景 在go的1.7之前,context还是非编

由浅入深聊聊Golang的slice

前言 今天本来想去外地玩耍,结果睡过头错过了动车,只好总结一下slice,希望能与slice之间做一个了断。 文章由浅入深,遵从能用代码说话就不bb的原则。 正文 1.基本操作 1.1 声明 var stringSlice []stringstringSlice := []string{"咖啡色的羊驼"}var intSlice []int64intSlice := []int{1

由浅入深聊聊Golang中select的实现机制

正文 话说今天在玩select的时候发现一个问题,是这样的: 片段1: func main(){var count intfor {select {case <-time.Tick(time.Millisecond * 500):fmt.Println("咖啡色的羊驼")count++fmt.Println("count--->" , count)case <-time.Tick(time.

聊聊 Mybatis 动态 SQL

这篇文章,我们聊聊 Mybatis 动态 SQL  ,以及我对于编程技巧的几点思考 ,希望对大家有所启发。 1 什么是 Mybatis 动态SQL 如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。 Mybatis  借助功能强大 OGNL 表达式,可以根据参数条件

聊聊缓存如何进行测试的

为了提升数据访问速度,减少后端服务如数据库的负载,提高系统整体性能,在系统中通常会使用缓存中间件,以下是缓存中间的类型: 缓存中间件类型: 通用内存缓存: Memcached:这是一个高性能、分布式的内存对象缓存系统,适用于缓存数据库查询结果、API响应等。它简单易用,支持多线程和分布式部署。 Redis:Redis 不仅是一个键值存储系统,还支持多种数据结构如列表、集合、排序集合、哈希

咱们来聊聊JS中的异步,以及如何异步,菜鸟版

为什么需要异步?why?来看一段代码。 问题1: for(var i=0;i<100000;i++){ } alert('hello world!!!');   这段代码的意思是执行100...次后再执行alert,这样带来的问题是,严重堵塞了后面代码的执行,至于为什么,主要是因为JS是单线程的。 问题2:   我们通常要解决这样一个问题,如果我们需要在head里面加入script

Lucene随笔-聊聊IndexWriter

Lucene版本:6.5.1 Package: org.apache.lucene.index; IndexWriter示例 这里以"hello world"的索引过程为例,探究以下IndexWriter的原理: doc1:索引文件。path: 索引相关的文件所存放的文件夹位置。 IndexWriter的大致过程如下: 首先创建IndexWriter。创建需要索引的文档。通过Ind

随便聊聊网络游戏开发模式

本文仅是闲聊罢了,并非开发教程,有意依此学习的同学注意一下. 就网络游戏开发而言,目前主流的同步方式大概是以下两种: 帧同步 顾名思义,就是按"帧"(一般指逻辑帧)来进行网络同步,一般实现上,都是客户端按"帧"来发送自己的操作数据(无操作也是一种操作(也要发送)),服务器收取到所有客户端的操作数据之后统一进行分发,客户端收取到分发数据之后则进行"帧"模拟,由于只同步操作数据(客户端各自

聊聊系统架构之负载均衡优化实践

一、写在前面 最近在进行线上监控检查时,我遇到了两个超出预期的案例。首先,网关层的监控数据与应用实际监控数据存在不一致性,尤其是max有较大的差异,详见如下图。其次在某个应用中,通过httpclient请求某域名时发现只有一台机器持续出现"Read timed out"的异常错误。 鉴于这种情况,我分析了客户端请求到应用集群之间的完整链路。用户发起域名请求时,客户端通过本地DNS(没有

多种异构数据的分析设计方案3:聊聊策略模式+函数式接口+MAP

多种异构数据的分析设计方案3:聊聊策略模式+函数式接口+MAP   定义 策略模式(Strategy Pattern): 定义并封装一系列算法类,并且这些类可以相互替换,可以在运行时根据需要选择不同的算法,而不需要修改客户端流程代码。 策略模式让算法独立于使用它的客户端而变化,也称为政策模式(Policy)。   主要解决,在有多种算法流程相似的情况下,使用许多if...else分支所

前沿重器[50] | 聊聊搜索系统3:文档内容处理

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经是20年的事了!) 2023年文章合集发布了!在这里:又添十万字-CS的陋室2023年文章合集来袭 往期回顾 前沿重器[45] RAG开源项目Qanything源码阅读1-概述+服务前沿重器[46] RAG开源

【MySQL】聊聊数据库是如何保证数据不丢的

对于一个存储系统来说,其中比较关键的核心组件包含,网络、存储模型、持久化、数据结构等。而数据如何保证不丢失,对于不同的存储系统来说,比如Redis采用AOF和RDB的方式进行混合使用,而MySQL采用日志进行保证。也就是redo\undo\bin log。本篇就聊聊数据库是如何进行不丢失的。 总体流程 对于数据不丢失,其实就是针对更新语句(update\delete\insert)的操作流程,

聊聊 2018 年后端技术趋势

异步模式 Go 语言越来越热门,很多大型互联网公司后端正在转向 GO 。Java 圈知名的服务化框架 Dubbo 也宣布转型异步模式。这是一个大趋势,异步模式已经被市场验证和认可。 在 Web 服务器选择上,几年前大部分人就开始选择异步非阻塞的 Nginx,而不是同步阻塞的 Apache。就是因为 Nginx 这样的异步程序,它的适应性更好、并发能力更强。现在在后端业务开发编程方面,技术力量

金三银四面试急救包来了,阿里大佬聊聊简历怎么写

大家好,我是柠檬哥。 年初看机会、准备换工作的同学比较多,后台也有很多同学请教如何准备面试,精力有限,一个个回复肯定是回不过来。 关于求职面试这块的的话题有点大,大部分人内心OS估计是: 忍了一年的SX领导,拿了年终奖终于熬到头了,拜拜了您嘞。 这么些年职场生涯,柠檬哥被面试过多次,也作为技术面试官参加过多场面试。这篇文章我就从求职最基础的「简历」开始,和大家聊聊写简历的要点,决

聊聊分布式集群的基本概念

在当前主流的分布式架构中,各种各样的集群技术几乎成了任何想要提升系统稳定性和处理能力的团队的必备技能。虽然各种中间件和系统都有让人看似眼花缭乱的集群实现方案,但其背后仍然逃不过一些核心的技术概念,我会结合几个我比较熟悉的中间件,简单聊一下我对集群的理解: 集群的类型 按照搭建集群的目标来划分,大致可以划分为三类集群 高可用集群 高可用性集群的主要目的是使集群的整体服务尽可能可用,在集群中任

简单聊聊大数据解决方案

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导航: 码农阿豪系列专栏导航 面试专栏:收集了java相关高频面试题,面试实战

序列化和反序列化(二)——让我们聊聊Json这个家伙吧!

JSON(Javascript Object Notation)   JSON起源于弱类型语言Javascript, 它的产生来自于一种称之为"Associative array"的概念,其本质是就是采用"Attribute-value"的方式来描述对象。实际上在Javascript和PHP等弱类型语言中,类的描述方式就是Associative array。JSON的如下优点,使得它快速成为最广

聊聊最近使用Electron开发互动直播的一点心得

最近使用Electron+VUE2.0+Element-UI+腾讯云的实时音视频开发了一个互动直播的客户端,中间踩了不少坑,这里说一下感受。 如果要做直播客户端,不要求跨平台的话,能用C++、C#开发就不要用Electron去开发。腾讯云虽然提供了一个Electron的sdk,但是这个sdk版本的限制太多。比如:Electron的sdk有个api是打开摄像头并推流,由于业务的特殊性需要把摄像头画

WEB缓存技术之阿堂教程:聊聊memcached分布式缓存技术--好文转载

转自:http://blog.sina.com.cn/s/blog_4c925dca010193sy.html 阿堂最早接触memcached技术,实际 上是在原来的一家游戏公司,因为阿堂带领项目组开发的一款网游,上了人人网后,准备要上腾讯的朋友网,腾讯也是比较牛,作为他们的合作伙伴,当时他们会为我们免费提供了CMEM技术和CDB技术(虽然说是免费,但是游戏赚钱后,是要双方分成的),这在当时和