-
谁说 Vim 不好用?送你一个五彩斑斓的编辑器!
所属栏目:[优化] 日期:2019-09-13 热度:149
相信大家在使用各种各样强大的 IDE 写代码时都会注意到,代码中各种类型的关键字会用独特的颜色标记出来,然后形成一套语法高亮规则。这样不仅美观,而且方便代码的阅读。而在上古神器 Vim 中,我们通常看到的是黑底白字,没有任何其它颜色。难道我们的 Vi[详细]
-
技术面试时该反问什么问题?灵魂50问,GitHub日入2500星
所属栏目:[优化] 日期:2019-09-13 热度:184
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。 看了那么多技术类岗位面试攻略,好不容易到了最后一步。部门leader/HR反问一句: 你还有什么要问我的? 没有问题,略显尴尬,显得你对这份工作不上心。如何问出水平,问出更多信息,加[详细]
-
神话还是现实?Docker 和 Kubernetes 架构
所属栏目:[优化] 日期:2019-09-13 热度:97
在 Docker 和 Kubernetes 时代,软件开发的世界发生了怎样的变化?有可能使用这些技术一劳永逸地构建一个放之四海而皆准的架构吗?当所有东西都打包在容器中时,有可能统一开发和集成的过程吗?这些决策有什么要求?它们会带来什么限制?它们会让开发人员的生活[详细]
-
K8s集群架构与高可用解析
所属栏目:[优化] 日期:2019-09-10 热度:88
基本工作过程 Kubernetes 的核心工作过程: 资源对象:Node、Pod、Service、Replication Controller 等都可以看作一种资源对象 操作:通过使用 kubectl 工具,执行增删改查 存储:对象的目标状态(预设状态),保存在 etcd 中持久化储存; 自动控制:跟踪、对[详细]
-
同样是高并发,QQ/微博/12306的架构难度一样吗?
所属栏目:[优化] 日期:2019-09-10 热度:163
开篇同一个用户并发扣款时,有一定概率出现数据不一致,可以使用CAS乐观锁的方式,在不降低吞吐量,保证数据的一致性: UPDATEt_yueSETmoney=$new_money WHEREuid=$uidANDmoney=$old_money; 更详细的描述,详见《并发扣款,如何保证数据的一致性?》。 不能[详细]
-
浏览 GitHub 太卡了?教你两招
所属栏目:[优化] 日期:2019-09-10 热度:66
老实说,GitHub 在国内的使用体验并不算太好,这其中很大的原因就是网络了。 GitHub 访问起来比较卡,这个看起来貌似无解。国内的 gitee 网速倒是可以,但是无法代替 GitHub,个人感觉 gitee 上还是开源项目多一些,工具类库要少一些。 在网络比较卡的情况[详细]
-
深入理解Java的Volatile关键字
所属栏目:[优化] 日期:2019-09-08 热度:119
前言 在Java并发编程中,volatile关键字有着至关重要的作用,在面试中也常常会是必备的一个问题。本文将会介绍volatile关键字的作用以及其实现原理。 volatile作用 volatile在并发编程中扮演着重要的角色,volatile是轻量级的synchronized,volatile关键字[详细]
-
Puppet 搭建与部署,看这一篇就够了
所属栏目:[优化] 日期:2019-09-08 热度:83
Puppet工作原理 让管理员只集中于要管理的目标,而忽视实现的细节。puppet既可以在单机上使用,也可以以C/S结构使用。在大规模使用puppet的情况下,通常使用C/S结构,在这种结构中puppet客户端只运行puppetclient,Puppet服务端只运行puppetmaster。具体的[详细]
-
并发扣款一致性优化,CAS下ABA问题,这个话题还没聊完!!!
所属栏目:[优化] 日期:2019-09-07 热度:129
上一篇答星球水友提问,《并发扣款,如何保证数据的一致性?》中提到:用CAS乐观锁,可以在尽量不影响吞吐量的情况下,保证数据的一致性。 大家有非常多的留言,大概有这么几类: 是否存在ABA问题? 为什么不能用: UPDATEt_yueSETmoneymoney=money-$diffAND[详细]
-
让线程按顺序执行8种方法
所属栏目:[优化] 日期:2019-09-07 热度:61
一.前言 本文使用了8种方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止为了知道如何让线程按顺序运行,更是让读者对多线程的使用有更深刻的了解。使用的方法如下: [1] 使用线程的join方法[ 2] 使用主线程的join方法 [3] 使[详细]
-
分布式ID生成--雪花算法
所属栏目:[优化] 日期:2019-09-07 热度:173
唯一ID可以标识数据的唯一性,在分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种 依赖数据库,使用如MySQL自增列或Oracle序列等。 UUID随机数 snowflake雪花算法(本文将要讨论) 一、数据库和UUID方案的不足之处 采用数据库自增序列: 读写[详细]
-
这篇Java的NIO编程,保证你能看懂
所属栏目:[优化] 日期:2019-09-07 热度:60
NIO编程一直是Java知识体系中的一个重点。前几年的时间面试的门槛是了解NIO,现在就不一样了,最起码也要精通NIO,因此学习javaNIO编程是非常有必要的。这篇文章就开始对NIO进行一个认识。本文参考了慕课网,特在此说明。 一、认识NIO 1、什么是BIO? 想要学习[详细]
-
简单介绍几种Java后台开发常用框架组合
所属栏目:[优化] 日期:2019-09-07 热度:144
01 前言 Java框架一直以来都是面试必备的知识点,而掌握Java框架,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能对当前正在开发中的系统有整体的认知,从而更好的熟悉和学习技术,这篇文章胖达就打算给大家介绍几款现阶段流行的框架组合[详细]
-
Docker容器的导入导出操作整理
所属栏目:[优化] 日期:2019-09-07 热度:171
背景 Docker的流行与它对容器的易分享和易移植密不可分,用户不仅可以把容器提交到公共服务器上,还可以把容器导出到本地文件系统中。同样,我们也可以把导出的容器重新导入到Docker运行环境中。 方法1:容器的导入与导出(export和import) 1、查看需要导出[详细]
-
Linux有什么好用系统克隆工具?这里介绍6个
所属栏目:[优化] 日期:2019-09-07 热度:172
1. 前言 磁盘克隆是将一个硬盘(或分区)的内容复制到另一个磁盘或映像文件的过程。我使用rsnapshot工具定期备份,但我也每月克隆一次或两次硬盘。此工具允许我快速恢复操作系统和安装的软件。 Linux附带了各种用于执行磁盘克隆的实用程序。在这篇文章中,我[详细]
-
16岁的我是如何成为全栈开发人员的?
所属栏目:[优化] 日期:2019-09-07 热度:60
我与计算机技术的缘分要从我七岁的时候说起,当时的我拥有了人生第一台计算机,这为我打开了一个新世界,其内置的 Win 7 系统对当时的我来说是世界上最精彩、宝贵的东西。14 岁的时候,我获得了第一份工作,16 岁,我有了一个新梦想移动应用开发梦想。 先[详细]
-
Netflix应用架构之用于个性化和推荐的系统架构
所属栏目:[优化] 日期:2019-09-07 热度:55
本文我们将探索如何创建一个能够交付并支持快速创新的软件架构。提出一种能够处理大量现有数据、响应用户交互并易于试验新的推荐方法的软件体系结构并非易事。在这篇文章中,我们将描述我们如何解决Netflix面临的一些挑战。 首先,我们在下图中展示了推荐[详细]
-
编程语言Nim 中文官网现已上线
所属栏目:[优化] 日期:2019-09-07 热度:144
近期 Nim 中文官网现已上线!大家可以通过https://nim-lang-cn.org来访问。 Nim 是一个新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。Nim 从 Lisp 继承来的一个特殊特性--抽象语法树(AST)作为语言规范的[详细]
-
使用 Python 函数进行模块化
所属栏目:[优化] 日期:2019-09-05 热度:128
你是否对函数、类、方法、库和模块等花哨的编程术语感到困惑?你是否在与变量作用域斗争?无论你是自学成才的还是经过正式培训的程序员,代码的模块化都会令人困惑。但是类和库鼓励模块化代码,因为模块化代码意味着只需构建一个多用途代码块集合,就可以在[详细]
-
Redis基本类型及其数据结构
所属栏目:[优化] 日期:2019-09-05 热度:92
以前在使用Redis的时候,只是简单地使用它提供的基本数据类型和接口,并没有深入研究它底层的数据结构。最近打算重新学习梳理一下Redis方面的知识,所以打算从介绍Redis的基本类型及其数据结构入手。 redisObject Redis的key是顶层模型,它的value是扁平化[详细]
-
MySQL 进行 Docker 容器化之体验与感悟
所属栏目:[优化] 日期:2019-09-05 热度:101
原则 Docker 的使用原则是所有容器化的应用程序都应该是无状态的 ,即容器内部只跑业务逻辑,容器应用的所有配置文件、日志文件和持久化数据 都应该挂载到宿主机文件系统,不应该存储在容器内部,以免容器被误删或自身出现问题导致数据丢失。 MySQL 容器化[详细]
-
用Cython加速Python代码,速度溜到飞起
所属栏目:[优化] 日期:2019-09-05 热度:176
介绍 如果你曾用Python编写代码,那么你可能花了更多的时间等待某些代码块的执行,而不是你想要的。虽然有一些方法可以使您的代码更有效,但它很可能仍然比C代码慢。这主要归结为Python是一种动态编程语言,并将许多东西移动到C语言编译期间处理的运行时。[详细]
-
详解JVM内存布局及GC原理,值得收藏
所属栏目:[优化] 日期:2019-09-04 热度:136
java发展历史上出现过很多垃圾回收器,各有各的适应场景,不仅仅是开发,作为运维也需要对这方面有一定的掌握,今天简单介绍一下java的内存布局以及各种垃圾回收器的原理。 JVM内存布局 JVM从概念上大致分为6个(逻辑)区域: 这6块区域按是否被线程共享,可[详细]
-
Docker命令行入门大全:这18条,你不得不知
所属栏目:[优化] 日期:2019-09-04 热度:159
Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。 前 言 Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器是动态的Docker镜像。要使用Docker命令[详细]
-
Linux运维会被淘汰吗?
所属栏目:[优化] 日期:2019-09-04 热度:154
1. 前言 本文主要探讨Linux运维技术人员会被淘汰吗? 社会上最近会出现这样的一些想法和声音。源于现在流行自动化运维技术,比如以下的3种自动化运维工具。 2. 自动化运维工具取代一部分人力 2.1 自动化运维之Devops Devops的口号喊了很多年,但一直到今年[详细]