dasein58_个人页

dasein58
个人头像照片 个人头像照片
970
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2021年11月

  • 11.07 23:15:35
    发表了文章 2021-11-07 23:15:35

    【Flashback】使用视图快速获得Flashback Query闪回查询数据

    本文给出使用视图协助我们快速构造闪回查询内容,通过视图可以方便的检索“历史上的数据”。 1.构造闪回查询视图需求描述 1)准备员工表和工资表 2)删除工资表中雇佣年限在1994年之前的记录 3)创建视图可以查询工资表删除之前的记录 2.准备环境 1)准备员工表和工资表 sec@ora10g> create table emp (id number,name varchar2(20), e_date date); Table created. sec@ora10g> create table salary (id number, salary number); Table create
  • 11.07 23:14:53
    发表了文章 2021-11-07 23:14:53

    【脚本】快速获得当前用户下“暂忘”的数据库对象信息

    对SQL*Plus情有独钟的朋友一定遇到过这样的问题:突然忘记了表的全名(或者其他数据库对象名),仅依稀记得它包含几个字母,怎么可以最快速知道具体的名字呢? 最快速的回答:使用数据字典视图可以达到提示自己的目的。 例如使用如下的SQL语句遍可获得当前用户下所有包含“TMP”关键字的数据库对象信息。 select * from obj where object_name like '%TMP%'; 完全正确,但是没有达到我们“快速”的目的。我这里给出一个非常简单的脚本(以obj为基础进行了简单的格式化),以便达到快速获得提示信息的目的。 1.脚本内容如下,有兴趣的朋友可以在这个基础上进一步
  • 11.07 23:13:56
    发表了文章 2021-11-07 23:13:56

    【VNC】Linux环境VNC服务安装、配置与使用

    前言:作为一名DBA,在创建Oracle数据库的过程中一般要使用dbca和netca图像化进行建库和创建监听(如果使用脚本建库另说),如果您身体好估计可以在瑟瑟发抖的机房中完成数据库的创建过程,由于本人对寒冷比较敏感,又不想通过这样的方式锻炼身体,所以更愿意在舒适的房间内一边品味着咖啡的浓香,顺便度过相对枯燥的数据库安装和配置的过程,So,图形化操作工具是必不可少的,在Linux操作系统最流行的图形化操作软件莫过于VNC,俺本着总结、共享及提醒的目的完成了这个详细的小文儿,希望大家喜欢。 1.确认VNC是否安装 默认情况下,Red Hat Enterprise Linux安装程序会将VNC
  • 11.07 23:12:56
    发表了文章 2021-11-07 23:12:56

    【去重】当SYS和SYSTEM用户出现重复数据库对象时的应对措施

    当SYS和SYSTEM用户中出现重复数据库对象的时候会对数据库的使用带来很多的问题。系统一旦使用到这些重复对象的时候将会报错。 什么情况下会出现这种重复现象呢? 一般情况下SYS和SYSTEM用户下的数据库对象都是在数据库安装的过程中完成的。不过个别情况下为了部署新特性需要手工执行创建脚本。一般规律是这样的:但凡涉及到手工操作的部分,就潜在出错因素,一旦可能出错,便一定会出错。这便是“墨菲定律”。 本文给出这类故障的模拟和处理方法。 1.确认系统SYS和SYSTEM用户中是否存在重复数据库对象 sys@ora10g> show user USER is "SYS" sys@
  • 11.07 23:11:36
    发表了文章 2021-11-07 23:11:36

    【Freelist】关于Freelists和Freelist Groups的探究

    1.有关Freelist的描述 数据库读取的单位是数据块(block),一个block是否允许写入数据是基于一定的空闲度--PCTFREE和PCTUSED存储参数设置。 Freelists就是一个指定了所有可以用于insert操作的数据块的列表。 存在于这个列表中的数据块才能用于insert操作,一旦一个数据块无法用于insert(达到了PCTFREE参数指定的限度)则立刻从这个列表中摘除。 Freelists的作用就在于管理高水位标志(HWM)以下的空闲空间,实际上一个segment可用的空闲空间包括两种类型: 1)已经分配给这个segment但是从来未被使用过的位于高水位标志之上的bloc
  • 11.07 23:10:25
    发表了文章 2021-11-07 23:10:25

    10个常见的Redis面试"刁难"问题

    高可用架构 导读:在程序员面试过程中Redis相关的知识是常被问到的话题。作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题。十分值得一读。 作者简介:钱文品(老钱),互联网分布式高并发技术十年老兵,目前任掌阅科技资深后端工程师。熟练使用 Java、Python、Golang 等多种计算机语言,开发过游戏,制作过网站,写过消息推送系统和MySQL 中间件,实现过开源的 ORM 框架、Web 框架、RPC 框架等 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行各种刁难。作为一名
  • 11.07 23:09:54
    发表了文章 2021-11-07 23:09:54

    一份平民化的应用性能优化检查列表(完整篇)

    1.总原则 一些正确但稍显废话的原则,但能指导后面每个章节的优化,所以还是要啰嗦一次。 可扩展性架构,堆机器能不能解决问题是最最优先考虑的问题 去中心化的点对点通信,优于通过中心代理的通信 池化的长连接,优于短连接 二进制数据,优于文本数据 尽量减少交互,一次调用的粗粒度聚合接口 优于 多次调用的细粒度接口 尽量减少交互,批量接口优于循环调用 尽量只交互必要的数据 尽量就近访问 尽量使用缓存 总是设定超时 在合适的场景,并行化执行 在合适的场景,异步化执行 2.环境准备 保证符合自家各种规范(没有的话赶紧回家写一个),尤其线下压测服务器的配置要与生产环境一致。 2.1 操作系统 自家
  • 11.07 23:09:00
    发表了文章 2021-11-07 23:09:00

    【expdp】10g数据泵expdp工具选项详解及应用示例

    理解expdp各个选项的含义最好的途径就是逐一的进行测试,这样可以在感性上有一个真实的体验。 1.数据泵expdp导出工具与传统的exp导出工具的区别 1)exp是客户端程序,既可以在客户端使用,也可以在服务器端使用; 2)expdp是服务器端工具,只能在ORACLE服务器端使用,不能在客户端使用; 3)这两个工具生成的备份文件不能被对方与之对应的导入工具使用; 4)expdp在灵活性和功能性上与exp相比,有质上的飞跃。 2.expdp命令行选项列表 使用“-help”选项获得expdp命令可用的选项列表和简单的注释信息。 ora10g@linux5 /expdp$ expdp help
  • 11.07 23:00:47
    发表了文章 2021-11-07 23:00:47

    spring cloud分布式微服务-Spring Boot基础构建

    本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。 系统要求: Java 7及以上 Spring Framework 4.1.5及以上 本文采用Java 1.8.0_73、Spring Boot 1.3.2调试通过。 使用Maven构建项目 通过SPRING INITIALIZR工具产生基础项目 访问:http://start.spring.io/ 选择构建工具Maven Project、Spring Boot版本1.3.2以及一些工程基本信息,可参考下图所示SP
  • 11.07 22:59:06
    发表了文章 2021-11-07 22:59:06

    你真的会将类数组转化为数组吗

    首先,什么是类数组(Array Like)? 一个简单的定义,如果一个对象有 length 属性值,则它就是类数组 那常见的类数组有哪些呢? 这在 DOM 中甚为常见,如各种元素检索 API 返回的都是类数组,如 document.getElementsByTagName,document.querySelectorAll 等等。除了 DOM API 中,常见的 function 中的 arguments 也是类数组 那如何把类数组转化为数组呢?这是类数组操作时一个典型的场景,也是一个典型的面试题 以下我们将以 { length: 3 } 来指代类数组,来作为演示 节选自 日文 【
  • 11.07 22:56:48
    发表了文章 2021-11-07 22:56:48

    基于jdbc实现一个Demo版的Mybatis

    一、前言介绍 在前面一篇分析了 mybatis 源码,从它为什么之后接口但是没有实现类就能执行数据库操作为入口,整个源码核心流程完全解释了一遍。对于一个3年以上的程序员来说,新知识的学习过程应该是从最开始 helloworld 到熟练使用 api 完成业务功能。下一步为了深入了解就需要阅读部分核心源码,从而在出问题后可以快速定位,迅速排查。从而减少线上事故的持续时长,提升个人影响力。但!这不是学习终点,因为无论是任何一个框架的源码,如果只是看那么就很难学习到它的实用技术。纸上得来终觉浅,唯有实战和操练。 那么,本章节我们去简单实现一个基于jdbc的demo版本Mybatis,从而更加清楚这样
  • 11.07 22:55:44
    发表了文章 2021-11-07 22:55:44

    Google 开源的 Python 命令行库:fire 实现 git 命令

    涉及的示例代码和历史文章,已同步更新到 HelloGitHub-Team 仓库 一、前言 在前面三篇介绍 fire 的文章中,我们全面了解了 fire 强大而不失简洁的能力。按照惯例,我们要像使用 argparse、docopt 和 click 一样使用 fire 来实现 git 命令。 本文的关注点并不在 git 的各种命令是如何实现的,而是怎么使用 fire 去打造一个实用命令行程序,代码结构是怎样的。因此,和 git 相关的操作,将会使用 gitpython 库来简单实现。 为了让没读过 使用 xxx 实现 git 命令(xxx 指 argparse、docopt 和 click)
  • 11.07 22:54:39
    发表了文章 2021-11-07 22:54:39

    数据库对象设计-Database和Schema设计

    GaussDB 200中可以使用Database和Schema实现业务的隔离,区别在于Database的隔离更加彻底,各个Database之间共享资源极少,可实现连接隔离、权限隔离等,Database之间无法直接互访。Schema隔离的方式共用资源较多,可以通过grant与revoke语法便捷地控制不同用户对各Schema及其下属对象的权限。 从便捷性和资源共享效率上考虑,推荐使用Schema进行业务隔离。 建议系统管理员创建Schema和Database,再赋予相关用户对应的权限。 Database设计建议 【建议】在实际业务中,根据需要创建新的Database,不建议直接使用集群默认的p
  • 11.07 22:49:15
    发表了文章 2021-11-07 22:49:15

    Java和Docker限制的那些事儿

    Java和Docker不是天然的朋友。 Docker可以设置内存和CPU限制,而Java不能自动检测到。使用Java的Xmx标识(繁琐/重复)或新的实验性JVM标识,我们可以解决这个问题。 虚拟化中的不匹配 Java和Docker的结合并不是完美匹配的,最初的时候离完美匹配有相当大的距离。对于初学者来说,JVM的全部设想就是,虚拟机可以让程序与底层硬件无关。 那么,把我们的Java应用打包到JVM中,然后整个再塞进Docker容器中,能给我们带来什么好处呢?大多数情况下,你只是在复制JVMs和Linux容器,除了浪费更多的内存,没任何好处。感觉这样子挺傻的。 不过,Docker可以把
  • 11.07 22:00:29
    发表了文章 2021-11-07 22:00:29

    10个常见的Redis面试"刁难"问题

    导读:在程序员面试过程中Redis相关的知识是常被问到的话题。作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题。十分值得一读。 作者简介:钱文品(老钱),互联网分布式高并发技术十年老兵,目前任掌阅科技资深后端工程师。熟练使用 Java、Python、Golang 等多种计算机语言,开发过游戏,制作过网站,写过消息推送系统和MySQL 中间件,实现过开源的 ORM 框架、Web 框架、RPC 框架等 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行各种刁难。作为一名在互联网技术行
  • 11.07 21:59:31
    发表了文章 2021-11-07 21:59:31

    一份平民化的应用性能优化检查列表(完整篇)

    1.总原则 一些正确但稍显废话的原则,但能指导后面每个章节的优化,所以还是要啰嗦一次。 可扩展性架构,堆机器能不能解决问题是最最优先考虑的问题 去中心化的点对点通信,优于通过中心代理的通信 池化的长连接,优于短连接 二进制数据,优于文本数据 尽量减少交互,一次调用的粗粒度聚合接口 优于 多次调用的细粒度接口 尽量减少交互,批量接口优于循环调用 尽量只交互必要的数据 尽量就近访问 尽量使用缓存 总是设定超时 在合适的场景,并行化执行 在合适的场景,异步化执行 2.环境准备 保证符合自家各种规范(没有的话赶紧回家写一个),尤其线下压测服务器的配置要与生产环境一致。 2.1 操作系统 自家
  • 11.07 21:58:33
    发表了文章 2021-11-07 21:58:33

    正确地使用Redis的SETNX实现锁机制

    setNX,是set if not exists 的缩写,也就是只有不存在的时候才设置, 设置成功时返回 1 , 设置失败时返回 0 。可以利用它来实现锁的效果,但是很多人在使用的过程中都有一些问题没有考虑到。 例如某个查询数据库的接口因为请求量比较大所以加了缓存,并设定缓存过期后刷新。当并发量比较大并且缓存过期的瞬间,大量并发请求会直接查询数据库导致雪崩。如果使用锁机制来控制只有一个请求去更新缓存就能避免雪崩的问题。下面是很多人下意识想到的加锁方法 <?php $rs = $redis->setNX($key, $value); if ($rs) { //处理更新缓存逻辑
  • 11.07 21:56:17
    发表了文章 2021-11-07 21:56:17

    调试,是一件有挑战的事情

    如果你不是工程师,你应该享受不到加班调试的乐趣吧,我记得在大学的时候,我第一次调试I2C时序,当时用的芯片是24C02的存储芯片,用51单片机模拟I2C时序,怎么整也整不出来,时序这个东西,一通百通,一不通那就是几个通宵熬夜都有可能。 先量电压,量电压了看波形,波形反反复复的看了之后,就是没有从设备的应答信号,再去看看硬件设计,该上拉电阻的地方有没有接上上拉电阻。 关于上拉电阻和下拉电阻这个自行百度,可以理解为一个默认的能力把,就像弹簧默认是有一个力的,你需要一个>弹簧的默认力才能驾驭弹簧,上拉和下拉就是保持它的默认能力。 作为一个电子工程师,调试通信时序应该是基本操作,就好
  • 11.07 21:55:06
    发表了文章 2021-11-07 21:55:06

    GIN索引-扩展性

    GIN索引的接口实现了一个高层次的抽象,要求访问用户仅需要实现被访问数据类型的语义。GIN层自身可以处理并发操作、记录日志、搜索树结构的任务。 定义GIN索引的访问方式所要做的事情就是实现多个用户定义的方法,这些方法定义了键在树中的行为、键与键之间的关系、需要索引的item、能够使用索引的查询。简而言之,GIN索引将扩展性与普遍性、代码重用、清晰的接口结合在了一起。 实现GIN索引的操作符类有如下四个方法: int compare(Datum a, Datum b) 比较两个key(不是索引的item)然后返回一个小于零、零或大于零的值,分别表示第一个key小于、等于或大于第二个key。
  • 11.07 21:53:40
    发表了文章 2021-11-07 21:53:40

    Spring Cloud Config客户端使用

    要在应用程序中使用这些功能,只需将其构建为依赖于spring-cloud-config-client的Spring引导应用程序(例如,查看配置客户端或示例应用程序的测试用例)。添加依赖关系的最方便的方法是通过Spring Boot启动器org.springframework.cloud:spring-cloud-starter-config。
  • 11.07 21:15:47
    发表了文章 2021-11-07 21:15:47

    WEB各类常用测试工具

    一,单元测试/测试运行器 1,Jest 知名度的Java单元测试工具,由Facebook开源,开箱即用。它在最基础的被设计为快速,简单地编写地道的Java测试,能自动模拟()返回的CommonJS模块,并提供了包括内置的测试环境Dom API支持,合理的转换值,重新编码和交替执行并行测试内部的特性。通过在并行进程中同时运行测试,让测试重新进行地结束。 2,AVA 号称“未来的测试运行器”,利用Java的在Node.js的里使得IO可以并行的优点,让你的测试可以并发执行,这对于IO繁重的测试特别有用。另外,测试文件可以在不同的进程里并行运行,让每个一个测试文件可以获得更好的性能和独立的环境
  • 11.07 21:14:22
    发表了文章 2021-11-07 21:14:22

    故障定位方法-磁盘故障定位手段

    常见的磁盘故障是磁盘空间不足、磁盘出现坏块、磁盘未挂载等。 磁盘故障有的会导致文件系统损坏,比如磁盘未挂载,集群管理自动定期做磁盘检测时会识别故障并将实例停止,查看集群状态时对应实例状态异常;有的不会导致文件系统损坏,比如磁盘空间不足,集群管理无法检测到,服务进程访问到故障磁盘会异常退出,比如:数据库无法启动、checksum校验不对、页面读写失败、页面校验错误等。 对于会导致文件系统损坏的故障,查看集群状态会显示对应实例状态持续为Unknown,定位方法如下: 查看cm_agent日志,日志保存在mpp/omm/cm/cm_agent,日志中会有类似“data path disc wri
  • 11.07 21:11:34
    发表了文章 2021-11-07 21:11:34

    一个开发工程师,真的需要了解业务吗?

    昨天,一位分析界的老前辈对我很无奈地摇摇头,“这帮程序员,不食人间烟火哪!” 我也深有感触,全世界的码农都一个鸟样。 这让我想起了,同样也是他,在多年之前,对我提了警醒——要重视业务。 从那之后,我一直狂奔在技术+业务的双修道路上。 放在以前,码农这个族群一定是稀罕动物。但在今天,这个世界最不缺的应该就是码农了,未来最廉价的也将是码农。
  • 11.07 21:06:00
    发表了文章 2021-11-07 21:06:00

    mybatis使用注解替代xml配置,动态生成Sql

    mybatis使用注解替代xml配置时,遇到判断条件是否为null或者为空时,@Select很难搞定,不知道怎么办? mybatis3中增加了使用注解来配置Mapper的新特性,使用 SelectProvider来动态生成sql。 典型的使用场景 1. 无参数@SelectProvide方法 在Mapper接口方法上和@SelectProvide指定类方法上,均无参数: UserMapper.java: 1 @SelectProvider(type = SqlProvider.class, method = "selectAllUser") 2 @ResultMap("
  • 11.07 20:55:28
    发表了文章 2021-11-07 20:55:28

    Go语言五种变量创建的方法

    对于只有 Python 语言经验的朋友,也许会不太理解声明这个词,在 Python 中直接拿来就用,也不用声明类型啥的。 Go 语言是静态类型语言,由于编译时,编译器会检查变量的类型,所以要求所有的变量都要有明确的类型。 变量在使用前,需要先声明。声明类型,就约定了你这个变量只能赋该类型的值。 声明一般有以下四种方法,其中前面两种同样也可用于定义常量,只需把关键字 var 变成 const 即可。 第一种 :一行声明一个变量 var <name> <type> 复制代码 其中 var 是关键字(固定不变),name 是变量名,type 是类型。 使用 var ,虽然只指定了类型,但
  • 11.07 20:54:05
    发表了文章 2021-11-07 20:54:05

    关于Freelists和Freelist Groups的研究

    数据库读取的单位是数据块(block),一个block是否允许写入数据是基于一定的空闲度--PCTFREE和PCTUSED存储参数设置。 Freelists就是一个指定了所有可以用于insert操作的数据块的列表。 存在于这个列表中的数据块才能用于insert操作,一旦一个数据块无法用于insert(达到了PCTFREE参数指定的限度)则立刻从这个列表中被摘除。 Freelists的作用就在于管理高水位标志(HWM)以下的空闲空间。 Freelist只是管理高水位标志以下的空闲空间,而实际上一个segment可用的空闲空间包括两种类型: 1.已经分配给这个segment但是从来未被使用过的位
  • 11.07 20:53:38
    发表了文章 2021-11-07 20:53:38

    记住,永远不要在MySQL中使用“utf8”-转

    最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后出现了一个离奇的错误: Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1 我用的是UTF-8编码的客户端,服务器也是UTF-8编码的,数据库也是,就连要保存的这个字符串“ <…”也是合法的UTF-8。 问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。 MySQL一直没有修复
  • 11.07 20:53:03
    发表了文章 2021-11-07 20:53:03

    如何快速打好Java基础?

    微信上 tison 向我提出了这个问题。我想我是有资格来回答的,从北京奥运会那年开始学 Java,到现在已经有 10 多个年头了,真的是从一名编程白痴一步步走到现在的。 我在各大技术网站上分享了不少 Java 方面的原创文章,不知道影响了多少初学者,反正文章的留言中经常能看到他们由衷的感谢。现在每天仍然有不少同学(tison 是其中之一)加我微信,问我怎么一路过来的,希望能够把宝贵的经验分享出来,让他们少走一些弯路。 借这个机会,就统一回答下。 既然要快速,咱就没法面面俱到,必须挑重点、讲实用。下面就根据我的实战经验,谈一谈具体的学习过程。 01、准备 学习之路是一项很逆人性的差事,并不
  • 11.07 20:52:34
    发表了文章 2021-11-07 20:52:34

    python 函数中的参数类型

    1.前言 Python 中函数的参数类型比较丰富,比如我们经常见到 *args 和 **kwargs 作为参数。初学者遇到这个多少都有点懵逼,今天我们来把 Python 中的函数参数进行分析和总结。 2.Python 中的函数参数 在Python中定义函数参数有5种类型,我们来一一演示它们。 2.1必选参数 必须参数是最基本的参数类型,当你在 Python 函数中定义一个必选参数时,每次调用都必须给予赋值,否则将报错。
  • 11.07 20:52:03
    发表了文章 2021-11-07 20:52:03

    架构选型,究竟啥时候选redis?

    redis是互联网分层架构中,最常用的KV缓存,但不少同学仍然不知道,为啥要选择redis。 画外音:与之对比最多的,是memcache。 一、复杂数据结构,选择redis更合适 value是哈希,列表,集合,有序集合这类复杂的数据结构时,会选择redis,因为mc无法满足这些需求。 最典型的场景,用户订单列表,用户消息,帖子评论列表等。 二、持久化,选择redis更合适 mc无法满足持久化的需求,只得选择redis。 但是,这里要提醒的是,真的使用对了redis的持久化功能么? 千万不要把redis当作数据库用: (1)redis的定期快照不能保证数据不丢失; (2)redis
  • 11.07 20:44:43
    发表了文章 2021-11-07 20:44:43

    Django Haystack 全文检索与关键词高亮

    博客提供 RSS 订阅应该是标配,这样读者就可以通过一些聚合阅读工具订阅你的博客,时时查看是否有文章更新,而不必每次都跳转到博客上来查看。现在我们就来为博客添加 RSS 订阅功能。 在此之前我们使用了 Django 内置的一些方法实现了一个简单的搜索功能。但这个搜索功能实在过于简单,没有多大的实用性。对于一个搜索引擎来说,至少应该能够根据用户的搜索关键词对搜索结果进行排序以及高亮关键字。现在我们就来使用 django-haystack 实现这些特性。 Django Haystack 简介 django-haystack 是一个专门提供搜索功能的 django 第三方应用,它支持 Solr、
  • 11.07 20:42:42
    发表了文章 2021-11-07 20:42:42

    这个 Spring 循环依赖的坑,90% 以上的人都不知道

    1. 前言 这两天工作遇到了一个挺有意思的Spring循环依赖的问题,但是这个和以往遇到的循环依赖问题都不太一样,隐藏的相当隐蔽,网络上也很少看到有其他人遇到类似的问题。这里权且称他非典型Spring循环依赖问题。但是我相信我肯定不是第一个踩这个坑的,也一定不是最后一个,可能只是因为踩过的人比较少、鲜有记录罢了。因此这里权且记录一下这个坑,方便后人查看。 正如鲁迅(我)说过,“这个世上本没有坑,踩的人多了,也便成了坑”。 2. 典型场景 经常听很多人在Review别人代码的时候有如下的评论:“你在设计的时候这些类之间怎么能有循环依赖呢?你这样会报错的!”。 其实这句话前半句当然没有错,出
  • 11.07 20:38:26
    发表了文章 2021-11-07 20:38:26

    队列理论在PostgreSQL写WAL中的应用

    队列理论在我们生活中的应用随处可见,例如机场、海关、银行甚至排队买菜。可以说,只要有排队的地方,就可以应用队列理论进行服务优化。 在计算机领域的架构设计,性能诊断等地方使用队列理论的案例也多不胜举。曾经培训的时候听到过,有牛人可以在不了解具体技术的情况下仅凭队列理论的知识就可以快速定位系统的瓶颈所在。拿一台服务器来讲,分为动态设备和静态设备。CPU和IO子系统属于动态设备,RAM属于静态设备,队列理论只对动态设备适用。今天不打算介绍队列理论的基础知识,而想讨论一下队列理论在PG数据库对于写WAL上的应用。 一个系统的响应时间由两部分决定,等
  • 11.07 20:37:43
    发表了文章 2021-11-07 20:37:43

    编写 Django 应用单元测试

    文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 我们博客功能越来越来完善了,但这也带来了一个问题,我们不敢轻易地修改已有功能的代码了! 我们怎么知道代码修改后带来了预期的效果?万一改错了,不仅新功能没有用,原来已有的功能都可能被破坏。此前我们开发一个新的功能,都是手工运行开发服务器去验证,不仅费时,而且极有可能验证不充分。 如何不用每次开发了新的功能或者修改了已有代码都得去人工验证呢?解决方案就是编写自动化测试,将人工验证的逻辑编写成脚本,每次新增或修改代码后运行一遍测试脚本,脚本自动帮我们完成全部测试工作。 接下来我们将进行两种类型的测试,一种是单元测试,
  • 11.07 20:35:41
    发表了文章 2021-11-07 20:35:41

    用Spring的BeanUtils前,建议你先了解这几个坑!

    背景 最近项目中在和第三方进行联调一个接口,我们这边发送http请求给对方,然后接收对方的回应,代码都是老代码。根据注释,对方的SDK中写好的Request类有一个无法序列化的bug,所以这边重新写了一个Request类,基本属性都是相同的,但是重点是有一个属性是静态内部类,还有两个是list属性,类似于下面这样: private List<Order> orders; private AddRequest.Ticket ticket; private List<Payment> payments; 复制代码 AddRequest就是我们自己重写的请求类,他们SDK中的请求类是MixAddR
  • 11.07 20:34:20
    发表了文章 2021-11-07 20:34:20

    代码演示Mybatis-Generator扩展自定义生成

    Mybatis-Generator可自动生成模型,Dao,Mapper代码,但其自带生成的代码存在以下问题: 生成的注释不是我们想要的,我们期望的是根据数据库表,细分生成不同的注释; 分页代码生成缺失,每个公司的分页方式不同,尤其是老久项目或已发布API,不能随意移动,那么如何自适应分页代码生成; Mapper.xml没有按相关代码生成分组; 重复生成代码时,Mapper.xml并非覆盖原始代码,而是对内容进行了追加; 序列化,mybatis-generator内置了SerializablePlugin,但仅对Model,并没有对Example序列化,在一些开发中是不够的; 对服务层代码没有生
  • 11.07 20:33:34
    发表了文章 2021-11-07 20:33:34

    内部开源:如何在企业内部发挥开源的魔力

    将开源开发的方法应用于企业内部可以提高创新能力,缩短产品上市时间,并使员工和客户感到满意。 各行各业、规模各异的公司都在实施内部开源的工作方式,以推动更高水平的开发协作和代码重用。他们的最终目标是提高创新力,缩短上市时间,培养、保留和吸引人才,当然,还有让他们的客户满意。 本文将介绍内部开源和其中的一些重点,还有内部开源可以帮助解决哪些问题。我还会讨论包括指标在内的内部开源流程中的一些组成部分。 什么是内部开源? 内部开源是把开发开源软件中学到的经验教训应用到公司内部开发软件的实践。因为它是在公司环境中完成的,所以内部开源是在公司内部网络中发生的。 在内部开源中,开发人员将会有相应的回报
  • 11.06 22:26:55
    发表了文章 2021-11-06 22:26:55

    你以为这样写Java代码很6,但我看不懂

    你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。为了提高 Java 编程的技艺,我最近在 GitHub 上学习一些高手编写的代码。下面这一行代码(出自大牛之手)据说可以征服你的朋友,让他们觉得你写的代码很 6,来欣赏一下吧。 IntStream.range(1, 5).boxed().map(i -> { System.out.print("Happy Birthday "); if (i == 3) return "dear NAME"; else return "to You"; }).forEach(System.out::println); 复制代码 我虽然拥有
  • 11.06 22:25:40
    发表了文章 2021-11-06 22:25:40

    编写Spring MVC控制器的14个技巧

    通常,在Spring MVC中,我们编写一个控制器类来处理来自客户端的请求。然后,控制器调用业务类来处理与业务相关的任务,然后将客户端重定向到逻辑视图名称,该名称由Spring的调度程序Servlet解析,以呈现结果或输出。 这样就完成了典型的请求-响应周期的往返。 今天整理了一下编写Spring MVC控制器的14个技巧,你今天get到了吗?(≧▽≦)/ 1.使用@Controller构造型 这是创建可以处理一个或多个请求的控制器类的最简单方法。仅通过用构造型注释一个类@Controller ,例如: import org.springframework.stereotype.Con
  • 11.06 22:23:18
    发表了文章 2021-11-06 22:23:18

    Java 8 Optional 良心指南,建议收藏

    想学习,永远都不晚,尤其是针对 Java 8 里面的好东西,Optional 就是其中之一,该类提供了一种用于表示可选值而非空引用的类级别解决方案。作为一名 Java 程序员,我真的是烦透了 NullPointerException(NPE),尽管和它熟得就像一位老朋友,知道它也是迫不得已——程序正在使用一个对象却发现这个对象的值为 null,于是 Java 虚拟机就怒发冲冠地把它抛了出来当做替罪羊。 当然了,我们程序员是富有责任心的,不会坐视不管,于是就有了大量的 null 值检查。尽管有时候这种检查完全没有必要,但我们已经习惯了例行公事。终于,Java 8 看不下去了,就引入了 Opti
  • 11.06 22:17:06
    发表了文章 2021-11-06 22:17:06

    Linux之sudo及其配置文件/etc/sudoers

    一、sudo介绍 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。 它的特性主要有这样几点: § sudo能够限制用户只在某台主机上运行某些命令。 § sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。 § sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为
  • 11.06 22:16:27
    发表了文章 2021-11-06 22:16:27

    前端高级进阶:前端部署的发展历程

    前端高级进阶:javascript 代码是如何被压缩 前端高级进阶:如何更好地优化打包资源 前端高级进阶:网站的缓存控制策略最佳实践及注意事项 前端高级进阶:在生产环境中使你的 npm i 速度提升 50% 前端高级进阶:使用 docker 高效部署你的前端应用 前端高级进阶:CICD 下的前端多特性分支环境的部署 前端高级进阶:前端部署的发展历程 更多文章: 前端工程化系列 我在 github 上新建了一个仓库 每日一题,每天一道面试题,欢迎交流。 前端面试题小记 前端大厂面经大全集 计算机基础面试题小计 前端一说起刀耕火种,那肯定紧随着前端工程化这一话题。随着 react/vue/ang
  • 11.06 21:59:31
    发表了文章 2021-11-06 21:59:31

    Nodejs 进阶:解答 Cluster 模块的几个疑问

    之前使用 PM2 管理进程还是挺多的,它是怎么实现的呢?在 PM2 的配置文件中可以设置 exec_model:'cluster' 和 instances 两个属性来设置开启多个进程,PM2 其实主要也是利用 Nodejs Cluster 这个模块来实现了,还有 Egg.js 中的 egg-cluster 模块在启动 Worker 进程时也是使用的 Nodejs Cluster 模块。下面来了解下 Nodejs Cluster 这个模块做了什么? 下面参考了 Nodejs 官网提供的一个 Cluster 代码示例,命名为 app.js 下文会用到这个 Demo。 // app.js con
  • 11.06 21:58:43
    发表了文章 2021-11-06 21:58:43

    GaussDB在IoT大数据场景的创新实践

    近日,在深圳举办的ArchSummit全球架构师峰会上,华为GaussDB生态与标准CTO王伟民发表了“IoT大数据场景下华为GaussDB的数据处理实践”主题演讲,分享了大数据场景下华为GaussDB的数据处理实践。 在数据爆炸式增长的时代,企业在进行海量数据分析与处理时面临四大挑战: l 极致的弹性扩缩容能力,满足海量数据处理需求 l 系统具备极高的可用性,满足7 * 24 * 365不间断持续运营诉求 l 具备实时性分析能力,对服务体验、精准的个性化服务要求不断提高 l 基础平台必须对应用开发友好,易管理易运维,满足业务创新加速,且在运维运营、变更等方面具有可视化、智能
  • 11.06 21:57:22
    发表了文章 2021-11-06 21:57:22

    再谈PostgreSQL的膨胀和vacuum机制及最佳实践

    作者介绍 朱贤文,成都文武信息技术有限公司创始人,PostgreSQL中国用户会核心组成员,熟悉数据库,存储和集群技术; 成都文武信息技术有限公司是PostgreSQL和GreenPlum数据库服务的专业厂商,主要产品是ECOX集群管理系统和Hunghu Cloud,专门运行数据库的私有云系统,带高端存储功能。公司总部位于天府软件园。公司网站:w3.ww-it.cn 写本文的原因 这两天有两篇专门介绍PostgreSQL的vacuum机制的技术文章,得到了比较热烈和正面的反馈,让用户可以比较清楚地理解和使用这个特性。 我个人觉得有点小遗憾:这两篇文章没有跳出技术的角度,分析为什么会有这
  • 11.06 21:56:39
    发表了文章 2021-11-06 21:56:39

    三种不同类型的ssh隧道

    想通过ssh隧道连接远端机器的VNC服务,对ssh -L命令不太熟悉,man ssh后发现3组与隧道(turnnel)相关的参数:ssh -D,ssh -L,ssh -R,一下子就搞糊涂了,所有下决心仔细研究一番。 何谓SSH隧道 隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术。这里我们研究ssh隧道,所以所有的网络通讯都是加密的。又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口端口的数据包,都会被加密并透明地传输到远端系统。 SSH隧道的类型 ssh隧道有3种类型: 动态端口转发(Socks 代理) 本地端口转发 远端端口转发 动态端口转发
  • 11.06 21:53:24
    发表了文章 2021-11-06 21:53:24

    华为高斯数据库的性能分析

    数据处理大致可以分成两大类:联机事务处理OLTP(On-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。 OLTP是传统的关系型数据库的主要应用场景,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用场景,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 OLTP 系统强调数据库内存效率,强调内存各种指标的命中率,强调绑定变量,强调并发操作; OLAP 系统则强调数据分析,强调SQL执行时长,强调磁盘I/O,强调分区等。
  • 发表了文章 2025-05-24

    深入浅出React中的refs

  • 发表了文章 2025-05-24

    日志与追踪的完美融合:OpenTelemetry MDC 实践指南

  • 发表了文章 2025-05-23

    使用 Uber automaxprocs 正确设置 Go 程序线程数

  • 发表了文章 2025-05-22

    【微前端】singleSpa&importHTMLEntry(流程图)源码解析

  • 发表了文章 2025-05-22

    一行代码搞定禁用 web 开发者工具

  • 发表了文章 2025-05-20

    TP6操作pgSQL13报错解决方案

  • 发表了文章 2025-05-20

    Go 1.24 相比 Go 1.23 有哪些值得注意的改动?

  • 发表了文章 2025-05-20

    一文搞懂 GPU 共享方案: NVIDIA Time Slicing

  • 发表了文章 2025-05-20

    借助大模型提升甲方安全黑白灰运营效率实践

  • 发表了文章 2025-05-20

    封装 uniapp 请求库的最佳实践

  • 发表了文章 2025-05-18

    Vue 2 与 Vue 3 的区别:深度对比与迁移指南

  • 发表了文章 2025-05-18

    three.js简单实现一个3D三角函数学习理解

  • 发表了文章 2025-05-18

    如何提高爬虫的抓取效率

  • 发表了文章 2025-05-18

    CentOS系统安装phpStudy的详细步骤和注意事项

  • 发表了文章 2025-05-18

    mysql数据引擎有哪些

  • 发表了文章 2025-05-17

    C语言与操作系统交互探秘

  • 发表了文章 2025-05-17

    Nuxt 3环境变量读取问题解决方案

  • 发表了文章 2025-05-17

    从多维度解构 Lead Time:定义、应用与优化策略

  • 发表了文章 2025-05-17

    mysql数据备份方式,如何恢复?你们的备份策略是什么?

  • 发表了文章 2025-05-17

    Vue与TypeScript:如何实现更强大的前端开发

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息