显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

进击の架构师

 
 
 
 
 
 

北京市 海淀区 天蝎座

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

我的开源项目

 
 
模块内容加载中...
 
 
 
 
 

可爱的小鼠

 
 
模块内容加载中...
 
 
 
 
 

日志分类

 
 
日志分类列表加载中...
 
 
 
 
 

摄影组图

 
 
数据加载中...
 
 
 
 
 
 

小铺子

 
 
模块内容加载中...
 
 
 
 
 
 
 

[置顶] [C/C++]C++管道数据流(Stream)的实现

2017-2-5 9:49:46 阅读109 评论0 52017/02 Feb5

仿照 Java8 Stream 实现的C++版本,使用时只需要包含一个头文件。

#include "stream.h" using namespace cpp::stream;

同时提供了 -> 和 >> 两种类型的操作符调用:

ST3 arr[20] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }; int count1 = make_stream(arr, __crt_countof(arr)) ->map([](const ST3& st)->ST2 { return st.st2; })->map([](const ST2& st)->ST1 { return st.st1; })->map([](const ST1& st)->ST0 { return st.st0; })->map([](const ST0& st)->int { return st.i; })->filter([](const int& i)->bool { return i > 6; })->filter([](const int& i)->bool { return

作者  | 2017-2-5 9:49:46 | 阅读(109) |评论(0) | 阅读全文>>

[置顶] [SQL优化] MySQL优化一则

2016-9-18 11:14:04 阅读35 评论0 182016/09 Sept18

考虑如下SQL语句的执行过程:

EXPLAIN SELECT

*

FROM

testb b,

testa a

WHERE

a.id = b.aid;

当表A有5条数据,表B有1条数据的时候:

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE b ALL 1

1 SIMPLE a ALL 5 Using where; Using join buffer (Block Nested Loop)

而表A有5条数据,表B有10条数据的时候:

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE a ALL 5

1 SIMPLE b ALL 10 Using where; Using join buffer (Block Nested Loop)

而表A有15条数据,表B有10条数据的时候:

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE b ALL 10

作者  | 2016-9-18 11:14:04 | 阅读(35) |评论(0) | 阅读全文>>

[置顶] [C/C++]如何高效的阅读C++标准库源码?

2016-7-27 10:23:48 阅读173 评论0 272016/07 July27

阅读C++标准库的源码是一件非常痛苦的事情,因为里面有大量的宏,为函数的追踪带来了极大的不便!幸好,这个世界上有Visual Studio!通过使用VS的预处理功能我们可以很方便的将标准库中的宏全部展开,然后阅读干干净净的源码。

VS的配置如下:打开项目属性,依次展开“配置属性”-“C/C++”-“预处理器”,将“预处理到文件”更改为“是”,也可以选择是否“保留注释”。然后重新生成项目,这时候会报错,程序不能正常链接,没有关系。

经过上面的配置之后,每一个C++源文件都会生成一个.i文件,可以在输出目录中找到。还等什么,赶紧去试一下吧!

附:C++11标准库文件列表

https://msdn.microsoft.com/zh-cn/library/a7tkse1h.aspx

附:命令行编译VS2015的C++标准头文件的bat脚本,记得用VS2015的开发人员命令提示执行该脚本。

@echo off

rem 启用延迟变量扩展

Setlocal ENABLEDELAYEDEXPANSION

rem 删除原来的文件

del /f /s /q %~dp0.\res\*

del /f /s /q %~dp0.\src\*

rem 创建文件夹

作者  | 2016-7-27 10:23:48 | 阅读(173) |评论(0) | 阅读全文>>

[Java/Web]使用Lambda表达式抽取公共逻辑简化代码

2017-8-16 17:48:51 阅读2 评论0 162017/08 Aug16

先看一下改造前的代码:

public String getUserPresence(String userId) {

Jedis jedis = pool.getResource();

String presence = "offline";

try {

String p = jedis.hget("sessions_user_" + userId, "presence");

if (p != null) {

Presence pi = Presence.getPresence(Integer.parseInt(p));

presence = pi.toString();

}

} catch (JedisConnectionException e) {

if (null != jedis) {

pool.returnBrokenResource(jedis);

jedis = null;

}

} finally {

if (null != jedis)

pool.returnResource(jedis);

}

return presence;

}

public List<String> getStatusOrders(String userId) {

Jedis jedis = pool.getResource();

作者  | 2017-8-16 17:48:51 | 阅读(2) |评论(0) | 阅读全文>>

Spring Boot Maven/Gradle 插件提供了一种非常简单的方式打包程序为单Jar文件,以Gradle项目为例,仅仅只需要在 build.gradle 文件中引用SpringBoot插件。

plugins {

id 'org.springframework.boot' version '1.5.3.RELEASE'

}

然后执行 gradle build,即可在 build/libs 目录下找到打包后的程序(包含一个jar文件和一个jar.original文件)。

原理

MANIFEST.MF 中指定了SpringBoot的启动类 Main-Class: org.springframework.boot.loader.JarLauncher,然后JarLauncher会启动 MANIFEST.MF 中指定的应用程序真正的启动类。

Start-Class: pkg.PackageApplication

Spring-Boot-Classes: BOOT-INF/classes/

Spring-Boot-Lib: BOOT-INF/lib/

作者  | 2017-8-2 15:26:34 | 阅读(26) |评论(0) | 阅读全文>>

重新安装vm-tools。

作者  | 2017-7-27 15:24:28 | 阅读(28) |评论(0) | 阅读全文>>

[Docker]Docker常用命令

2017-7-17 14:28:16 阅读26 评论0 172017/07 July17

1. 删除标签为<none>的镜像

    docker rmi $(docker images -f 'dangling=true' -q)

2.删除所有容器

docker rm $(docker ps -a -q)

作者  | 2017-7-17 14:28:16 | 阅读(26) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017

注册 登录  
 加关注