-
透过现象看本质: 常见的前端架构风格和案例
所属栏目:[优化] 日期:2019-10-14 热度:118
所谓软件架构风格,是指描述某个特定应用领域中系统组织方式的惯用模式。架构风格定义一个词汇表和一组约束,词汇表中包含一些组件及连接器,约束则指出系统如何将构建和连接器组合起来。软件架构风格反映了领域中众多系统所共有的结构和语义特性,并指导[详细]
-
MySQL数据误删除怎么办?MySQL闪回工具来帮你
所属栏目:[优化] 日期:2019-10-14 热度:68
概述 Binlog2sql是一个Python开发开源的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,去除主键的INSERT SQL,是DBA和运维人员数据恢复好帮手。 一、安装配置 1.1 用途 数据快速回滚(闪回) 主从切换后新master丢数[详细]
-
Java的神秘世界:为何说ClassLoader 是 Java最神秘的技术之一
所属栏目:[优化] 日期:2019-10-14 热度:188
ClassLoader 是 Java 届最为神秘的技术之一,无数人被它伤透了脑筋,摸不清门道究竟在哪里。网上的文章也是一篇又一篇,经过本人的亲自鉴定,绝大部分内容都是在误导别人。本文我带读者彻底吃透 ClassLoader,以后其它的相关文章你们可以不必再细看了。 Cl[详细]
-
将Java进程转移到“解剖台”之前,法医都干了什么?
所属栏目:[优化] 日期:2019-10-14 热度:66
作为法医,不怕高度腐烂的尸体,也不怕错综复杂的案情。最怕的,是没留下任何东西。空无一物,任何高超的技术,丰富的经验,都无从下手。 生产环境错综复杂,几分钟前活蹦乱跳的进程,此刻就奄奄一息的躺在那里,苟延残喘。作为第一时间发现的目击者,一定[详细]
-
Web架构之路:MongoDB集群及高可用实践
所属栏目:[优化] 日期:2019-10-14 热度:85
MongoDB集群有副本集及主从复制两种模式,不过主从模式在MongoDB 3.6已经彻底废弃,今天主要探讨副本集的搭建和使用,以及分片。 副本集介绍 副本集(Replica Set)即副本的集合,在MongoDB中通过先定义一个副本集合,然后将多个节点(副本)加入到这个集合中[详细]
-
使用 Golang 构建整洁架构
所属栏目:[优化] 日期:2019-10-13 热度:140
什么是整洁架构? 在《Clean Architecture: A Craftsmans Guide to Software Structure and Design》一书中,著名作家 Robert Uncle Bob Martin 提出了一种具有一些重要特性的体系结构,如框架、数据库和接口的可测试性和独立性。 整洁架构的约束条件是: 独[详细]
-
游戏开发中最常见的10种编程语言
所属栏目:[优化] 日期:2019-10-13 热度:87
游戏开发是非常有经验和熟练的程序员的工作。 它可能花费数亿美元。 这是一项非常有创意的工作,也需要技术水平。 他们需要具有特定需求的编程语言。 以下是用于 游戏 开发的十大编程语言的列表。 1、C# C#如今在许多游戏引擎中广泛使用,并且是游戏开发所[详细]
-
过去50年间,十大热门语言及发明者大盘点
所属栏目:[优化] 日期:2019-10-13 热度:101
软件领域有许多编程语言,每年还涌现出越来越的新语言。新发布的语言有Scala、Kotlin、Go和Closure,但历史证明,只有少数语言能存活下来,其中一些语言对软件领域的发展做出了巨大贡献。 编程语言是软件领域的重要一环,虽然大家对热门的编程语言了解较多[详细]
-
图解分布式一致性算法
所属栏目:[优化] 日期:2019-10-13 热度:127
今天的文章,咱们会通过图的方式,来深入学习和理解分布式一致性的实现原理。 开始的时候,咱们先来灵魂一问:什么是分布式一致性? 你的应用是单节点吗? 你的系统用户多吗、支持扩容吗? 你的系统扩容后数据能保持一致吗? 你的系统是否使用Raft、Paxos? 是[详细]
-
久等了,提高开发效率的 Vue 技巧来了
所属栏目:[优化] 日期:2019-10-13 热度:61
最近俩月正好用 vue 做了一个大数据的项目,积累了很多心得。今天终于有机会分享出来了。 组件(component)的使用 vue 提供的模块化无疑是提高开发效率的神器,而且对于后期代码优化和维护也提供的极大地便利。 组件使用简介 vue 提供了组件功能,组件又可[详细]
-
保护Linux服务器的7个步骤
所属栏目:[优化] 日期:2019-10-13 热度:124
本文将向您介绍基本的Linux服务器安全保护措施,侧重于Debian/Ubuntu,但是您可以将本文介绍的所有内容应用于其他Linux发行版。 1. 更新你的服务器 要保护服务器,您应该做的第一件事是更新本地存储库,并通过应用新的补丁来升级操作系统和已安装的应用程[详细]
-
微服务架构:利用事件驱动实现最终一致性
所属栏目:[优化] 日期:2019-10-13 热度:121
事务一致性 首先,我们来回顾一下ACID原则: Atomicity:原子性,改变数据状态要么是一起完成,要么一起失败 Consistency:一致性,数据的状态是完整一致的 Isolation:隔离线,即使有并发事务,互相之间也不影响 Durability:持久性, 一旦事务提交,不可[详细]
-
一文了解微服务的流程和组织
所属栏目:[优化] 日期:2019-10-13 热度:94
对于大型和复杂的应用程序,微服务架构往往是不错的选择。然而,除了拥有正确的架构之外,成功的软件开发还需要在组织、开发和交付流程方面做一些工作。 图1展示了架构、流程和组织之间的关系: 图1 大型复杂应用程序快速、频繁和可靠地交付软件需要具备几[详细]
-
3分钟让你明白:HashMap之红黑树树化过程
所属栏目:[优化] 日期:2019-10-13 热度:141
01 概述 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文主要分析一下HashMap中红黑树树化的过程。 02[详细]
-
揭开 JavaScript 引擎的面纱
所属栏目:[优化] 日期:2019-10-13 热度:159
前言 最初,JavaScript 只能在 Web 浏览器中运行,但是随着 Node 的出现,现在 JavaScript 也可以在服务端运行。虽然我们可能知道应该在何时何地去使用它, 但是我们真的了解这些脚本执行的背后发生了什么吗? 如果您觉得自己对 JavaScript 引擎有了一些了[详细]
-
优化Python代码的4种方法
所属栏目:[优化] 日期:2019-10-12 热度:109
介绍 我是一个程序员。从大学时代开始我就一直在进行编程,而我仍然对使用简单的Python代码所开辟的道路之多感到惊讶。 但是我并不总是那么高效。我相信这是大多数程序员(尤其是刚起步的程序员)共有的一个特征,编写代码的快感始终优先于效率和简洁性。虽[详细]
-
我所理解的架构,看这篇就对了
所属栏目:[优化] 日期:2019-10-12 热度:151
什么是架构? 个人所理解的架构的含义应该是:定义一个完整系统中所需的组件以及实现组件间的交互策略。那么很明显,架构设计应该是考虑如何定义和划分好每个组件,然后考虑它们是如何基于不同的交互策略来实现我们业务需要的场景。 什么是组件? 个人认为,[详细]
-
TIOBE 10月排行:排名前 8 的语言稳定如昨
所属栏目:[优化] 日期:2019-10-11 热度:94
TIOBE 编程语言排行榜 10 月份的榜单已公布,这期的标题比较有趣 Top 8 of the TIOBE index quite stable for the last 15 years,意思就是排名前 8 的编程语言在这 15 年里一直都十分稳定。 有多稳定呢?根据 TIOBE 统计的数据,虽然每年都会诞生新的编程[详细]
-
9月份Github上热门的Python开源项目
所属栏目:[优化] 日期:2019-10-11 热度:200
9 月份 GitHub 上最热门的Python开源项目排行已经出炉啦,下面就是本月上榜的12个开源项目,一起来看看吧: 1. mlcourse.ai https://github.com/Yorko/mlcourse.ai Star 6008 mlcourse.ai是OpenDataScience提供的开源机器学习课程。你还可以参加课程中举行[详细]
-
从写下第1行代码到拿下谷歌百万年薪 ,我是如何在8个月内做到的?
所属栏目:[优化] 日期:2019-10-11 热度:148
本文作者非计算机科班出身,在写下第一行 Javascript 代码后不到一年,他先后收获了来自谷歌、Lyft、Yelp、云计算独角兽 Rubrik、IBM 人工智能和 JP Morgan 的录用通知书。他的求职经历可能会对你找工作有所帮助。 我希望我的故事能够激励当今的软件工程求[详细]
-
Kafka快速入门秘籍:背景介绍,应用场景分析、核心架构分析
所属栏目:[优化] 日期:2019-10-09 热度:103
一、背景介绍 引言:其实这段背景,我们之前介绍RabbitMQ的时候,已经说过了,我们这里讲kakfa的时候,再把这一段给拿出来,再说明下。在讲实战前,我们还是有必要讲解下理论的,理论为辅,实战为主,在实战的基础上,再深入理解理论,底层原理,底层源码[详细]
-
如何通过wrap malloc定位C/C++程序的内存泄漏
所属栏目:[优化] 日期:2019-09-30 热度:64
用C/C++开发的程序执行效率很高,但却经常受到内存泄漏的困扰。本文提供一种通过wrap malloc查找memory leak的思路。 什么是内存泄漏? 动态申请的内存丢失引用,造成没有办法回收它(我知道杠jing要说进程退出前系统会统一回收),这便是内存泄漏。 Java等编[详细]
-
老牌运维教你如何快速分析Linux服务器的性能问题
所属栏目:[优化] 日期:2019-09-30 热度:187
作为一名linux系统运维人员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但是由于硬件问题、软件问题、网络环境等的复杂性 和多变性,导致对系统的优化变得异常复杂,如何定位性能问题出在哪个方面,是性能优化的一大难题, 本章从系统[详细]
-
如何设计API接口,实现统一格式返回?
所属栏目:[优化] 日期:2019-09-30 热度:81
前言 在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要[详细]
-
Redis集合类型使用说明
所属栏目:[优化] 日期:2019-09-30 热度:161
今天我们了解一下Redis中的集合类型,也就是set集合。在Redis中set也是可以保存多个字符串的。那么set集合和list链表到底有什么不同呢?下面我们重点介绍一下它们之间的不同。 set中的元素是不可以重复的,而list是可以保存重复元素的。 set中的元素是无序[详细]