基于gin的golang web开发:模型绑定

在前两篇文章介绍路由的时候,我们了解到gin可用通过类似DefaultQuery或DefaultPostForm等方法获取到前端提交过来的参数。参数不多的情况下也很好用,但是想想看,如果接口有很多个参数的时候再用这种方法就要调用很多次获取参数的方法,本文将介绍一种新的接收参数的方法来解决这个问题:模 ...

redis client原理分析

代码库地址:https://github.com/garyburd/redigo 1:连接池 2:发送命令 3:解析结果 1:连接池 连接池结构体如下: type Pool struct { // Dial is an application supplied function for creati ...

Java8新特性探索之Stream接口

一、为什么引入Stream流 流是一系列与特定存储机制无关的元素——实际上,流并没有“存储”之说。使用流,无需迭代集合中的元素,就可以从管道提取和操作元素。这些管道通常被组合在一起,形成一系列对流进行操作的管道。 在大多数情况下,将对象存储在集合中是为了处理他们,因此你将会发现你将编程的主要焦点从集 ...

对开发流程优化的建议

从事软件开发多年的老兵都知道,在一个软件项目的生命周期里,不可避免地会生产很多变化,让开发陷入困局,本文试分析并给出一些方法来缓解困局,希望大家给予建议和批评 ...

想买保时捷的运维李先生学Java性能之 生存与毁灭

一、判断对象是否存活 1、引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器的值就减1;任何时刻计数器为0的对象是不可能再被使用的。引用计数算法(Reference Counting)的实现简单,判断效率也很高,在大部分情况下是一个不错的算法,但是主 ...

用匿名内部类实现 Java 同步回调

在一个应用系统中,不论使用何种编程语言,模块之间要进行调用,仅存在三种方式:同步调用、异步调用、回调。本文就其中回调方式进行详细解读,并通过匿名内部类的手段,在最后实现一个同步回调的过程。 一、回调的意义 在学习回调之前,我们需要知道使用回调的原因,和回调的应用场景。 不如先思考两个问题: 栈底对栈 ...

打造一款简单易用功能全面的图片上传组件

多年前我曾搞过Winform,也被WPF折磨得死去活来。后来我学会了对她们冷眼旁观,就算老鸨巨硬说又推了一个新头牌UWP,问我要不要试试,我也不再回应。时代变了,她们古板的舞步已经失去了往日的魅力,那些为了适应潮流勉强加上的几个动作反而显得更加可笑、和可悲。我四处流浪,跟着年轻的小伙们去到远处的移动 ...

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣、入门级的开源项目。 这是一个面向编程新手、热爱编程、对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且 ...

AWS Lambda 借助 Serverless Framework,迅速起飞

前言 微服务架构有别于传统的单体式应用方案,我们可将单体应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作时不会互相影响 这种设计理念被进一步应用,就变成了无服务(Serverless)。「无服务」看似挺荒唐的,其实服务器依旧存在,只是我们不需要关注或预置服 ...

源码都没调试过,怎么能说熟悉 redis 呢?

一:背景 1. 讲故事 记得在很久之前给初学的朋友们录制 redis 视频课程,当时结合了不少源码进行解读,自以为讲的还算可以,但还是有一个非常核心的点没被分享到,那就是源码级调试, 对,读源码还远远不够,还得亲自实操,为了弥补这个遗憾,这一篇就补起来哈。 二:vscode 和 redis 的部署 ...

C#-表达式树

目录 表达式树 构建表达式树 使用Expression来进行不同对象的相同名字的属性映射 表达式树构建SQL删选 修改表达式树 构建模拟EF的表达式树解析 连接表达式树 1、表达式树 表达式树,在C#中是Expression来定义的,它是一种语法树,或者说是一种数据结构。其主要用于存储需要计算、运算 ...

Guava - 拯救垃圾代码,写出优雅高效,效率提升N倍

最近在看一个同学代码的时候,发现代码中大量使用了 Google 开源的 Guava 核心库中的内容,让代码简单清晰了不少,故学习分享出 Guava 中我认为最实用的功能。 Guava 项目是 Google 公司开源的 Java 核心库,它主要是包含一些在 Java 开发中经常使用到的功能,如数据校验 ...

Redis基础(三)Redis持久化:RDB与AOF

什么是Redis持久化? Redis是键值对的内存数据库,它将数据存储在内存里。客户端发送命令到服务器,再由服务器到内存里查找数据。 一旦Redis服务器进程退出,存储在内存里的数据就会丢失。 为了解决这个问题,Redis提供了持久化机制,即将数据保存到磁盘里,以便Redis服务器进程初始化或重启后 ...

RocketMQ消息丢失解决方案:同步刷盘+手动提交

前言 之前我们一起了解了使用RocketMQ事务消息解决生产者发送消息时消息丢失的问题,但使用了事务消息后消息就一定不会丢失了吗,肯定是不能保证的。 因为虽然我们解决了生产者发送消息时候的消息丢失问题,但也只是保证Broker正确的接收到了消息,实际上接收到的消息会保存在os cache中,如果此时 ...

云计算管理平台之OpenStack简介及基础环境搭建

简单说openstack是云计算管理平台,主要对云环境中的虚拟机做增删查改;它能够将多台物理设备的资源(cpu/内存等)整合成一个大的资源池,然后根据openstack提供的api接口向用户提供使用;用户可以根据openstack提供的资源池接口来启动虚拟机,管理虚拟机;openstack 主要组... ...

<123···200>