随笔分类 - 编程之外的学习与思考
产品,管理的学习与思考
摘要:人月神话 ======= 焦油坑 编程系统产品(Programming Systems Product)开发的工作量是供个人使用的、独立开发的构件程序的九倍。我估计软件构件产品化引起了3倍工作量,将软件构件整合成完整系统所需要的设计、集成和测试又强加了3倍的工作量,这些高成本的构件在根本上是相互独立
阅读全文
摘要:[TOC] 公司C++规范学习 语法部分 class和struct关键字的选择:class表示被封装的用户自定义类型,不公开定义非静态数据成员,struct表示数据的简单集合,只定义用于初始化数据成员的方法。 必须使用构造函数初始化列表显示初始化直接基类与所有基类类型数据成员。 没有复制意义的类必须
阅读全文
摘要:[TOC] 线性回归,逻辑回归,神经网络,SVM的总结 "详细的学习笔记" . "markdown的公式编辑手册" . 回归的含义: 回归就是指根据之前的数据预测一个准确的输出值. 分类的含义: 分类就是预测离散的输出值, 比如男生为1, 女生为0(0/1离散输出问题). 机器学习中往往会有一个假设
阅读全文
摘要:Docker学习笔记 "Docker的安装教程for Windows" 。 "Docker的安装教程for Ubuntu" 。 "Docker的菜鸟教程" 。 "阮一峰的Docker入门教程" 。 为什么需要用Docker容器? 环境配置的难题: 程序换一台机器需要配置各种环境, 主要包括操作系统、
阅读全文
摘要:ROS学习笔记 "ROS入门网站" ; "ROS入门书籍" ROS主要包含包括功能包、节点、话题、消息类型和服务; ROS功能包/软件包(Packages) ROS软件包是一组用于实现特定功能的相关文件的集合,包括可执行文件和其他支持文件。 所有的 ROS 软件都是一个软件包或其他软件包的一部分。
阅读全文
摘要:反思C++面向对象与虚函数 C++语言学习可以看《C++ Primer》这本书; 在C++中进行面向对象编程会遇到其他语言中不存在的问题, 其本质原因是C++ class是值语义, 而非对象语义; 朴实的C++设计 实用当头, 朴实为贵, 好用才是王道; C++ 是一门(最)复杂的编程语言, 语言虽
阅读全文
摘要:C++编译链接精要 C++语言的三大约束: 与C兼容, 零开销(zero overhead)原则, 值语义; 兼容C语言的编译模型与运行模型, 也就是锁能直接使用C语言的头文件和库; 头文件包含具有传递性, 引入不必要的依赖; 头文件是在编译时使用, 动态库文件是在运行时使用, 二者的时间差可能带来
阅读全文
摘要:muduo网络库的设计与实现 muduo是基于Reactor模式的C++网络库; Reactor的关键结构 Reactor最核心的是事件分发机制, 即将IO multiplexing拿到IO事件分发给各个文件描述符(fd)的事件处理函数; 每个Channel对象自始至终只负责一个文件描述符(fd)的
阅读全文
摘要:muduo编程示例 muduo库是设计来开发内网的网络程序, 它没有做任何安全方面的加强措施, 如果在公网上可能会受到攻击; muduo库把主动关闭连接这件事分成两步来做: 如果主动关闭连接, 会先关本地写端, 等对方关闭之后, 再关闭本地读端; muduo Buffer类的设计与使用 muduo输
阅读全文
摘要:muduo网络库简介 高级语言(Java, Python等)的Sockects库并没有对Sockects API提供更高层的封装, 直接用它编写程序很容易掉到陷阱中; 网络库的价值还在于能方便地处理并发链接; 网络核心库 muduo是基于Reactor模式的网络库, 其核心是个事件循环EventLo
阅读全文
摘要:MQTT协议的入门 "入门教程" ; 发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递; 这意味着发布者和订阅者之间并不需要直接建立联系; 消息类型 MQTT拥有14种不同的消息类型: CONNECT:客户端连接到MQTT代理 CONNACK:连接确认 PUBLISH:新发布消息 PUBA
阅读全文
摘要:高效的多线程日志 日志(logging)有两个意思: 诊断日志(diagnostic log), 常用日志库提供日志功能; 交易日志(transaction log), 用于记录状态变更, 通过回放日志可以逐步恢复每一次修改后的状态; 日志通常用于故障诊断和追踪(trace), 也可用于性能分析;
阅读全文
摘要:C++多线程系统编程精要 学习多线程编程面临的最大思维方式的转变有两点: 当前线程可能被切换出去, 或者说被抢占(preempt)了; 多线程程序中事件的发生顺序不再有全局统一的先后关系; 当线程被切换出去回来继续执行下一条语句(指令)的时候, 全局数据(包括当前进程在操作系统内核中的状态)可能已经
阅读全文
摘要:多线程服务器的适用场合与常用编程模型 进程间通信与线程同步; 以最简单规范的方式开发功能正确、线程安全的多线程程序; 多线程服务器是指运行在linux操作系统上的独占式网络应用程序; 不考虑分布式存储, 只考虑分布式计算; 进程与线程 进程(process)是操作系统里最重要的两个概念之一(另一个是
阅读全文
摘要:线程同步的精要 并发有两种基本的模型: 一种是message passing(消息传递); 另一种是shared memory(共享内存); 在分布式系统中(有多台物理机需要通信), 运行在多台机器上的多个进程只有一种实用模型:message passing(消息传递), 因为多个物理机基本上不能共
阅读全文
摘要:商汤面试 "C++11中智能指针的原理, 使用和实现" 商汤一面面经(软件开发) 我是面的C/C++, 大部分时间是问项目, 中间问了几个技术问题, 但有一个没有回答上,直接被挂掉; 怎么让浮点数向上取整; int(a+0.5); 怎么保存大的浮点数 用字符串保存; C++怎么实现多态 用virtu
阅读全文
摘要:8大排序算法的总结 "常见算法思想" ; 简介 插入排序 冒泡排序 直接插入排序 折半插入排序 归并排序 快速排序 希尔排序 堆排序 直接选择排序 稳定性比较 快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法; 基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法; 稳
阅读全文
摘要:顺丰的电话面试 程序的地址空间(栈, 段, 堆, 静态数据段, bbs段, 代码段(.code)), const变量保存在那个段中; static无论是全局变量还是局部变量都存储在全局/静态区域,在编译期就为其分配内存,在程序结束时释放; const全局变量存储在只读数据段,编译期最初将其保存在符号
阅读全文
摘要:2018百度校招面试总结 目前走流程到二面, 写一波面经希望能够收到三面通知, 上天请赐予我运气和力量吧; 校招走流程的两个面试官都很nice, 比较随和, 面试体验非常好; 百度一面 在酒店一楼等面试官通知, 叫到名字就坐电梯去对应房间号面试; 交完简历, 面试官会安静的浏览简历(这时候比较尴尬,
阅读全文
摘要:2018网易的初级游戏开发工程师的面经 自我介绍: 先是自我介绍, 简单介绍了一下自己的项目经历, 会什么技术(自己认怂, 说了非科班出身, 技术不咋地); 然后问我, 有看那些计算机相关的书籍; 自己却只回答了一本书, 简直是失败呀; 好的自我介绍是一个好的面试的开始, 所以自我介绍一定要有底气,
阅读全文

浙公网安备 33010602011771号