- 博客(75)
- 收藏
- 关注
原创 软件测试岗位心得
小兵,自己想了下,每个年龄阶段有每个年龄阶段需要做的事情,人要有清醒的认知和正确的定位,需要有一个短暂的规划和长期性的规划,自己到底适合什么。回想自己从事开发岗位也数年有余,结合最新在公司的项目工作发现:需求是做不完的,bug也是修改不完的,一切的一切都是短暂性的结果。背景,目标,范围,方式,进度安排,测试组织,测试执行中开始与结束的标准,测试计划的审批与更改方式,测试相关的风险。自己想了下,换个职能岗位吧,挑战下,在软件行业再拼搏上三五年,毕竟现在没有好的出路,所以暂时考虑下测试岗位吧,
2024-04-16 16:41:05 278
原创 c++ 正则表达式
例如, 'industr(?正则表达式在平时的编程中,特别是匹配字符方面的效果很明显,当然使用字符串匹配算法也可以,只不过对于一些复杂的逻辑,实现起来比较麻烦,就是不需要重复遭轮子。这个理解为第1位为1,第二位0-9匹配最少2次,最多3次,根据最少匹配那就是100,最多匹配那就是9999,最后再加10000,就是100-10000了。后面的另一部分为|[1-2]\\d{4} 1或2开头,四位数字,那么就是最小为10000,最大为29999,这个理解为0或1开头,然后为0-9,那么就是0-19。
2023-04-20 22:36:37 1399
原创 c++11 强类型枚举
首先,看下c语言中的枚举,简单理解就是定义一组常量;定义如下: enum <类型名> {<枚举常量表>};下面写个简单的demo:#include <QApplication>#include <QDebug>enum color {RED, BLUE, WHITE, BLACK}; // 定义枚举类型colorint main(int argc, char *argv[]){ QApplication a(argc, arg
2022-05-17 23:18:33 1165
原创 写出高质量代码的标准
在平时的编码中,或多或少有这样的感觉,看别人的代码是一个重新整理和再认识的过程,当自己接收的别人的代码时,虽然里面用到的技术自己可能不是太清楚,但是自己知道他写的怎么样,好的代码给人一种赏心悦目的感觉,而不规整,一团乱麻的代码会降低人的维护者的思想预期和心里的愤愤感,每当分析问题时,会像大海捞针半天抓不到主脉络和层次结构,这样后面会越来越难维护,后面只能重构,这对项目来说会消耗大量的人力和时间成本;好的代码应该满足以下特质:1.鲁棒高(健壮性和强壮性),不能说基本的的或者常识性的异常...
2022-04-19 16:07:05 1631
原创 c++ 命名空间
命名空间是c++中一个简单的知识点,主要原因是为了解决名字冲突的,例如链接的时候模块A有个a,模块B也有个a,这样名字就会冲突,个人看来程序是人类日常生活中的映射,比如,生活中有同名的人,例如一个班级有同名的同学,那老师为了区分就会加入某些特性,eg:男xx,女xx,大xx,小xx,高个子xx,矮个子xx,等等,而c++语言引入命名空间,为了解决名字冲突的问题; 再或者一个大型项目,由若干个人进行开发,名字命名不可用避免的会有充分的情况,这样加上命名空间,就可以解决这样的问题;...
2022-04-07 23:18:06 1155
原创 面试前应该问自己
开发方面:1.前置声明;dq指针;2.c11新特性 c17;3.单例的饿汉和懒汉设计模式;工厂;观察者这些都是简单的设计模式,一个是设计模式的深挖,然后自己的项目中用到了哪些设计模式;4.进程和线程的区别;多个进程和多个线程之间是如何进行通讯的,以及通讯之间是怎么解决同步和死锁问题的;5.STL都了解哪些,具体的经常使用的这些的区别及差异点;6.数据结构方面掌握多少,这个就可以看出思维逻辑性(最简单的:排序【冒泡、堆、归并】;查找【二分法查找】;【红黑树】);STL中map和vector的区别
2022-03-21 23:37:40 1010
原创 c++ qt 20220318(dh ask question)
记录下自己一面的一些问题,这次偏向的底层:1.自我介绍2.说下项目,项目用到了多线程么?当时的应用场景?3.QSS4.数据库的主键和索引,有多少个索引,主键和索引的含义(都是干什么使用的?)5.进程和线程的区别6.一个进程最多有多少个线程?(2048)7.线程同步的方式?8.https是同步的还是异步的9.传输一个大的数据包2G,是用tcp还是udp,他们的区别是什么?10.qt的IDE都用过哪些vs用过么?11.mvc模型介绍下,mv的作用.
2022-03-18 22:34:06 2132
原创 c++ qt(20220316 hls ask question)
本篇面试偏向于基础的东西,其实一般面试面试官还是根据简历进行的,所以简历上面写的一定要熟练掌握,避免出现遗漏,而且简历上面既然写的一定要深挖,要充分掌握,要不然会很尴尬的;1.自我介绍2.元对象系统的作用3.qt4 和qt5 connect写法的差异性4.指针数组和数组指针5.二维数组指针6.c++11 新特性7.QWidget和QObject的区别8.封装的库导出类,外部只能通过栈调用,不能通过堆调用;9.槽如何知道信号的发送者(sender-&g...
2022-03-16 18:17:04 2515
原创 plantuml(2022-02-15)
在我们平时在进行概要设计文档编写时需要编写模块分层图、流程图、类图、时序图、实施部署图,其中plantuml为一个很好的画图平台工具。其链接为:https://www.swack.cn;PlantUML是其中的一个模块,当然里面也有文档格式化工具:markdown,首先模块图:1.模块分层图:@startumlnode “web服务器” { [web server]}node “client 服务器” { [aaa server]}[web s.
2022-02-16 09:32:22 1993
原创 开发项目总结(20220117)
作为一名底层码农,勤于总结,乐于分享是一个很好的品质,就想上学时如果你会一道题,当前首先你自己理解了会做了这是基本的,但是如果你能通过简单的语言能够讲解给别人,别人也能领会并能够解答出来,这样我想对讲解的人来说是非常有帮助的,因为你给别人讲的过程也是自己不断熟悉认知及思考总结的另一个方式,反正勤能补拙,自己记性不好那就记录下来,反正积少成多,就算你最后可能没有别人那样丰功伟绩,起码对每天来说都是充实的,毕竟每天也毕竟只有一天。 实际工作中,我想不管面试中或者在岗位晋升时都或多或少的被问到:...
2022-02-16 09:10:21 1075
原创 漫谈汽车(20220216)
今天简单的说下汽车,其实人每天经历的就那几个层面:衣食住行,然后还有见闻,阅历,自我增长方面,说下车吧,汽车不光为我们的出行带来了方便,而且可以拓宽我们的阅历和丰富我们的人机交往。 而买什么样的车根据个人的经济实力,但是买车的费用一般就那几部分:裸车,购置税,保险,上牌,如果你是进口的可能还有些关税,至于买的过程中哪些环节可以省钱,我觉得就保险和上牌,像保险可以可以权衡自己权衡,有的4s店要求车的商业险必须在他们店里,当然自己权衡保险费用和他们的优惠额度,还有上牌其实也简单,只要自己有时...
2022-02-16 08:59:25 986
原创 gdb调试
1.一般在linux下进行开发,gbg调试是分析程序crash一个必备技能,前提得生成debug版本,至于release模式也能调,估计定位到代码故障点比较麻烦,这里说下debug调试,先写一个测试程序;cmake_minimum_required(VERSION 3.13.4)project(demo)set(CMAKE_CXX_STANDARD 17)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTO
2022-01-13 21:30:47 858
原创 malloc引发的血案
1.GDB调试;2.根据源码生成deb包,生成过程中的常见问题;3.编码时结合自己使用的设计模式;4.deb包对应的apt,dpkg;5.linux的相关目录;6.git操作指南;7.
2021-12-21 18:47:24 984
原创 asan崩溃问题
在编写底层代码,使用c++进行文件操作时,通常使用文件流:#include <iostream>#include <fstream>using namespace std;//ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息。//ifstream 该数据类型表示输入文件流,用于从文件读取信息。//fstream 该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从
2021-12-20 15:02:22 1286
原创 QSettings 读写ini配置文件
配置信息保存为ini配置文件是一个通用的方式,eg:IP,端口等,有时里面的检索key是固定的,只需要在代码中按照指定的字段检索,而后期key改变时又得牵扯兼容性,所以动态适配是一个好的方案,这里先说下固定字段;ini文件内容:[DeviceInfo]status=1#include "widget.h"#include "json.h"#include "ini.h"#include <QApplication>#include <QDebug>#in
2021-12-09 10:21:17 1216
原创 Qt json
在使用qt进行开发时,获取其它语言开发时,json数据格式是我们绕不过去的一个环节:eg:服务器进行数据交互,保存用户配置信息等等,当然格式有多种:ini;xml,这里说下json;json解析首先分为这几个类: QJsonDocument QJsonObject QJsonArray QJsonValueQJsonParseError;一般分为组织数据给别人使用或者解析整包里面的内容;这里举个例子,linux系统获取根分区所在的最上层的分区名称,先贴段代码;#include "
2021-12-08 20:31:37 273
原创 c++ 多态
#include "pluginserviceinterface.h"#include <QObject>class ActiveCodeServiceImpl : public QObject, public PluginServiceInterface{ Q_OBJECTpublic: explicit ActiveCodeServiceImpl(QObject *parent = Q_NULLPTR); ~ActiveCodeServiceImpl(.
2021-11-30 18:38:41 672
原创 c++ 23种设计模式之单例设计模式
#ifndef DATABASE_H#define DATABASE_H#include <QtSql/QSqlDatabase>class DataBase{public: DataBase(); /************************************************* 函数名称: static DataBase& GetInstance() 函数功能: 获取DataBase的单例对象模型 调用函数: .
2021-11-30 09:32:35 942
原创 c语言~函数篇
函数设计原则:1.设计函数时应该满足单一功能原则,最可怕的是函数名和功能不一致;2.函数的规模体要小,尽量控制在80行以内;3.相同的输入应当产生相同的输出,避免函数带有"记忆"功能(即运行结果不可预料,或者有各种情况);4.参数避免过多,尽量控制在4个及以内;5.尽量不要使用类型数目不确定的参数;6.有时候不需要返回值,但是为了增加灵活性如支持链式表达,可以附加返回值;eg:strcpy/* Copy SRC to DEST. */extern char *strcpy (char *.
2021-11-24 09:34:26 122
原创 qt和web后台通讯时数据包组织定义
QVariantMap QJsonObject QJsonDocument QJsonObject QJsonValue
2021-08-24 23:47:47 129
原创 define const typedef的区别
typedef和define的区别#include <stdio.h>//预编译阶段,简单的字符串替换,不做安全检查#define f(x) x*xint main () { typedef int integer; //编译阶段,做数据类型检查,特别对于一些复杂数据类型特别有作用,eg:函数指针等; integer m = 100; printf("%d %d\n", m, f(5)); return 0;}...
2021-08-10 21:00:20 87
原创 c语言结构体
#include <stdio.h>#include <stdlib.h>//定义结构体征集定义变量并进行初始化struct Theacher { char name[20]; int age;} theacher = {"xiaomei", 40};struct Student { char *name; int age;};int main () { printf("teacher name: %s age: %d\n", theacher.n.
2021-08-01 23:26:35 66
原创 2021-07-21
c++结构体和类的区别单例qstring qmap find策略设计模式网络断开QTimerconst三个位置强枚举作用域 namespaceq d指针智能指针指针判空内存泄露高内聚低耦合 函数功能职责单一函数不能超过100行一屏设置状态前面如果有return就得注意了匿名槽函数 lambel表达式 connect连接方式终端常用命令...
2021-07-21 20:39:38 92
原创 qt定时器
背景:在实际中1.我们往往需要给执行某个业务请求设置等待时间(超时时间),eg:网络请求数据包、进度条等;2.需要定时执行每个任务,eg钟表每天定时报时,就想人每天12:00吃中午饭,大脑给身体设置的定时任务;3.有些事情需要特定的时间执行,eg:笔者明天早上需要五点起床,赶第一班航班去某个地方,那当然起码得设置一个两点左右的闹钟,不至于误机;这些看起来简单的事情其实映射到程序世界来都需要定时看护,那定时器,是一个不错的选择;#include "mainwindow.h"#in
2021-07-17 18:11:04 1013
原创 汽车
好久没更新博客了,就连自己每天一句毒鸡汤也搁置了,整天上班忙,下班了看会儿手机,刷刷抖音,不知不觉一两个小时过去了,每天都是这样,不知不觉中三两天过去了,不知不觉中一两周过去了,又不知不觉中一两年过去了,人生短短有几个十年;回想还是珍惜当下,起码笨鸟先飞,在学校时有家长的督促和老师的鼓励及同学的激励,到了社会只有靠自己约束自己,只有自己克制住自己了,每天积累一点点,进步一点点,这样下去你总会看到效果的,没有的人的成功和出名是随随便便的,正如那句话:不积跬步无以至千里,不积小流无以成江海,江...
2021-04-20 23:02:21 165 1
原创 2021-01-12 CMake
cmake_minimum_required(VERSION 3.0.0)project(CmakeGuiLearn VERSION 0.1 LANGUAGES CXX)set(BIN_NAME CmakeGuiLearn)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOMOC ON)#find_package(Qt5Core)#find_package(Qt5Gui)#find_package(Qt5Widgets)find_packa.
2021-01-13 19:21:06 198
原创 20201210代码规范宣讲
结合自己在项目中的体会和问题展现,发现代码CodeReview的作用非常大,代码规范宣讲,深刻理解,灵活运用在实际的项目中尤为重要;仔细想想为什么呢,为什么呢?1.小白程序员,思维简单,往往照猫画虎,基础功底浅薄,没有这方面的意识;2.中高级,得过且过,没有以高标准,严要求左右自己;3.名副其实的高级,这些人写出的代码像诗一样,可读性高(思维缜密[就是你想到了别人想到了,你没有想到的别人也想到了],逻辑清晰),可扩展性强,复用性强,可维护性强,就是作为一个新人能很快的融入;以上仅仅代表个
2020-12-10 23:45:15 123
原创 数据类型转换
c语言写法:c++写法:===========================================================================智能指针:
2020-12-10 22:55:48 505
原创 linux qt cmd
在我们使用qt设计程序时,有gui和cmd这两种用户交互方式,gui就不用说了,就是控件的使用和布局的灵活使用,这其中也有些技巧,一般不适用ui设计器,因为它不支持动态缩放和比例分配,这个布局管理器的使用网上很多,后面自己写写篇博文,对这块的使用场景做一个详细的阐述说明。今天说下linux下简单qt cmd应用程序的打印,先贴出Demo(支持国际化和动态展示):#include <QCoreApplication>#include <QObject>#include &l
2020-12-04 14:39:16 200
原创 写出安全代码的先决因素
背景:在实际的开发中或者在项目中,代码安全的事故数不胜数,发生的阶段不同,造成的影响也不同;1.在开发阶段发现; 1)一般是由于自己的安全意识不强或当时的技能水平有限,很多情况自以为是,没有深刻理解其内部的具体实现原理而发生; 2)使用或者复用别人的代码,没有识别其中的风险或者安全隐患,想当然的以为这段代码之前的都运行ok,自以为肯定没有问题,没有与自己的实际场景结合起来;这里说下我的切身体会:我们的项目在linux环境下有个函数,有内存泄漏风险(打开文件没有关闭),而...
2020-11-18 22:56:55 189 1
原创 娱乐
在闲暇时或者在平时欣赏影音,是很多人的娱乐消遣方式,现在大家基本都用的手机,而手机操作系统,一般就分为两种Android和iphone;这里记录下两种:影视和音乐;由于自己用的iphone手机,经常为看不到免费的且自己喜欢的电视剧而困扰;比如自己喜欢看新三国演义,而这在腾讯里面,且只有会员才能看,而作为一个资深白嫖着这是我万万不能接受的,找了半天,最后找了个在iphone下看电视剧的良心app:鱼渔影视,下面附上截图:==================================...
2020-11-14 15:44:18 128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人