自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 PHP 到底是不是宇宙第一?TIOBE 排行榜来证明

做为一名程序员,都比较关注其使用编程语言的热度,一方面编程语言的热度决定了它拥有多大的市场,另一方面也关系到行业内程序员选择机会有多大。我们总听说某个编程语言排名第一,那么这些数据到底准不准确呢?PHP是不是宇宙第一?比如,我们经常会听到一句话:PHP 是宇宙第一编程语言。关于这个问题,我们很容易在 TIOBE 排行榜上得到求证,上图是2002-2019年前1...

2019-12-16 11:06:12 327 1

原创 程序员的遮羞布:这个需求技术上无法实现

老读者都知道的,我在三线小镇洛阳工作。公司很小,开发人员最多的时候也就十来个,最少的时候也就我一个光杆司令。由于掌握着公司所有的核心代码,所以我一直很嚣张。老板也拿我没办法,有时候为了追加一个功能,还得看我脸色。而我呢,经常甩给老板的一句话就是:“这个需求技术上无法实现。”有时候,老板被我逼急了,就在办公室大发雷霆,但我仍然毫不示弱:“实现不了就是实现不了,你发脾气也没用。”老板的需求也没有太...

2019-12-14 10:19:48 181 1

原创 一个Java字符串中到底有多少个字符?

依照Java的文档, Java中的字符内部是以UTF-16编码方式表示的,最小值是 \u0000 (0),最大值是\uffff(65535), 也就是一个字符以2个字节来表示,难道Java最多只能表示 65535个字符?char: The char data type is a single 16-bit Unicode character. It has a minimum value o...

2019-12-13 10:08:37 177 1

原创 阿里巴巴的独立环境是如何实现的

什么是独立环境独立环境,在环境内的http请求,rpc,mq消息等都在该环境内,不会访问到其它环境的机器。常见的独立环境如:测试环境,线上环境。为什么需要独立环境第一个阶段:你还是一个在校学生,接到一个设计作业,然后你在自己的电脑上开发,在自己的电脑上运行代码,连接的是自己电脑的数据库,等老师检查时候,你只要在自己电脑上操作一通就够了。 第二个阶段:你去帮学校社团的一个小项目...

2019-12-12 10:21:08 146 1

原创 玩转Spring——消失的事务

端午节前,组内在讨论一个问题:一个没有加@Transactional注解的方法,去调用一个加了@Transactional的方法,会不会产生事务?文字苍白,还是用代码说话。先写一个@Transactional的方法(本文的所有代码,可到Github上下载):@Transactionalpublic void deleteAllAndAddOneTransactional(Cust...

2019-12-11 10:55:46 106 1

原创 学习 HTTP 入门知识看这一篇就够了

HTTP 入门HTTP,全称“超文本传输协议(HyperText Transfer Protocol)”,是构建我们今天所熟知的万维网的基础,也是我们在访问互联网时最常见的一种协议类型。我们在打开一个网页的时候通常都会注意到网址的前面有一个统一的标识“http://”(或“https://”,本文不予讨论),这代表的就是“本次访问使用 HTTP 协议进行通信”。那么问题来了:为什么我们...

2019-12-10 10:01:52 221 1

原创 史上最全 Redis 高可用解决方案总结

消失的事务端午节前,组内在讨论一个问题:一个没有加@Transactional注解的方法,去调用一个加了@Transactional的方法,会不会产生事务?文字苍白,还是用代码说话。先写一个@Transactional的方法(本文的所有代码,可到Github上下载):@Transactionalpublic void deleteAllAndAddOneTransaction...

2019-12-09 10:50:11 98

原创 最全面的44个Java 性能调优细节

正文我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了解决这个错误,我们需要先自验证、再打包出待替换的class文件、暂停业务并重启,对于一个成熟的项目而言,最后一条其实影响是非常大的,这意味着这段时间用户无法访问应用。因此,在写代码的时候,从源头...

2019-12-06 10:49:51 97

原创 写代码注意了!打死都不要用 User 这个单词

当你意识到你在项目开始时做的轻量、简单的设想竟然完全错了时,你已经用了六个月的时间投入到这个项目上。现在你需要解决这些问题,才能让这个系统继续运行下去,你发现你用在这个项目上的精力远远超出了你的预期,如果一开始就用正确的方式来做,就不会发生这样的事。今天,我要告诉你的是一个经常犯的错误,一个会给你带来无穷无尽的问题的单词,那就是“users”。这个单词有两个最基本的错误:1、对你的...

2019-12-05 10:01:05 98 1

原创 一个牛逼的秒杀系统要考虑哪些点?

前言秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。整体思考首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问题...

2019-12-04 09:45:41 523 2

原创 19 个恶搞 Linux 命令

1. sl 命令你会看到一辆火车从屏幕右边开往左边……安装:$ sudo apt-get install sl运行:$ sl命令有 -a l F e 几个选项:-a An accident seems to happen. You'll feel pity for people who cry for help.-l shows little one.-F It f...

2019-12-03 11:44:49 1716

原创 什么影响了数据库查询速度、什么影响了MySQL性能

一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:Queries Per Second 意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。客户机在发...

2019-12-02 10:05:59 2037 1

原创 源码详解 Spring Boot 的启动原理

我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}从上面代码可以看出,Annotat...

2019-11-30 09:14:31 89

原创 Python 多线程编程

人生苦短,我用 Python!我们知道,多线程与单线程相比,可以提高 CPU 利用率,加快程序的响应速度。单线程是按顺序执行的,比如用单线程执行如下操作:6秒读取文件19秒处理文件15秒读取文件28秒处理文件2总共用时 28 秒,如果开启两条线程来执行上面的操作(假设处理器为多核 CPU),如下所示:6秒读取文件1 + 5秒读取文件29秒处理文件1 + 8秒处理...

2019-11-29 11:06:58 128

转载 手把手教你画架构图,看一次就会了

先理清一些基础概念1、什么是架构架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策。架构是结构和愿景。系统架构是概念的体现,是对物/信息的功能与形式元素之间的对应情况所做的分配,是对元素之间的关系以及元素同周边环境之间的关系所做的定义。做好架构是个复杂的任务,也是个很大的话题,本篇就不做深入了。有了架构之后,就需要让干系人理解、遵循相关决策。2、什么是...

2019-11-28 10:43:09 465

原创 10 分钟实现 Spring Boot 发送邮件功能

什么是SMTP?SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP认证要求必须提供账号和密码才能登陆服务器,其设计目的在于避免用户受到垃圾邮件的侵扰。什么是IMAP?IMAP全称为Internet Message Access Protocol(互联网邮件访问协...

2019-11-27 09:55:35 626

原创 如何设计 API 接口,实现统一格式返回?

在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了)。一般系统的大致整体架构图如下:需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太low了,什么网关啊,...

2019-11-26 10:33:19 204

原创 SpringBoot+Mybatis多模块(module)项目搭建教程

一、前言最近公司项目准备开始重构,框架选定为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程。1、开发工具及系统环境IDE:IntelliJ IDEA 2018.2 系统环境:mac OSX2、项目目录结构biz层:业务逻辑层 dao层:数据持久层 web层:请求处理层二、搭建步骤1、创建父工程① IDEA ...

2019-11-25 10:42:16 105

原创 别在 Java 代码里乱打日志了,这才是打印日志的正确姿势

使用slf4j使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一 实现方式统一使用: Logback框架打日志的正确方式什么时候应该打日志当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。 当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支 经常以功能为...

2019-11-23 15:35:25 86

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除