-
基于分布式系统的7种唯一ID实现方案,值得收藏
所属栏目:[优化] 日期:2019-09-05 热度:71
概述 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。 分布式ID的特性 唯一性:确保生成的ID是全网唯一的。 有序[详细]
-
Python开发必备:如何建立一个优秀的项目工程环境
所属栏目:[优化] 日期:2019-09-05 热度:169
在程序开发时候一套好的开发环境和工具栈,可以帮我们极大的提高开发的效率,避免把大量时间浪费在周边琐事上。本文以Python为例,教大家如何快速打造优秀的Python项目开发环境:内容涵盖了模块依赖管理、代码风格管理、调试测试管理和Git版本管理,使用gi[详细]
-
如何在 Linux 上重命名一组文件
所属栏目:[优化] 日期:2019-09-05 热度:91
几十年来,Linux 用户一直使用 mv 命令重命名文件。它很简单,并且能做到你要做的。但有时你需要重命名一大组文件。在这种情况下,rename 命令可以使这个任务更容易。它只需要一些正则表达式的技巧。 与 mv 命令不同,rename 不允许你简单地指定旧名称和新[详细]
-
一文看懂数据结构中的树 值得收藏
所属栏目:[优化] 日期:2019-09-05 热度:135
通常在开始学编程的时候,你会接触一些常用数据结构。 到最后一般会学到哈希表。对于修读计算机科学学位的朋友,你通常要上专门的数据结构课,从了解有关链表、队列和栈的各种知识。这些统称为线性数据结构,因为依逻辑次序从头排到尾。 当你开始进入下一[详细]
-
如何在磁盘上查找 MySQL 表的大小
所属栏目:[优化] 日期:2019-09-05 热度:168
我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 这个看似简单的问题实际上在 MySQL 中非常复杂。MySQL 支持许多存储引擎(其中一些根本不在磁盘上存储数据), 不同的存储数据格[详细]
-
细说Python的Lambda函数用法,建议收藏
所属栏目:[优化] 日期:2019-09-05 热度:72
在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式。 1.为什么要用lambda函数? 先举一个例子:将一个列表里的每个元素都平方。 先用def[详细]
-
当JSON解析遇上了泛型该如何处理泛型擦除问题
所属栏目:[优化] 日期:2019-09-05 热度:156
JSON是一种轻量级的数据交换格式,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言,常被用于实际项目中。Java生态圈中有很多处理JSON格式化的类库,如json-lib框架、Jackson、Google的Gson、阿里的FastJson等,通过这些类库可以使我们更加简便地处[详细]
-
深入理解Java的Volatile关键字
所属栏目:[优化] 日期:2019-09-05 热度:162
前言 在Java并发编程中,volatile关键字有着至关重要的作用,在面试中也常常会是必备的一个问题。本文将会介绍volatile关键字的作用以及其实现原理。 volatile作用 volatile在并发编程中扮演着重要的角色,volatile是轻量级的synchronized,volatile关键字[详细]
-
使用 Python 函数进行模块化
所属栏目:[优化] 日期:2019-09-03 热度:145
你是否对函数、类、方法、库和模块等花哨的编程术语感到困惑?你是否在与变量作用域斗争?无论你是自学成才的还是经过正式培训的程序员,代码的模块化都会令人困惑。但是类和库鼓励模块化代码,因为模块化代码意味着只需构建一个多用途代码块集合,就可以在[详细]
-
Redis基本类型及其数据结构
所属栏目:[优化] 日期:2019-09-03 热度:84
以前在使用Redis的时候,只是简单地使用它提供的基本数据类型和接口,并没有深入研究它底层的数据结构。最近打算重新学习梳理一下Redis方面的知识,所以打算从介绍Redis的基本类型及其数据结构入手。 redisObject Redis的key是顶层模型,它的value是扁平化[详细]
-
MySQL 进行 Docker 容器化之体验与感悟
所属栏目:[优化] 日期:2019-09-03 热度:117
原则 Docker 的使用原则是所有容器化的应用程序都应该是无状态的 ,即容器内部只跑业务逻辑,容器应用的所有配置文件、日志文件和持久化数据 都应该挂载到宿主机文件系统,不应该存储在容器内部,以免容器被误删或自身出现问题导致数据丢失。 MySQL 容器化[详细]
-
用Cython加速Python代码,速度溜到飞起
所属栏目:[优化] 日期:2019-09-03 热度:89
介绍 如果你曾用Python编写代码,那么你可能花了更多的时间等待某些代码块的执行,而不是你想要的。虽然有一些方法可以使您的代码更有效,但它很可能仍然比C代码慢。这主要归结为Python是一种动态编程语言,并将许多东西移动到C语言编译期间处理的运行时。[详细]
-
详解JVM内存布局及GC原理,值得收藏
所属栏目:[优化] 日期:2019-09-03 热度:53
java发展历史上出现过很多垃圾回收器,各有各的适应场景,不仅仅是开发,作为运维也需要对这方面有一定的掌握,今天简单介绍一下java的内存布局以及各种垃圾回收器的原理。 JVM内存布局 JVM从概念上大致分为6个(逻辑)区域: 这6块区域按是否被线程共享,可[详细]
-
Docker命令行入门大全:这18条,你不得不知
所属栏目:[优化] 日期:2019-09-03 热度:152
Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。 前 言 Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器是动态的Docker镜像。要使用Docker命令[详细]
-
只需5分钟就能Get到的神器:Python虚拟环境安装使用
所属栏目:[优化] 日期:2019-08-31 热度:109
一、虚拟环境介绍 什么是虚拟环境: 它是一个虚拟化,从电脑独立开辟出来的python环境,可以把它看作一个容器,我们可以在这个容器(环境)中安装我们项目中所依赖的相关模块和包。 为什么要用到虚拟环境: 在实际项目开发中,我们通常会根据自己的需求去下[详细]
-
应用架构的核心使命是什么?阿里高级技术专家这样说
所属栏目:[优化] 日期:2019-08-31 热度:163
什么是架构?关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。如果,硬是要给一个概述,阿里巴巴高级技术专家张建飞认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。今天,张建飞来谈谈应用架构的核心使命是什么,是否与你[详细]
-
Python趣味实战项目:抢红包提醒助手
所属栏目:[优化] 日期:2019-08-31 热度:150
最近后台有朋友问我学Python去哪刷题?我觉得看完Python的基础知识后,如果不着急找工作,在力扣上适当的刷刷题巩固下基础知识后,可以慢慢学着写一些有趣的小项目,对你学习Python会更有帮助些。 对于大家困惑的怎么从Python理论跨越到实践的问题,可以看[详细]
-
聊一聊Java 泛型全解
所属栏目:[优化] 日期:2019-08-31 热度:54
对于java的泛型我一直属于一知半解的,平常真心用的不多。直到阅读《Effect Java》,看到很多平常不了解的用法,才下定决心,需要系统的学习,并且记录下来。 1、泛型的概述: 1.1 泛型的由来 根据《Java编程思想》中的描述,泛型出现的动机: 有很多原因促[详细]
-
负载均衡常见算法,你知道几个?
所属栏目:[优化] 日期:2019-08-31 热度:157
冷备与热备 冷备份(cool standby),指配备平时不运行的备用设备,当运行设备发生故障时,使用备用设备替换。 热备份(hot standby),指在设备运行的同时运行备用设备,当运行设备发生故障时,能够自动替换备用设备。 fail-over与fail-back fail-over,在空[详细]
-
Python关键字yield-大牛必须掌握的高端语法
所属栏目:[优化] 日期:2019-08-31 热度:85
小白:大牛哥,刚才看到有一个函数不使用return返回结果,而是使用yield关键字返回结果,看不太明白,Python中yield关键字的用途是什么,它有什么作用呀? 大牛: 要想理解yield的作用,你必须了解什么是生成器(generators),了解生成器之前(generators)你需要[详细]
-
汇总程序员学习Python必备的42个快捷键,看完收获满满
所属栏目:[优化] 日期:2019-08-31 热度:118
很多程序员在学习python的时候,是否遇到过一些操作不方便且很繁琐小问题,特别还会影响到你工作的进度,或许这50个快捷键能够帮助到你哦! 首先先从Shift系列的按键开始: 1. Shift+Alt+Enter 切换全屏编辑 2. Shift+Alt+C 新建类 3. Shift+Alt+箭头键 选[详细]
-
Python 初学者常犯的5个错误,布尔型竟是整型的子类
所属栏目:[优化] 日期:2019-08-31 热度:139
Python 是一种高级的动态编程语言,它以易于使用著名。目前 Python 社区已经非常完善了,近几年它的发展尤为迅猛。但是易于使用同样能带来一些坏处,即易于误用。在本文中,作者列举了 5 个初学者常犯的错误,希望它们能帮助初学者写更加正确与优美的代码[详细]
-
GitHub 学生大礼包开放申请:近 50 种专业工具随你用
所属栏目:[优化] 日期:2019-08-31 热度:80
雷锋网 AI 开发者按,时隔一年,GitHub 学生开发者包又来啦! 据了解,这个项目构建的初衷是帮助学生利用真实的工具进行实验,提高学生对雇主的吸引力。通过验证的学生在学校期间可免费获得 Github Pro,Github 教育合作伙伴提供的独家优惠。 无论你是在开[详细]
-
SpringBoot 处理异常的几种常见姿势
所属栏目:[优化] 日期:2019-08-31 热度:183
一、使用 @ControllerAdvice 和 @ExceptionHandler 处理全局异常 这是目前很常用的一种方式,非常推荐。测试代码中用到了 Junit 5,如果你新建项目验证下面的代码的话,记得添加上相关依赖。 1. 新建异常信息实体类 非必要的类,主要用于包装异常信息。 sr[详细]
-
向攻击者学习?密码保护,你需要这样的反套路!
所属栏目:[优化] 日期:2019-08-31 热度:171
只要你是人类,肯定不可避免反复用过某一两个密码。实际上,大部分年龄介于 18-65 岁之间的网民都这样做过,并且越是年轻的网民,越有可能为自己的所有帐户使用同一个密码。 大家都知道这种做法不好,而且大部分网民都知道怎样创建足够强的密码:应该包含[详细]
