
笔记
dr.xun
迭代
展开
-
API与C++中的API
1、什么是API1、是对某个问题的抽象,及用户与解决该问题的软件组件之间进行交互的方式;2、定义可复用模块,该模块可以嵌入到用户的应用程序中;3、一个明确定义的接口,可以为其他软件提供特定服务。原创 2022-09-11 18:12:28 · 1751 阅读 · 0 评论 -
一张图认识URI和URL
原创 2022-05-02 22:40:52 · 349 阅读 · 0 评论 -
软件工程师职责——嘴上无毛,办事不牢
一、前言“对于青少年来说,指责别人的冒险行为是常事,但是他们常常有一种’个人幻想’,相信他们自己对相同行为的一切负面应具有免疫力。”“警惕提建议是个巨人,在行动上是个矮子。”二、职责对自己选择的专业负有指责,做出有质量的工作,在能力范围内做到最高的标准。选择的专业为世界或社会变得更好做出贡献。对参与的社区负有责任。对同事负有责任,遵守编码规范,写出易于维护的代码,表达明确的意见,也倾听他者的意见。对同行负有责任,共享知识和经验。对自己负有责任,应对自己的工作和思想感到满意,接受自己选择的原创 2021-06-21 23:38:45 · 110 阅读 · 0 评论 -
API之应用编程体验(APX)
一、APIAPI,英文全称Application Programming Interface,翻译为“应用程序编程接口”。是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。我们不妨把API的诞生过程用一个小故事展示出来:研发人员A开发了软件A,研发人员B正在研发软件B。有一天,研发人员B想要调用软件A的部分功能来用,但是他又不想从头看一遍软件A的源码和功能实现过程,怎么办呢?研发人员A想了一个好主意:我把软件A里你需要原创 2021-06-14 17:51:20 · 662 阅读 · 0 评论 -
防御式编程——一种提高软件质量技术的辅助手段
一、概念主要思想:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。直白些,就是要对传入的数据做有效性校验。核心思想:要承认程序都会有问题,都要被修改。二、预防非法输入的数据什么是好的程序?不管输入的数据是什么都不会产生并输出垃圾数据 要做到“垃圾进,什么都不输出”、“垃圾进来,出去是错误提示”或“不许垃圾进来”处理进来垃圾的方法检查所有来源于外部的数据的值 检查子程序所有输入参数的值 决定如何处理错误的输入数据三、断言什么是断言使用场景:【前提】.原创 2021-06-14 10:39:43 · 302 阅读 · 0 评论 -
如何编写高质量的子程序
一、概念什么是子程序? 为实现一个特定的目的编写的一个可被调用的方法(method)或过程(procedure)。 什么是高质量的子程序? 正面回答很难,可以从我们厌恶什么开始作排除,先观察一个反例。 分析:有很差劲的名字,HandleStuff未能指明函数的作用,客户无法快速理解其作用 没有文档说明(敏捷追求代码即文档,具有自描述性),此处代码没有突出业务概念 代码布局不友好,代码的组织没有突出业务逻辑提示 入参的命名及是否可被修改存在矛盾,inputRec的类型是引用,表明可被.原创 2021-06-13 16:50:54 · 1385 阅读 · 0 评论 -
redis服务端与客户端使用记录
一、启动服务端redis-server二、启动客户端redis-cli查看客户端信息 CLIENT list设置客户端名字 CLIENT setname查看客户端名字 CLIENT getname原创 2021-05-16 10:08:56 · 128 阅读 · 0 评论 -
C++11 外部模板
【转载至】C++11 外部模板 - kaizen - 博客园 (cnblogs.com)【1】引入外部模板为了解决什么问题?“外部模板”是C++11中一个关于模板性能上的改进。实际上,“外部”(extern)这个概念早在C的时候已经就有了。常见的情况,在一个文件a.c中定义了一个变量int i,而在另外一个文件b.c中想使用它,这个时候就会在没有定义变量i的b.c文件中做一个外部变量的声明。比如:// 声明在b.c文件中extern int i;这样做的好处是,在分别编译了a.c和b转载 2021-05-14 09:25:00 · 544 阅读 · 0 评论 -
Linux下/etc/ld.so.conf详解
编译时动态库查找路径配置文件/etc/ld.so.conf 此文件记录了编译时使用的动态库的路径,也就是加载so库的路径。编译时找不到相关库? 默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,而通常通过源码包进行安装时,如果不指定--prefix会将库安装在/usr/local目录下,而又没有在文件/etc/ld.so.conf中添加/usr/local/lib这个目录>。这样虽然安装了源码包,但是使用时仍然找不到相关的.so库,就会报错。也就是说系统不知道...转载 2021-04-17 22:20:55 · 4407 阅读 · 0 评论 -
Linux动态库加载之LD_PRELOAD用法
转载https://blog.youkuaiyun.com/iEearth/article/details/49952047还有一篇博客也可以看看https://blog.youkuaiyun.com/xp5xp6/article/details/52513428https://www.cnblogs.com/openix/p/3521166.html/etc/ld.so.conf详解 :https://www.cnblogs.com/chris-cp/p/3591306.htmlLD_PRELOAD,..转载 2021-04-17 22:15:08 · 4756 阅读 · 3 评论 -
C++内存管理
1、基本要求“不重不漏”:不重——不重复delete,不漏——不漏掉delete即,new/delete要配对2、配对的场景malloc()分配内存,用free()释放内存 用new表达式创建对象,需用delete表达式析构对象并释放内存 用new[]表达式创建对象,需用delete[]表达式析构对象并释放内存 用::operator new()分配内存,需用::operator delete()去释放 用placement new创建对象,需在对象的生命期结束时调用对象的析构函数原创 2021-04-17 21:58:47 · 96 阅读 · 0 评论 -
简单设计原则
通过所有测试表达明确的语义消除重复才有最少元素实现出现矛盾时,优先级由高到低。原创 2021-03-27 10:55:17 · 772 阅读 · 0 评论 -
关于C++性能和效率的考量
一、关于“效率”的三个角度1、支持封装,可以实现相同接口来实验不同算法和数据结构效率的优劣2、过多对象的构造和析构动作对性能的影响3、程序库的选择二、基本思想与手段1、80-20法则一个程序的80%的资源用于20%的代码上。说明,软件的整体性能由构成代码的一小部分决定。对于程序的性能瓶颈不能靠猜或者是直觉确定,否则会浪费大量的精力,因为程序的性能特性倾向高度的非直觉性。需要通过观察或者实验来确定那些是20%部分的代码,这得借助于程序分析器,比如gprof、valgrind等。不用太在意细原创 2021-03-17 22:55:20 · 352 阅读 · 0 评论 -
设计模式之线程安全单例Singleton
方式一:利用Linux线程库pthread_once实现。noncopyable.h#pragma oncestruct noncopyable{protected: noncopyable() = default; ~noncopyable() = default; private: noncopyable(const noncopyable&) = delete; noncopyable& operator=(const non原创 2021-03-14 16:46:56 · 156 阅读 · 0 评论 -
C++的STL库如何做到类型区分
一、问题背景有时候写一个通用的模板类,在实现过程中我们需要模板参数的类型,根据是哪类类型进行相应的算法操作。比如,关于STL库的迭代器偏移算法工具advance将某个迭代器移动给定的距离,其模板函数签名如下:template<typename IterT, typename DistT>void advance(IterT& iter, DistT d);先说说STL库中迭代器的类型,有输入型迭代器(Input)、输出型迭代器(Output)、前向迭代器(forward)原创 2021-03-14 11:09:24 · 256 阅读 · 0 评论 -
Linux性能调优工具摘录
静态代码检测工具或平台:cppcheck、PC-lint、Coverity、QAC C/C++、Clang-Tidy、Clang Static Analyzer、SonarCube+sonar-cxx(推荐)、Facebook的inferprofiling工具:gnu prof、Oprofile、google gperftools(推荐)、perf、intel VTune、AMD CodeAnalyst内存泄漏:valgrind、AddressSanitizer(推荐)、mtrace、dmalloc、c原创 2021-03-13 10:45:43 · 173 阅读 · 0 评论 -
代码评价坐标图
原创 2021-03-13 09:12:00 · 379 阅读 · 0 评论 -
关于职业与职业认同
现在还处在生计阶段吧,希望能步入事业阶段。原创 2021-03-13 09:06:52 · 180 阅读 · 0 评论