深圳幻海软件技术有限公司 欢迎您!

开发工具

  • 在项目里怎么给 GORM 做单元测试

    前言真实的开发场景下我们的项目一般都会使用ORM,而不是原生的database/sql来完成数据库操作。在很多使用ORM工具的场景下,也可以使用go-sqlmock库Mock数据库操作进行测试,今天这篇内容我就以GORM为例,讲解怎么给项目中的ORM数据库操作做单元测试。项目准备为了场景足够真实,我

  • Supervisor这个监控告警功能你用过吗?

    Supervisor简介Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置

  • 面试突击:Volatile 有什么用?

    volatile是Java并发编程的重要组成部分,也是常见的面试题之一,它的主要作用有两个:保证内存的可见性和禁止指令重排序。下面我们具体来看这两个功能。内存可见性说到内存可见性问题就不得不提Java内存模型,Java内存模型(JavaMemoryModel)简称为JMM,主要是用来屏蔽不同硬件和操

  • 一篇带你了解奇妙的 CSS MASK

    本文将介绍CSS中一个非常有意思的属性mask。顾名思义,mask译为遮罩。在CSS中,mask属性允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域。其实mask的出现已经有一段时间了,只是没有特别多实用的场景,在实战中使用的非常少,本文将罗列一些使用mask创造出

  • Go 处理大数组:使用 for range 还是 for 循环?

    我们知道,Go的语法比较简洁。它并不提供类似C支持的while、do...while等循环控制语法,而仅保留了一种语句,即for循环。复制fori:=0;i<n;i++{......}1.2.3.但是,经典的三段式循环语句,需要获取迭代对象的长度n。鉴于此,为了更方便Go开发者对复合数据类型进

  • 一篇文章帮助小白快速入门 Spark

    大家好,我是Tom哥。互联网时代,随着业务数据化,数据越来越多。如何用好数据,做好数据业务化,我们需要有个利器。很多人都用过Hadoop,包含两部分HDFS和MapReduce,其中MapReduce是Hadoop的分布式计算引擎,计算过程中需要频繁落盘,性能会弱一些。今天,带大家快速熟悉一个大数据

  • 从根上理解 React Hooks 的闭包陷阱(续集)

    ​​上篇文章​​我们知道了什么是hooks的闭包陷阱,它的产生原因和解决方式,并通过一个案例做了演示。其实那个案例的闭包陷阱的解决方式不够完善,这篇文章我们再完善一下。首先我们先来回顾下什么是闭包陷阱:hooks的闭包陷阱是指useEffect等hook中用到了某个state,但是没有把它加到dep

  • 揭秘 Nacos 的 AP 架构 「Distro 一致性协议」

    你好,我是悟空呀。这次我们要进入Nacos的一致性底层原理了,还是先来一张架构图,让大家对Nacos的架构有个整体的印象,本篇会主要讲解一致性模块中的Distro协议。上篇留了两个知识点:①服务实例注册到Nacos节点后,通过UDP方式推送到所有服务实例。让其他服务实例感知到服务列表的变化。②如何复

  • 如何在 Go 函数中获取调用者的函数名、文件名、行号......

    背景我们在应用程序的代码中添加业务日志的时候,不论是什么级别的日志,除了我们主动传给Logger让它记录的信息外,这行日志是由哪个函数打印的、所在的位置也是非常重要的信息,不然排查问题的时候很有可能就犹如大海捞针。对于在记录日志时记录调用Logger方法的调用者的函数名、行号这些信息。有的日志库支持

  • 还在用Alpine做Docker镜像?看看大牛怎么说

    大家都喜欢Alpine的镜像,因为它们很轻,攻击面较小,但也许它们不再是最佳选择。现在又到了谈论distroless版镜像的时候了。在SumUp我们经常使用Kubernetes和Docker镜像,所以我们一直在寻找基础镜像的最佳选择。distroless镜像并不是什么新东西,但由于某些原因,我觉得它

  • Go应用程序需要注意的漏洞备忘单

    Go应用程序中需要注意27个漏洞,其中包括任意文件写入、目录遍历、反序列化等。 保护应用程序并不是最简单的事情。而一个应用程序有许多组件:服务器端逻辑、客户端逻辑、数据存储、数据传输、API等等。而为了保护所有这些组件的安全,构建安全的应用程序似乎真的令人生畏。 值得庆幸的是,大

  • 一文分清Java开发中容易混淆的四大设计模式

    作者|蔡柱梁可能很多人认为设计模式只有面试时用到,这也不能算错吧。但是如果仅仅只是面试时背背八股文,在实际工作中遇到了应该使用,却不知道要用,那么你的代码能有多好也是自欺欺人的了。那么什么时候应该使用设计模式呢?换个角度说吧,大家觉得设计模式是怎么出来的?其实就是大牛们写代码多了,觉得一些高度重复或

  • Spring Security 中的权限注解很神奇吗?

    最近有个小伙伴在微信群里问SpringSecurity权限注解的问题:很多时候事情就是这么巧,松哥最近在做的tienchin也是基于注解来处理权限问题的,所以既然大家有这个问题,咱们就一块来聊聊这个话题。当然一些基础的知识我就不讲了,对于SpringSecurity基本用法尚不熟悉的小伙伴,可在公众

  • 持续保障系统稳定性和高可用:腾讯游戏混沌工程实践

    最近一两年,我们可以发现混沌工程这个技术变得十分火热,大家都知道它变成了一个新的风口。常说做事情要顺势而为,我们希望能够抓住这个机会,所以我最近一年的工作主要是将混沌工程这一技术在腾讯游戏落地。一、什么是混沌工程1、混沌工程的定义混沌工程是为应对故障而生。大家知道我们运维人员都很辛苦,经常在周末或者

  • 没跨过这四个槛就技术转管理,你怎么敢的呀?

    有不少刚开始做管理的技术人,都和我谈过他们的困惑。总结下来主要是不知道继续晋升需要培养哪方面的能力。技术经理其实是技术人最难做好的管理岗,原因主要有两方面:在互联网公司,技术骨干由于业务做的出色,火线被提升为技术经理,往往缺乏系统的领导力的培训。技术经理是团队贡献者,但仍然需要大量个人贡献,尤其是在

  • 这五个字,能优化你80%的程序性能问题

    本篇关注程序性能优化。聚焦这个主题,本是偶然。始于玩笑,终于本心。本想找点高大上的让人直呼牛逼的东西,奈何能力有限,只能给大家一些既便宜、又好用、还简单的普通东西了,不知道你们会不会喜欢。分为五个主题,分别是『池』『序』『分』『减』『并』:一、『池』字诀池化,降低可重用对象的创建和回收代价。不知道你

  • 使 Ubuntu 22.04 LTS 成为史诗版本的五个不太流行的功能

    这是一份关于Ubuntu22.04LTS的次要特点的列表,这些特点使它成为迄今为止最好的LTS版本之一。Canonical的最新LTS版本Ubuntu的代号为“JammyJellyfish”受到了全球用户的好评。但是有数百个新的微小功能,以及一些不太流行的功能,没有引起人们的注意。因此,这里有五个U

  • SCSS 中这些技巧,你可能还不知道!

    随着css工程化的普及,sass在前端工程中越来越举足轻重。当然sass并不局限于管理css全局变量、mixin之类的"脏活累活"。这篇文章会跟随工程化前端一步一步记录sass中那些不为人知,但是又非常使用的小技巧分享给大家。内置函数sass官网提供了很多实用的内置函数,当然目前我也是在一步一步探索

  • 如何衡量分布式系统的好坏?

    译者|崔皓 策划|云昭分布式系统设计是一个难题,难就难在设计过程中是不会提供直接反馈的。往往有些问题的产生是来源于设计的,例如:可扩展性问题、弹性问题、数据问题。然而,通常的解决方案是治标不治本——仅仅对系统进行修补以使其保持运行,但是潜在的设计问题仍然存在,并且可能在不同的情况下再次爆发

  • 如何让 Jupyter Notebook 自动导入代码?

    大家好,我是早起。作为使用Python工作的数据科学家。每天我们都会启动多个新的Jupyter笔记本,并且在会用到多个不同的库,例如pandas、matplotlib等。但是,在开始实际工作之前,我们总是需要为每一个Notebook写一堆的导入代码,虽然这不困难,但是却很繁琐,有时还需要查找对应的导

  • Java SPI 和 API,傻傻分不清?

    最近新写了一个中间件「运行时动态日志等级开关」,其中使用JavaSPI机制实现了自定义配置中心,保证良好的扩展性。在使用过程中,突然发现SPI其实和日常写API接口,然后进行implements实现非常相似,那SPI到底和普通API实现有啥区别呢?带着这个问题,我们一起来梳理下SPI机制吧。本文预计

  • CSS 实现头像名称首字符自动占位

    在web中经常会见到这样的设计,很多UI组件库也称之为Avator组件,也就是头像的意思,当头像未设置时,会显示名称的首字符充当默认头像,如下所示:实际效果可以查看底部「原文链接」,那么如何通过CSS实现这一效果呢?一、图片加载失败时的占位现代浏览器(Chrome、Firefox)img标签都支持伪

  • 白瞎了你的 MackBook,这俩工具赶紧安排!

    攒钱攒钱,好不容易攒够了,终于买了台高大上的MackBook。咖啡厅里带着,睡觉的时候抱着,就连如厕的时候,也会用卫生纸静静地抚舐键盘缝隙里的灰尘。整个MacBook沉浸在你无尽的爱中。MacBook就差点说:听我说谢谢你,因为有你温暖了四季。第一种暴殄天物的玩法,就是抹掉了MacOS系统,安装上了

  • 你不会在 Python 中看到的 4 个有用的特性

    以下是目前Python中没有的四种常用语言特性。其中至少有两个永远不会有,而其他的最多是几年后的事。我们将看看是什么阻碍了这些特性的实现,或者说要在未来的Python版本中包含它们需要做些什么。不会有的:一个静态类型的编译版Python一些开发者梦想着一个使用静态类型的Python来编译本地机器代码

推荐阅读