自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

文洲的专栏

对昨天不后悔,对今天不生气,对明天不担忧,对睡眠不轻视,对运动不排斥,爱自己,拥抱生活!

  • 博客(209)
  • 资源 (109)
  • 问答 (1)
  • 收藏
  • 关注

原创 4.maven 镜像和私有仓库使用

详细描述maven中如何配置使用maven镜像和私有仓库,如何自动或手动部署包到私有仓库中。

2023-07-30 13:56:36 969

原创 升职加薪的机会——ChatGPT辅助程序开发

结合最佳实践,本文演示了日志系统方案设计/博客系统编码开发测试部署和客服系统训练等开发全周期场景应用,希望给有类似需求的朋友一点启发,当前ChatGPT不是完美的,但是在现有技术基础上迭代完善是迟早的事,赶紧学起来吧。

2023-02-15 09:19:28 2975 1

原创 ChatGPT 最佳实践,成为驾驭AI的人

最近一段时间,互联网最火的莫过于ChatGPT,比尔盖茨更是盛赞ChatGPT的出现堪比当年PC和互联网的诞生。不少人在讨论ChatGPT是否可能淘汰程序员,笔者认为就像历史上马车-汽车/线下店-线上淘宝的转变一样,新技术出现会淘汰很多职业和人,同时也会孕育更多的新职业和机会,对于咱们来说,最重要的是——提升认知,拥抱变化,抓住变革带来的机会,驾驭AI为我所用!

2023-02-15 09:15:27 3382

原创 golang 1.20正式发布,更好更易更强

预期中的Go 2不会有了,1.20也算是一个小gap,从中可以一窥Go未来的发展之路。对于Go来说,未来保持1.x持续演进和兼容性之外,重点就是让Go性能更优,同时保持大道至简原则,使用尽可能容易,从这两个方面带大家看看你1.20值得关注的特性。

2023-02-09 01:05:03 5153

原创 golang新特性arena,带你起飞

golang 1.20引入新特性arena,支持手动分配和释放内存,初步测试性能提升5%-15%甚至更多,真的是起飞了!尽管目前还是实验特性,对于泛型和反射reflect都已支持相当完善,常用场景比如JSON解析/ProtoBuf反序列化都会产生不少提升,本文带你提前全方位解析arena,并给出一些实际优化实践,早学早享受!

2023-02-09 00:57:20 2326 2

原创 golang 协程关闭——谁敢说没踩过坑

生产实践中,go常常遇到未能正确关闭协程而影响程序运行的场景,轻则协程泄漏资源浪费,重则程序崩溃。本文,总结协程关闭的三大原则,结合实际场景让你彻底搞定协程关闭,保证又快又稳!

2023-02-02 21:19:12 2958 1

原创 golang 高手才会的【协程数量控制】套路总结

尽管Goroutine(协程)非常清轻量,但是本身也是占用资源的,过多协程切换也会带来开销,总之物极必反,无限制的开协程的结果只会是Game Over。生产实践中必须考虑控制协程数量,本文带你看看针对不同场景和需求的协程数量控制方式,看看这些姿势你都会了吗?

2023-01-20 09:18:21 3043

原创 golang 错误处理channel+error真的香

官方推荐golang中错误处理当做值处理, 既然是值那就可以在channel中传输,本文带你看看golang中channel+error来做异步错误处理有多香,看完本文还会觉得golang的错误处理相比java try catch一点优势都没有吗?

2023-01-18 18:01:05 2309 1

原创 爆肝3天只为Golang 错误处理最佳实践

对于开发者来说,要是不爽Go错误处理,那就看看最佳实践。Go可能引入try catch吗?那可能估计有点难度。本文简单介绍Go为什么选择这样的错误处理和目前常见处理方式,并梳理常见Go错误处理痛点,给出最佳实践,相信看完本文你会觉得Go错误处理好像也没那么糟糕,甚至好像还挺自然。

2023-01-14 22:21:10 1100

原创 别等大佬了——用TryLock实现可重入锁

同样是大佬抗拒的痛点,Go 1.18 TryLock有了,可重入锁还会远吗?TryLock没啥好说的,简单介绍下,再看看TryLock对优化可重入锁实现的作用,自己动手,丰衣足食,别等大佬了,人生有多少个9年!

2023-01-11 09:56:18 567

原创 golang 为什么需要context

当前go的各种源码中应该都可以看到context的使用,Context是golang 1.7的引入的核心结构,本质是为了处理go的并发控制问题。本文主要带大家深入理解context如何使用,为什么需要context和context设计原理。

2023-01-09 09:41:30 432

原创 10分钟vue初步入门

介绍使用vue开发需要了解的基础概念和工具,然后简介基于vue开的基础知识。

2022-12-21 13:53:11 598

原创 现代前端常用工具

使用工具前,必须要理解为什么需要这些工具,这些工具解决了什么问题。本文,先带大家看下前端发展主流方向,然后基于此介绍常见工具的作用和使用。

2022-11-29 09:29:05 686

原创 快来!2023面试必问的Go泛型解析

go1.18引入泛型,本文带你10分钟掌握Go泛型,示例说明,快速掌握。

2022-11-24 09:15:24 504

原创 CentOS 编译安装 Nebula Graph 3.10

Nebula Graph 3.10在Centos环境编译,包括分布式版本和存算合并版本。

2022-07-26 11:23:27 1015 2

原创 K8S调试环境安装

记录自己常用两种k8s安装方式 minikube或Rancher

2022-07-13 20:51:04 408

原创 CentOS 编译ClickHouse 22.3

详述CentOS中最新版本ClickHouse的编译运行过程。

2022-06-21 17:35:01 809

原创 CentOS C++开发环境准备

linux c++最常见的编译器gcc、clang相关的编译和配置整理。

2022-06-21 15:35:54 1611

原创 Scala 常用整理

常用的易健忘和混淆的scala知识点整理。

2022-06-20 15:38:10 190

原创 Flink 代码混淆

混淆本质上就是对于生成的class文件中敏感的部分替换,包括包名、类名、类成员变量、类成员函数、函数参数等最常用的java混淆就是proguard混淆Flink通常可能是scala+java的混编代码,有大量的序列化逻辑存在,因此需要注意proguard的配置,通常的java工程和spring的混淆配置不适用...

2022-06-15 12:25:33 368 2

原创 go模式-责任链

所谓责任链也就是一组任务执行,每个任务输入是上一个任务输出,每个任务输出是下个任务输入,每个任务完成自己负责部分,相当于一个管道串接起来完成任务,因此也叫pipe filter ,常用于任务编排。

2021-10-07 16:54:18 403 2

原创 go模式-生产者消费者

常见的生产者消费者,就是多个生产者并发生产数据,多个消费者并发消费数据。在golang中很简单,生产者生产全部输入到channel中,消费者消费全部从channel中读取,天然具有并发安全性。

2021-10-07 16:37:12 1030

原创 go并发-对象池实现

对象池,简单来说就是维持一个并发访问的池子,需要对象时从池子取,用完了再还回去。在golang中通过维持一个带缓冲channel很容易完成这一功能,天然具有并发访问安全性。

2021-10-07 16:14:12 247

原创 go并发-常见任务控制

1.只运行一次2.等待任意任务完成3.等待全部任务完成

2021-10-07 15:59:22 182

原创 go并发-任务启动和取消

并发编程中,常会遇到任务启动后取消控制问题,这里两种方法实现

2021-10-07 15:47:26 336

原创 go并发-异步和超时控制

go 中可如下实现异步Future功能,异步任务AsyncService返回的是获取数据的管道chan string而不是直接的string调用后立即返回。通过管道控制,可轻松实现异步和超时控制。

2021-10-07 15:31:57 873

原创 go reflect常见应用

借助golang reflect可以使程序更加灵活和简洁,本文介绍常用的两个场景,抛砖引玉,供参考。

2021-10-07 12:07:46 338

原创 go reflect详解

本文主要讲解reflect基础和常用方法,下文会讲解常见的应用场景。

2021-10-07 11:42:08 970

原创 go unsafe常见应用

go 本身是类似java一样,底层运行虚拟机,整个程序处于托管状态(GC等),要想和底层打交道需要用到unsafe模块,unsafe也常用于性能提升和程序灵活处理场景,本文介绍unsafe常用的几个场景。

2021-10-07 10:47:46 582

原创 字典树(Trie树)

字典树主要是为了解决前缀匹配问题,比如下图的搜索输入前缀后匹配比如有6个字符串how,hi,her,hello,so,see,如果现在输入字符判断是否要前缀匹配指定字符串,必须一个字符串比较,如果有100万就要比对100万次,如何优化这个问题呢?其实我们可以理解,每输入一个字符,应该整个搜索空间就会缩小,具体来说就是构造一颗如下的树,就是所谓的字典树(Trie树),一旦构建完成,搜索过程中,即可完成动态剪裁,最大搜索次数就是最长字符串长度。具体实现来说就是一颗多叉树,可以使用hashmap或者数组

2021-09-14 08:57:56 204

原创 并查集(Union Find)

算法背景Union Find算法,中文并查集。主要用来解决图论中的连通判断问题,简单抽象问题为:平面上有n个点给定他们之间两两连接关系要求输入任意两个点,判断他们是否能够有一条路径联通算法步骤一旦有连接,就把一个节点设为另一个节点的父节点,最终连通的点会构成一颗树。通过判断两个节点的根节点是否相同,即可判断是否连通。具体如下初始化时,每个节点指向自己,也就是根节点遍历给定的两两连接关系,分别找各自的根节点,将两个根节点连接起来判断是否联通很简单,找两个点的根结点是否相同整个过程是

2021-08-23 12:51:11 174

原创 go 接口/错误处理 知识点

接口面向对象3大特性,封装/继承/多态,封装采用结构体完成,继承使用组合的方式完成,而接口使用的是所谓的鸭子模型(Duck Type)。也就是说不像c++/java中,实现接口必须继承实现,只需要实现了接口定义的一组方法,那么就默认为实现了该接口。如下,利用接口实现多态,注意new后传入对象指针// --- interfacetype Animal interface { sayHello(words string)}type Peopple struct {}func

2021-08-02 11:41:55 525

原创 3.kafka 重要参数和性能测试

参数配置不同的参数对集群性能影响很大,除了之前基础与安装中指定的参数,还有一些中要的参数值得注意,包括如下Broker参数Topic 管理auto.create.topics.enable:是否允许自动创建 Topic,一般设为false,允许集群管理员统一分配和管理。unclean.leader.election.enable:是否允许 Unclean Leader 选举,一般设为false,不允许落后太多的副本参与选举。auto.leader.rebalance.enable:是否允许定

2021-06-14 16:39:50 582 1

原创 2.kafka 选择和集群部署规划

kafka有不同的发行版和版本号,部署时选择什么样的硬件等都决定kafka不同的特性和性能,在正式上线前通常需要考虑如下选择:发行版本选择当kafka作为一个开源框架有自己的一套生态,不仅有原生的kafka框架,也有开源公司在社区版本基础上扩展开发的发行版,相比来说提供的功能更多,使用更加友好,但是定制性下降,目前主流版本如下:Apache Kafkakafka的社区发行版,最正宗,大公司一般在此基础上定制自己的版本,但是特性相比较少,比如缺少自带的集群监控系统,个人用适用于简单流处理场合。另外

2021-06-14 16:11:07 233

原创 go 类型/表达式/函数 知识点

最近准备换工作,又过一遍常规go基础,发现还是很多细节需要细扣下,顺便分享给需要的朋友参考,既是自我提升,也能加快开发效率。基础用好多值传递和常量自增定义,很多时候事半功倍。const ( east = iota + 1 south west earth)const ( On = 1 << iota Off Unknown)func TestBase(t *testing.T) { // 支持多值传递 a := 1 b := 2 a, b =.

2021-03-07 12:29:55 211

原创 datax同步hive到mongo

1.datax简介datax是阿里开发的大数据同步引擎,现在使用越来越广泛,其基本原理就是各种输入输出统一转换成中间格式,中间层处理各种控制来完成整个过程。具体详细截取段文档如下DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。Writer: Writer为数据写入模块,负责不断向

2020-10-23 20:34:43 1454

原创 python并行处理数据

背景尽管大数据处理越来越流行,但是少不了本地python处理大量数据的场景,这时候单线程处理效率较低,本文以csv探讨常用的几种python本地并行处理数据方式。1.自分割处理顾名思义,就是自己分割文件,起多线程处理数据,相对比较麻烦,但是效率很高。主要就是按照指定大小分割文件,使用信号量控制并行线程个数,具体实现如下:# 自己分割文件,分块多线程处理class ParallelSelfSplit: def __init__(self, max_thread_num=multip

2020-10-23 17:44:56 1352

原创 为什么Hbase按前缀查询慢

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结问题使用hbase shell时我们经常会按前缀查询,如下scan 't1', {ROWPREFIXFILTER => 'row2'}现在想在java client中实现类似的按前缀查询,如何做呢?网上给的解决方案大多是基于PrefixFilter的,代码如下public void scane..

2020-09-10 09:59:30 3075 13

原创 3.spark 集群模式安装

集群模式说明安装JDK/Scala安装hadoop安装Spark下载安装测试开启独立集群开启shell执行语句测试集群模式说明如第一节所说,spark依赖的存储引擎和资源调度框架均可以替换,上一节默认都在本地,要改成集群模式,只需要把对应的存储引擎和计算引擎替换上即可。这里主要讲独立集群模式(standlone)和yarn集群模式:前者只依赖hdfs作为...

2020-01-29 17:15:52 255

原创 1.hive基础与安装

hive简介hive简单安装- 快速测试- 生产环境配置hive简介hive是标准hadoop体系的一员,常作为OLAP的数据仓库。hive存储一般基于HDFS或HBase构建,查询计算过程依赖 Apache Tez™, Apache Spark™, 或MapReduce。没有定义专门的数据格式,数据格式可以由用户指定,用户定义数据格式需要指定三个属性:列分隔符(通常为空格、”\...

2019-10-27 16:41:06 173

java并发编程实战-演示代码

博客配套文件,java并发编程实战详细演示了各种保证线程安全性和内存可见性的方法。

2018-08-22

go类型相关问题演示代码

演示了go语言类型相关的常见问题,给出详细演示代码,结合博客内容彻底明白。

2018-08-17

go语言常见坑

备课配套文件,详细演示了go语言常见的一些坑,包括slice、array详细区别等。

2018-08-16

python中函数常见坑

博客配套文件,详细演示了局部变量作用域问题和迭代器反复调用问题,并给出了对应解决办法,供参考。

2018-08-09

python父子进程

博客配套代码,讨论如下问题: 1.父进程开新的子进程完成任务,父进程关闭时,必须关闭子进程 2.父进程被强制关闭时,子进程也必须关闭 3.子进程被强制关闭时,父进程也必须关闭 4.父子进程没必然联系,关闭互不影响

2018-08-02

python中常见技巧1

其实也是常常遇到的一些问题,有些方法尽管可以解决问题甚至是常用的,但是python提供了更好的解决方法。对应的演示我会注明推荐和不推荐的用法。

2018-07-29

MFC程序员的WTL指南

MFC程序员的WTL指南,中文翻译版本,原文链接https://www.codeproject.com/Articles/3841/WTL-for-MFC-Programmers-Part-I-ATL-GUI-Classes。

2018-07-28

java客户端和go服务端联调错误演示

博客配套文件,演示了整个错误发生的过程,并给出正确的调用方法,可以供相同问题参考。

2018-06-04

WebBrowser 高级特性调整

博客配套文件,演示如何禁用WebBrowser右键菜单,如何禁用3D边缘和滚动条,以及如何处理js错误通知,js错误通知封装成类,可以满足实际生产使用需求。

2017-11-02

WebBrowser中JS和C++代码互相调用

博客配套文件,详细演示了JS和C++代码互相调用的方法,JS调用C++的类独立封装可直接修改使用。

2017-10-22

IE WebBrowser控件基本使用

博客演示代码,演示了IE WebBrowser控件的基本使用,包括静态创建、动态创建和事件响应。

2017-10-22

带透明度的HBITMAP和Bitmap的转换

博客配套文件,解决常见的Bitmap转HBITMAP背景变浅,HBITMAP转Bitmap背景变黑的问题,并演示了如何输出HBITMAP和Bitmap的每行像素,所有代码封装成了类,可以直接在生产环境中使用。

2017-10-21

GDI+加载和保存

博客配套文件,封装GDI+的加载保存,支持从文件/内存/资源中加载。

2017-10-21

GDI+使用演示代码

博客配套文件,详细演示了GDI+的使用,封装了GDI+环境初始化和反初始化。

2017-10-17

区分鼠标点击还是触摸

演示如何在鼠标响应详细中判断当前用户是通过鼠标点击还是通过触摸完成当前动作,据此可以最大程度兼容传统Windows程序,同时保证触摸体验效果。

2017-10-15

ATL常用包装类演示

ATL提供了很多复杂数据类型的包装类,使用这些包装类可以大大减小开发工作量,演示类常见CComBSTR CComVariant CComPtr的使用方法和注意事项。

2017-08-12

COM多线程访问演示

详细演示了多线程访问的列集/散集过程,可以借此学习COM多线程的策略和注意事项。

2017-08-02

简单的COM进程外组件

博客配套代码,详细演示了IDL生成组件代理存根dll,进程外组件编写和注册,及进程外组件调用方法。

2017-07-30

IDL使用演示

博客演示文件,演示常用的IDL属性,可以直接参考编写自己的IDL。

2017-07-30

COM特使类型使用演示

COM中包含特殊类型数据,他们大大方便了COM使用,解决了很多问题,但是也埋下了许多坑,这里详细介绍相关类型和他们的使用注意事项。

2017-07-28

HbaseJavaClient.java

hbase client包装类,超大数据海量数据时,hbase前缀匹配查询非常慢,提供了解决办法,能够取得较好的效果,包括setStartRow和setRowPrefixFilter两种方式。

2020-09-10

Spark 最简单WordCount

博客配套文件,详细演示了本地和集群模式如何运行Spark程序,演示了一个简单wordCount程序流程。

2019-05-15

scala和java混合编译

博客配套文件,详细演示了在maven中如何混合编译java和scala共存的代码。

2019-05-07

go thrift访问hbase

博客配套文件,详细演示了go通过thrift1和thrift2接口访问hbase的方法,并给出了批量访问的简单封装接口。

2019-04-19

MR程序Bulkload数据到hbase

博客配套文件,详细演示了如何通过MR程序的方式bulkload数据到hbase,代码可直接用于生产环境。

2019-03-12

thrift2 查询hbase

博客配套文件,详细演示了python通过thrift2接口查询hbase的方法。

2019-03-10

thrift1 查询hbase

博客配套文件,详细演示了python通过thrift1接口查询hbase的方法。

2019-03-10

happybase查询hbase

博客配套文件,详细演示了python通过happybase查询hbase的代码使用。

2019-03-10

centos6.5编译好thrift

在CentOS 6.5 g++版本4.4环境编译好的thrift-0.12.0.tar.gz可执行文件。

2019-03-10

python编写MR

博客配套文件,演示了借助hadoop streaming编写hadoop mapreduce程序。

2019-03-06

MR应用程序模板

博客配套文件,详细演示了实际工程应用中一个完善的MR应该如何编写。

2019-03-05

字符串-模式匹配(易理解版)

博客配套文件,演示了简化的KMP模式匹配过程和next数组的计算方式,对比快速掌握KMP算法精髓。

2019-01-27

栈实现四则运算

博客配套文件,利用c++ STL容器栈和队列实现四则运算,支持优先级和括号运算。

2019-01-08

最简单MR WordCount

博客配套文件,详细讲述了WordCount的map和reduce过程,给出了详细注释和解释,便于快速学习。

2018-12-28

一种资源池的实现

博客配套文件,详细演示了一种通用资源池的实现,给出了测试代码。

2018-11-29

python实现orm

博客配套文件,演示如何使用python实现一个简单的orm框架,并详细分析了开源框架peewee的结构。

2018-11-18

深入理解python元类

博客配套文件,演示了python类本质和和元类的定义方法,在此基础上演示常见元类的使用场景。

2018-11-11

深入理解python属性

博客配套文件,针对python属性实现aop,演示了property修饰器、描述符机制以及属性hook方法,并注明了实际需要注意的事项。

2018-11-10

python类特性演示

博客配套文件,详细演示python中实现OO编程的一些基础组件,包括命名元组,函数对象,操作符重写和类泛型

2018-10-21

go并发编程基础

博客配套文件,go并发编程基础,详细演示了传统同步方法和无缓冲通道、有缓冲通道同步方法。

2018-08-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除