开发者 模式p20 pro

macOS下使用VS Code配置C/C++开发环境

macOS系统中默认的C/C++编译器是clang/clang++,命令行使用gcc/g++或者clang/clang++来执行命令时,都是调用clang/clang++编译器,想使用gcc/g++编译器结合VS Code进行开发的话,我们可以自己安装。 查看一下gcc和clang 1. 安装Hom ......
环境 macOS Code

Qt音视频开发45-音视频类结构体参数的设计

一、前言 视频监控内核组件重构和完善花了一年多时间,整个组件个人认为设计的最好的部分就是各种结构体参数的设计,而且分门别类,有枚举值,也有窗体相关的结构体参数,解码相关的结构体参数,同时将部分常用的结构体参数的获取和设置单独提供了函数,参阅海康大华等大厂的sdk的设计方式,也是将众多的参数统一归类的 ......
参数 结构 45

日志开发指南

日志规约 【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架(如SLF4J)中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理 方式统一。 【强制】日志文件至少保存 15 天,因为有些异常具备以“周”为频次发生的特点。对于当天日志,以 ......
开发指南 指南 日志

java代码开发规范

啦啦啦~~我不生产规范,我只是规范的搬运工 风格指南 代码风格以google code style为 标准,规范内容: 英文原文: https://google.github.io/styleguide/javaguide.html 中文参考: https://github.com/fantasti ......
代码 java

2_策略模式

1 简介 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换 2 使用策略模式计算奖金 以年终奖的计算为例 公司的年终奖是根据员工的工资基数和年底绩效情况来发放的。你负责编写代码来给财务计算员工的年终奖 1. 代码实现 /** * caculateBonus 计算每个人的奖金数额 * @ ......
策略 模式

3_代理模式

1 简介 为一个对象提供一个代用品或占位符,以便控制对它的访问 应用:明星都有经纪人作为代理 关键:当客户不方便直接访问一个对象或不满足需求时,提供一个替身对象来控制对这个对象的访问,实际上访问的是替身对象 2 例子 -- 小明追mm的故事 1. 不使用代理 class Flower {} let ......
模式

6_命令模式

1 命令模式的用途 应用场景: 有时需要向某些对象发送请求, 但是并不知道请求的接收者是谁, 也不知道被请求的操作是什么 此时希望用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系 订餐 命令模式将客人订餐的请求(订单)封装成 command 对象 订单从服务员手中传 ......
命令 模式

7_组合模式

1 简介 用小的子对象来构建更大的对象,而这些小的子对象本身也许是由更小的“孙对象”构成的 回顾宏命令 marcoCommand 被称为组合对象 closeDoorCommand、openPcCommand、openQQCommand 都是叶对象 marcoCommand 的 execute 并不执 ......
模式

13_状态模式

1 初识状态模式 关键:区分事物内部的状态 事物内部的状态改变往往会带来行为改变 有一个电灯,电灯上面只有一个开关 当电灯开着的时候,此时按下开关,电灯会切换到关闭状态 再按一次开关,电灯又将被打开 同一个开关按钮,在不同的状态下,表现出来的行为是不一样的 1.1 电灯程序 1. 定义Light类 ......
状态 模式 13

1_单例模式

1 简介 保证一个类仅有一个实例,并提供一个访问它的全局访问点 线程池、全局缓存、浏览器中的window对象 2 实现单例模式 思路:用一个变量来标志当前是否已为某个类创建过对象,是则在下一次获取该类的实例时直接返回之前创建的对象 function Singleton(name) { this.na ......
模式

4_迭代器模式

1 简介 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示 jQuery 中的迭代器 $.each([1, 2, 3], (i, n) => { console.log('当前下标:' + i) console.log('当前值:' + n) }) 2 实现自己的迭代器 ......
模式

5_发布订阅模式

1 简介 作为一种优秀的设计模式,发布订阅者模式被广泛应用在前端领域 eg: 在 vue 的源码中,为了让数据劫持和视图驱动解耦 就是通过架设一层消息管理层实现的,而这一层消息管理层实现的原理就是发布订阅模式 现在举个现实中的例子来感受一下:你看上了一套房,到了售楼处被告知该楼盘的房子早已售罄。然后 ......
模式

8_模板方法模式

1 模板方法模式的定义和组成 1.1 定义: 基于继承的设计模式 1.2 组成 1. 抽象父类 封装了子类的算法框架 公共方法 封装子类中所有方法的执行顺序 2. 具体的实现子类 2 第一个例子 -- Coffee or Tea 2.1 先泡一杯咖啡 class Coffee { construct ......
模板 模式 方法

9_享元模式

1 初识享元模式 用于性能优化的模式 运用共享技术来有效支持大量细粒度的对象 获取内衣广告图片 内衣工厂,目前的产品有50种男士内衣和50种女士内衣,各有50个模特做展示拍照片 class Modal { constructor(sex, underwear) { this.sex = sex th ......
模式

10_职责链模式

1 现实中的职责链模式 中学时代的期末考试,如果你平时不太老实,考试时就会被安排在第一个位置。遇到不会答的题目,就把题目编号写在小纸条上往后传递,坐在后面的同学如果也不会答,他就会把这张小纸条继续递给他后面的人。 优点:请求发送者只需要知道链中的第一个节点,从而弱化了发送者和一组接收者之间的强联系 ......
职责 模式 10

12_装饰者模式

1 简介 为对象动态增加职责:不改变对象自身的基础上,在程序运行期间给对象动态地添加职责 2 模拟传统面向对象语言的装饰者模式 编写一个飞机大战的游戏,随着经验值的增加,操作的飞行对象可以升级成为更厉害的飞机 2.1 原始飞机类 class Plane { constructor() {} fire ......
模式 12

14_适配器模式

1 简介 作用:解决两个软件实体间的接口不兼容的问题 现实中的适配器 港式插头转换器 电源适配器 USB 转接口 2 应用 亡羊补牢 渲染广东省地图 从第三方资源里获得了广东省的所有城市以及它们所对应的 ID,并且成功地渲染到页面中 let guangdongCity = [ { name: 'sh ......
适配器 模式 14

playwright中常用的几种方法(同步模式下)

playwright中常用的几种方法(同步模式下) 简单介绍 在 Python 环境下,Playwright 提供了比较完善的同步 API,开发者可以根据自己的喜好来选择使用异步 API 还是同步 API。以下是介绍 Playwright 常用同步方法的介绍。 具体方法 1. page.goto(u ......
playwright 常用 模式 方法

Laf Assistant:云开发从未如此爽快!

原文链接:https://forum.laf.run/d/67 工欲善其事,必先利其器。在编写代码时,IDE 也是我们不可或缺的。它可以让我们更高效地完成代码编写,提高开发效率。因此,IDE 是我们编写代码中最亲密的伙伴之一。 虽然 Laf 云开发有简洁的 Web IDE,只要能打开浏览器就可以随处 ......
Assistant 从未 Laf

不同设备如何统一语言编程平台高效开发?本文为你揭秘

ArkCompiler支持ArkTS/TS应用预先编译优化机器码,带来高性能的运行体验;同时,ArkCompiler的并发实例启动更加轻快,并且提供混淆字节码能力,有效提升了源码的安全性。ArkCompiler助力开发者更加高效、便捷、安全地开发HarmonyOS应用。 ......
语言编程 语言 设备 平台

Java设计模式-代理模式

简介 代理模式是一种结构型设计模式,它可以让我们通过一个代理对象来访问一个真实的目标对象,从而实现对目标对象的功能扩展或保护。代理模式的主要角色有三个: 抽象主题(Subject):定义了真实主题和代理主题的公共接口,使得在任何使用真实主题的地方都可以使用代理主题。 真实主题(RealSubject ......
模式 设计模式 Java

HBuilderX启动微信开发者工具报错[error] Error: Fail to open IDE

报错提示如下: 解决方法: 1. 使用自己的账号登录。 2. 在微信开发者平台上申请appid并更改项目中的appid。 3. 删除项目中微信小程序的appid,这样就能在HBuilderX中启动游客身份的微信开发者工具。 检查其他步骤是否正确: 1. 打开微信开发者工具,在安全选项里开启服务端口 ......
开发者 HBuilderX 工具 Error error

Linux驱动开发笔记(二):ubuntu系统从源码编译安装gcc7.3.0编译器

前言 编译ubuntu驱动之前,发现使用的gcc是7.3.0,而使用apt管理和下载的都无法直接或间接安装gcc7.3.0,于是只能从源码安装gcc7.3.0编译器。 GCC 概述 GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC的初衷是为GNU操作系统专门编写一款编译器,现 ......
编译器 源码 笔记 ubuntu 系统

【开发者必读】如何在MyEclipse中使用内联搜索?

MyEclipse v2022.1.0正式版下载 MyEclipse技术交流群:742336981 欢迎一起进群讨论 DevStyle中的内联搜索取代了传统的Eclipse查找和替换对话框,提供了一种更加高效和非侵入性的搜索体验——一种不会中断您的开发工作流程的工具。 DevStyle是一个Ecli ......
开发者 MyEclipse

工厂模式

#include <iostream> #include <string> using namespace std; class ExportFileApi { public: virtual bool exportData(string data) = 0; protected: ExportFi ......
工厂 模式

项目开发流程

BBS-个人博客项目完整搭建 在这一章中,我们会将前面所有学到的知识进行综合运用,从0开始完成一个django框架的web实战项目——多用户个人博客的搭建。 项目开发流程 在正式开发这个项目之前,首先我们必须了解一套完整的项目开发流程 一、项目分类 现在互联网公司需要开发的主流web项目一般分为两类 ......
项目开发 流程 项目

基于FPGA的FSK调制解调系统verilog开发

1.算法仿真效果 VIVADO2019.2仿真结果如下: 2.算法涉及理论知识概要 频移键控是利用载波的频率变化来传递数字信息。数字频率调制是数据通信中使用较 早的一种通信方式,由于这种调制解调方式容易实现,抗噪声和抗衰减性能较强,因此在 中低速数字通信系统中得到了较为广泛的应用。 在二进制频移键控 ......
verilog 系统 FPGA FSK

Mac安装node.js开发环境的详细步骤

1.官网下载node.js 下载地址:https://nodejs.org/ 直接点击下载即可。 2.双击刚下载的文件,默认点继续安装就行。 3.安装完成后,打开终端,输入“npm -v”和“node -v”两个命令,如下图出现版本信息,说明安装成功。 4.进行环境配置 打开终端,输入“open - ......
步骤 环境 node Mac js

Mac安装MySQL5.7开发环境的详细步骤

1.进入官网下载MySQL5.7的安装包。 下载地址:https://www.mysql.com/downloads/ 跟着上面图示下载即可,我这里选择的是5.7.31的版本,根据个人喜好选择版本,但是注意有的版本是没有mac版本的,换个版本就行了。 2.安装包下载完成后双击pkg文件进行安装,无脑 ......
步骤 环境 MySQL5 MySQL Mac

Mac安装MySQL5.7开发环境的详细步骤

1.进入官网下载MySQL5.7的安装包。 下载地址:https://www.mysql.com/downloads/ 跟着上面图示下载即可,我这里选择的是5.7.31的版本,根据个人喜好选择版本,但是注意有的版本是没有mac版本的,换个版本就行了。 2.安装包下载完成后双击pkg文件进行安装,无脑 ......
步骤 环境 MySQL5 MySQL Mac