程序员眼中的世界

Redis 在 Web 项目中的应用与实践

Redis作为一个开源的(BSD)基于内存的高性能存储系统,已经被各大互联网公司广泛使用,并且有着诸多的应用场景。本篇文章将基...

JavaScript 和 CSS 常用工具方法封装

因为工作中经常用到这些方法,所有便把这些方法进行了总结。 JavaScript 1. type 类型判断 isString (o) { //是否字符串 ...

十大经典排序算法动画解析和 Java 代码实现

排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中进行...

Java 线程同步原理探析

现如今,服务器性能日益增长,并发(concurrency)编程已经“深入人心”,但由于冯诺依式计算机“指令存储,顺序执行”的特性,使...

让 Elasticsearch 飞起来!——性能优化实践干货

0、题记 Elasticsearch性能优化的最终目的:用户体验爽。 关于爽的定义——著名产品人梁宁曾经说过“人在满足时候的状态叫做愉悦...

老板让我写个 BUG!

前言 标题没有看错,真的是让我写个 bug! 刚接到这个需求时我内心没有丝毫波澜,甚至还有点激动。这可是我特长啊;终于可以...

如何增强 Linux 内核中的访问控制安全

背景 前段时间,我们的项目组在帮客户解决一些操作系统安全领域的问题,涉及到windows,Linux,macOS三大操作系统平台。无论...

如何优雅地处理前端异常?

前端一直是距离用户最近的一层,随着产品的日益完善,我们会更加注重用户体验,而前端异常却如鲠在喉,甚是烦人。 一、为什么...

深入理解 iOS App 的启动过程

前言 启动时间是衡量应用品质的重要指标。 本文首先会从原理上出发,讲解iOS系统是如何启动App的,然后从main函数之前和main...

软件工程师生存指南:面试准备、工作经验和实用工具

编者按:软件工程师是令人羡慕的职业。但是如何才能拿到这份工作?又如何才能做好这份工作呢?拥有相关经验的 Valeri Alexiev...

C++语言的单元测试与代码覆盖率

对代码进行单元测试是几乎每个软件工程师都要完成的工作。本文以C++语言为基础,讲解如何进行单元测试并生成测试报告。 前言 ...

漫画赏析:Linux 内核到底长啥样

今天,我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。 TurnOff.us 是一个极客漫画网站,作者Daniel...

用 100 行代码提升 10 倍的性能

提出问题 从一个我常用的面试题,也是真实需求开始聊起: 你需要在前端展示 5000 条甚至更多的数据,每一条数据的数据结构是...

自由职业的这两年

两年前,也就是2016年2月份,铺天盖地的沮丧,以及朝九晚五的时间制压垮了我的积极性,于是我辞职了。但是,生活在海湾地区又...

倾听程序员的心声真的很重要

说到开发产品,没有人比程序员更了解产品。程序员知道产品的优点、缺陷、用途和潜在用途。说起这些,程序员了如指掌,如数家...

平庸开发者的生存指南

撇开题目不谈,我个人认识一些非常有才华的开发人员,他们可以一帆风顺地创建极好的软件。正是这些天赋人士,使得外行人对我...

为什么我从 Google 辞职而为自己工作

在过去四年时间里,我在Google担任软件开发工程师。2月1日,我辞职了。因为他们拒绝给我买圣诞礼物。 好吧,其实里面还有更深...

我是一名朝九晚五的程序员(你也可以!)

我一直在思考Safia Abdalla发的一个蛮特别的推特: 一个也许不怎么主流的见解(有点讽刺产自于我): 你没有必要写博客文章,...

成为伟大程序员的 10 个要点

最近我在接受采访时被问到我关于成为一名伟大程序员的见解。这是一个有趣的问题,我认为我们都可以是伟大的程序员,无论我们...

如何处理前任程序员留下的代码

作为软件工程师不可避免会遇到的一个场景是:我们在改变或添加一个功能到不是我们创建的、我们不熟悉的、与我们负责的系统部...