学习笔记

GitHub 发布了官方 App,还打算冰封你的代码一千年

11 月 13 日,GitHub Universe 2019 开发者大会上,公布了大量新功能,包括发布 GitHub 移动版、GitHub Actions 和 Packages 正式版上市、重新设计了通知体验,以及宣布建设一个数据仓库存储所有公共仓库一千年... GitHub App 官方 App 终于来了,在手机上就可以 Review 代码、处理 Issues、合并 PR 等常用操作。让你无论身处何处,都可以灵活地推进工作并与团队保持联系(加班)。 目前已经发布 iOS beta 版并上线 TestFlight,连黑暗模式都安排上了。 ...

如何提高web应用的吞吐量

这篇博文所列举的优化手段是针对比较传统项目,但是想提高系统的吞吐量现在时髦的技术还是那些前后端未分离, 使用nginx当成静态资源服务器去代理我们的静态资源 是谁限制了Throughput?# 当我们对一个传统的项目进行压力测试时,很容器就发现,系统的Throughput被数据库(mysql)限制的死死的,尽管代码看起来确实没毛病,逻辑也没有错误,但是过多的请求都被打向了数据库,数据库自个开启大量的IO操作,这样大的负载甚至会使Linux系统的整体负载骤然飙升,但是反观我们的系统的吞吐量,呵呵... ...

VueRouter爬坑第一篇-简单实践

VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建。 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境。 VueRouter系列文章链接   《VueRouter爬坑第一篇》-简单实践   《VueRouter爬坑第二篇》-动态路由   《VueRouter爬坑第三篇》-嵌套路由 阅读目录 一.安装VueRouter   1.npm 安装VueRouter   2.如何使用VueRouter ...

[ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法

 如果你想让你开发的PyQt5工具展示的数据显得整齐、美观、好看,显得符合你的气质,可以考虑使用QTableWidget控件。之前一直使用的是textBrowser文本框控件,数据展示还是不太美观。其中QTableWidget是PyQt5程序中常用的显示数据表格的控件,显示的基本效果如下,有点素。。...

K8S入门系列之集群二进制部署--> master篇(二)

目录 组件版本和配置策略 组件版本 主要配置策略 1. 系统初始化 2. 创建CA根证书和密钥 3. 部署etcd集群 4. 部署flannel网络 5. 部署kubectl命令行工具 6. 部署master节点 6.01 部署高可用组件 6.02 部署 kube-apiserver 组件 6.03 部署高可用kube-controller-manager 集群 6.04 部署高可用 kube-scheduler 集群 master集群已部署完毕! 回到顶部 组件版本和配置策略 组件版本 ...

详解Spring Security的formLogin登录认证模式

 一、formLogin的应用场景在本专栏之前的文章中,已经给大家介绍过Spring Security的HttpBasic模式,该模式比较简单,只是进行了通过携带Http的Header进行简单的登录验证,而且没有定制的登录页面,所以使用场景比较窄。...

集合系列】- 初探java集合框架图

一、集合类简介 Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)“丢进”该容器中。从Java 5 增加了泛型以后,Java集合可以记住容器中对象的数据类型,使得编码更加简洁、健壮。 Java集合大致可以分为两大体系,一个是Collection,另一个是Map Collection :主要由List、Set、Queue接口组成,List代表有序、重复的集合;其中Set代表无序、不可重复的集合;Java 5 又增加了Queue体系集合,代表一种队列集合实现。 Map:则代表具有映射关系的键值对集合。 ...

堆和栈的区别

 堆与栈关于堆和栈的问题,对于熟悉C++的同学来说可能理解的比较清楚,但是由于Java的一切对象都是在堆上,因此有时候可能反而会比较迷惑,比如:...

Springboot中的缓存Cache和CacheManager原理介绍

程序运行中,在内存保持一定时间不变的数据就是缓存。简单到写一个Map,里面放着一些key,value数据,就已经是个缓存了 所以缓存并不是什么高大上的技术,只是个概念,把要多次使用的东西存在一个变量里,时不时取出来使用,就达到了缓存的目的,缓存就是存放数据的容器 那为什么要用缓存呢,是因为要多次使用。一个程序总有一些数据时可预见被多次使用(预见的准不准就是常说的命中率) 比如一个复杂的计算结果,一次数据库访问取得的数据等耗时耗资源的数据就能放入缓存,目的就是为了节省开销,我们要用有限的资源(CPU,内存,带宽等等)尽量做最多的事情。 ...

构建大型 Vue.js 项目的10条建议

 下面是我在开发大型 Vue 项目时的最佳实践。这些技巧将帮助你开发更高效、更易于维护和共享的代码。今年做自由职业的时候,我有机会开发了一些大型 Vue 应用程序。我所说的这些项目,Vuex store 超过十个,包含大量的组件(有时候几百个)和视图页面。对我来说这是个很有益的经验,因为我发现了很多有意思的模式,可以让代码拥有更好的伸缩性。我还必须修正一些导致著名的意大利面条式代码困境的错误实践。...

剖析nsq消息队列(三) 消息传输的可靠性和持久化[二]diskqueue

在上一篇帖子剖析nsq消息队列(一) 简介及去中心化实现原理中,我介绍了nsq的两种使用方式,一种是直接连接,还有一种是通过nslookup来实现去中心化的方式使用,并大概说了一下实现原理,没有什么难理解的东西,这篇帖子我把nsq实现去中心化的源码和其中的业物逻辑展示给大家看一下。 nsqd和nsqlookupd的通信实现 上一篇中在启动nsqd时我用了以下命令,我指定了一个参数 --lookupd-tcp-address ./nsqd -tcp-address ":8000" -http-address ":8001" --lookupd-tcp-address=127.0.0.1:8200 --lookupd-tcp-address=127.0.0.1:7200 -data-path=./a ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程