Item22 When using the Pimpl, define specific member functions in the implementation file

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ Pimpl idiom这个C++的惯用法,我相信很多人都知道,通常为了保护我们的头文件,避免在修改类的数据成员的时候导致依赖这个头文件的程序也需要重新编译,常常被人们称为编译防火墙。例如下面这个类的头文件。class Widget...
阅读(382) 评论(0)

Item21 Perfer std::make_unique and std::make_shared to direct use of new

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ std::make_shared是在C++11中添加的一个专门用来创建智能指针的方法,而不幸的是std::make_unique在C++11中并没有,直到C++14才引进来。不过实现它也是一件很容易的一件事,如下:template...
阅读(330) 评论(0)

6.824: Distributed Systems 课程讲义2

Remote Procedure Call (RPC)RPC概述分布式系统中的关键组件;所有的实验都会使用的RPC。目标: 易于网络编程,隐藏客户端/服务器端之间通信的大部分细节,对于客户端来说就像普通的函数调用。RPC让网络之间的通讯看起来就像fn函数调用: 客户端:z = fn(x, y)服务器端:fn(x, y) { compute return z }PRC包https://g...
阅读(811) 评论(0)

Item20 Use std::weak_ptr for std::shared_ptr like pointers that can dangle

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 原始指针有一个致命的问题就是无法探知生死,尽管你可以通过释放内存后设置为空来解决部分场景下存在的问题,但是这治标不治本,当有多个指针指向同一个内存资源的时候就无能无力了。那么在这篇文章中我将介绍一个大杀器std::weak_ptr...
阅读(309) 评论(0)

6.824: Distributed Systems 课程讲义1

什么是分布式系统? 多计算机协作 DNS,P2P的文件共享 大型数据 MapReduce,以及很多的关键性基础架构都是分布式的。 为什么要分布式? 去连接物理上分离的实体 去通过隔离获得安全性 去通过复制来容错 去通过并行的CPU/mem/disk/net来达到横向扩展 但是这很负责, 许多并发的组件,必须处理好部分组件失败的情况,也 很难去了解性能的瓶颈MAIN TOPICS关于抽象,就是隐藏了分...
阅读(581) 评论(0)

MapReduce论文笔记

什么是MapReduce? ​ 它是一种编程模型,其思想来自于函数式编程,和Python,Lisp语言中的map和reduce函数类似,其次它也是处理大数据集的一种实现,抽象出一个Map接口和一个Reduce接口,屏蔽底层的基础设施的细节,让使用者可以轻松的编写分布式的应用。 实现MapReduce需要解决哪些问题?输入的数据如何分割 大量计算机组成的集群如何调度 集群中的计算机发生了错误如...
阅读(642) 评论(0)

Item19 Use std::shared_ptr for shared-ownership resource management

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在上一篇文章中讨论了std::unique_ptr,本文讨论的则是另外一个比较重要的智能指针,std::shared_ptr,通过本文标题可知,这是一个共享所有权的智能指针,使用这个智能指针可以实现弱化的垃圾回收(Python的垃...
阅读(564) 评论(0)

Item18 Use std::unique_ptr for exclusive-ownership resource management

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ 在这篇文章中我主要探讨下std::unique_ptr这个智能指针,说到智能指针就需要说下它和原始指针的区别了,原始指针很灵活但是处处都是陷阱,用不好很容易出错,但是智能指针(Smart Pointer)相比于原始指针更易用,通过...
阅读(415) 评论(0)

Item17 Understand special member function generation

这个系列的文章来自于Effective Modern C++的读书笔记,我抽取了其中比较重要的,不容易理解的,平常我们开发过程中也不太在意的一些Item进行分析。 ​ Effective C++中曾经提到了Rule of Three 意思就是如果你需要声明拷贝构造函数,拷贝赋值操作符和析构函数三者中的任何一个(原因参见),那么你应该三者都声明,Inside the C++ Object Mode...
阅读(455) 评论(0)
    个人资料
    • 访问:91669次
    • 积分:2025
    • 等级:
    • 排名:千里之外
    • 原创:111篇
    • 转载:0篇
    • 译文:1篇
    • 评论:23条
    博客专栏
    最新评论