自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 资源 (1)
  • 收藏
  • 关注

原创 业务到解决方案构想

解决方案构想的价值在于它确保了我们不会直接从业务需求跳到代码实现,而是先有一个清晰的蓝图和共识,避免开发出不符合业务期望的系统。解决方案构想之所以感觉抽象,是因为它处于业务和技术的交界处,既不是纯业务分析,也不是具体技术设计。:确保各方(业务方、技术方、用户等)对解决方案有一致认可。才会进入具体的类设计、API设计等细节。:将业务视角的需求转变为解决方案视角。:描述系统实施后,业务流程将如何运作。:初步勾勒系统的整体架构。

2025-06-02 22:31:57 1058

原创 Abstract common services 抽象公共接口

在软件开发中,抽象公共服务是一种减少依赖的策略,通过将相似但不完全相同的服务模块隐藏在一个通用抽象层后面,简化系统集成和维护。具体实现可以通过一个通用接口或中介者来转换请求,从而隐藏模块的具体实现细节。中介者在此过程中起到关键作用,特别是在处理不同模块的接口、协议或数据格式差异时,能够将对抽象服务的统一请求转换为具体模块所需的格式。例如,在支付服务场景中,PayPal和Stripe模块分别需要JSON和XML格式的数据,中介者可以统一处理这些差异,使调用方只需与抽象接口交互。这种设计不仅提高了系统的可维护性

2025-05-11 17:29:15 914

原创 Use an intermediary (中介)

使用中介策略是一种软件设计方法,在两个或多个组件之间引入中间层(中介)来管理它们之间的交互。组件之间不是直接通信,而是通过t进行交互

2025-05-05 20:17:51 850

原创 Encapsulate

场景: 一个电商系统需要集成多个支付网关,如支付宝,微信,Paypal。不同支付网关的API差异很大, 参数,签名方式,回调机制等。封装是一种策略,且是其他Intergrability策略的基础。封装也是比较常见的Modifiability策略,因此减少了 更改一个模块会传播到另外一个模块的概率。现在外部的职责只能和模块暴露的接口交互。接口,将容易的变化点进行抽象 , 即 接口会隐藏这些细节。封装引入了明确的接口。耦合以前依赖于模块的内部,现在转移到了模块的接口。对于我们讨论的封装,可能更在于第二个定义。

2025-05-05 15:28:41 715

原创 Erric Gamma 关于resuable code的采访

1,不要过度使用设计模式。如果你的需求没有一个例子,需要你抽象扩展,那就不需要花精力去 人为设计 change point>2, 可以先写一个实例,当发现有重复代码,开始重构。在这过程中,可以抽象,使用设计模式。3, 极客开发模式,对效率要求极高。而前期对设计模式投入很多时间,会有点牺牲开发的效率。

2024-10-20 15:15:52 813

原创 高速缓存是怎么让CPU找到地址内容的?

这个场景在性能优化下,应该很少会用到。但是还是总结一下。: CPU给的一个地址,例如 0xffads1233423: 这个地址上的值。

2024-06-16 22:12:07 281

原创 性能提升的几个方向

c++性能优化的大方向

2024-06-16 21:48:04 125

原创 install cmake

https://gist.github.com/1duo/38af1abd68a2c7fe5087532ab968574e

2024-01-21 23:23:45 440

原创 install google benckmark in Centos

https://installati.one/install-google-benchmark-centos-7/

2024-01-21 21:29:49 424

原创 Linux 脚本文件

然后使用 bash xx.sh 运行即可。

2024-01-21 17:22:12 364

原创 google performance too相关

2, clang gcc msvc 编译器。

2024-01-21 16:47:23 359

原创 VS code:Task

launch.json 和 task,json 的区别 https://blog.youkuaiyun.com/weixin_44465434/article/details/123372132。有许多已有的工具支持这些流程,例如Ant, Make, Jake, and MS build.我们知道,vscode可以支持许多编程语言,很多语言是需要进行编译的,打包,测试…文件,所以会提示让你创建,这时候可以选择cmke或者普通的cpp 等.2, 这时候去top search 栏,选择你本地安装的编译器。

2023-08-06 16:49:59 761

原创 VS Code search tab

vscode 搜索栏

2023-08-05 19:51:09 477

原创 g++多文件编译

如果编译一个独立的 main.cpp(假设其不依赖于其他的cpp)。我们编译的时候可以直接使其生成最终的exe文件;这个include其实在编译阶段就会使用,因为所依赖的文件stream已经在gcc的编译路径里,所以就没有出问题。check下g++的参数,发现可以使用 -I 来设置寻找的目录。g++编译单个文件时,操作比较简单,使用的到的g++概念也比较简单。上面的命令虽然简单,但是包含了预编译,编译,组装,链接。说个里面的小细节,比如main里面调用了。g++编译大体的过程。

2022-12-11 02:38:48 3747

原创 g++ 命令

参考这里总结来说,缺点:上面的有个缺点就是,需要在编译的指令上指定所有的参与文件,如果文件少还可以,文件多的话,这么指定会很麻烦。vscode可以通过的版本,指定Path, 指定参与文件g++ 参与编译的文件1, Approach 1在上面定义文件时,使用**例如替换为OR

2022-12-04 16:10:48 698

原创 基类的析构函数

c++ 析构函数 中,几个关键字的影响

2022-11-19 13:12:23 244

原创 undefined reference to `vtable

上述代码的错误,是未定义function,只是声明。所以function pointer应该没产生成功,更别说后面的virtual table了。开始构造时候,先构造父类的,然后构造自己的,是一种自上而下的过程。我们看到编译的错误也是先父类出的问题,然后是子类出的问题。是虚函数表,报错说的是 undefined reference to。还是reference不存在?就是说,指向这个表的reference是未定义的。

2022-11-19 12:50:15 974

原创 虚基类设计 c++

c++ 虚基类 数据成员是否改存在? 如果存在,该如何设计的问题

2022-11-19 11:53:42 828

原创 二级指针 杂记

二级指针char* char[]

2022-11-13 15:29:15 593

原创 pywinauto 自动进行远程桌面登陆 remote desktop connection

需要安装pywinauto, 可以使用pip,具体过程,这里就不累述。当安装完成,执行下不报错,就说明安装成功。

2022-10-16 11:54:45 1996

原创 需求拆分-软件工程

当我们获得需求的时候,需要对需求进行拆分。那么,怎么评价拆分的好不好?完备不完备?

2022-09-12 23:12:37 466

原创 c++虚拟继承那些事

在c++中,会遇到菱形继承的情况。

2022-09-11 13:37:39 401

原创 返回值优化<return value optimization>

RVO 就是让编译器移除两个临时对象,直接让相关对象在t的内存上初始化。为了简单讲述,考虑下面的情形,将一个函数的返回值赋值给一个变量。函数里面将要生成的值。这样就不需要copy 这个动作了。如果要优化这种拷贝,一个共性的想法是,允许编译器。比如以下函数,就会编译时会返回值优化。返回值优化适用于优化 值拷贝的情况。提升速度,不用发生拷贝对象等事情。理论上来说,总共有3个对象被创建。......

2022-08-28 18:29:57 280 1

原创 testng命令行执行

查看官网testng doc,给出以下命令java org.testng.TestNG testng1.xml [testng2.xml testng3.xml ...]其中还提到,Assuming that you have TestNG in your class path, the simplest way to invoke TestNG is as follows:需要将testNg加到classath中。我们知道classpath是存放Java .class文件的地方,即编译的过的文件

2021-10-26 21:00:12 1040

原创 javac 命令编译入门(1)

问题在阅读tomcat 与 java web 开发技术详解 第三章 3.2.3时,发现对javac了解太浅。Tomcat相当于一个jar包。用户在tomcat的指定目录下,编写符合selvert规范的应用代码类,现在需要编译。DOS 到指定目录,javac编译c:xxx> javac -classpath c:\xxx\servlet-api.jar -sourcepath src -d WEB-INF\classes sec\mypack\DispatcherServlet.java

2021-08-09 22:48:10 502

原创 Java Socket Server Examples

abstractthis is an article to note things I meet when reading https://www.codejava.net/java-se/networking/java-socket-server-examples-tcp-ipQ : what is the relation between socket-server and TCP ? or how java.net represent TCP?multicast: related with i

2021-06-22 22:49:30 196

原创 遍历二叉树ON方法

普通方法前序 中序 后序 遍历二叉树,可以用递归的方法遍历,也可以使用栈的结构。两者都是需要额外的内存消耗的。我们在遍历二叉树的过程中,我们在遍历的过程中,当进入一个节点,那么我们直接根据其本身,只能继续得到左子树和右子树,无法得到其父节点。没法自由的进入父节点,那么就无法去父节点的右节点。所以 需要额外的结构来保存父类的信息。我们可以使用一个stack来保存父类的信息,定义好出栈和入栈的规则,从而可以对一个二叉树进行遍历。比如一个节点的左子树即将被遍历,此时我们可以将这个节点压入栈,用来以后使用,去

2021-04-19 21:42:46 167

原创 遗传算法 变异超出边界,解的范围

出现不可行解时, 该怎么处理?https://www.zhihu.com/question/268577816/answer/936892718https://zhuanlan.zhihu.com/p/56299083

2021-04-17 23:30:17 1619

原创 语言逻辑 TO 代码

总结一些语言转换成代码的练习二叉树1,cur 是当前的节点,找到cur左子树的最右边的节点所谓的最右边的节点,指的 位置上是右边,“左左右” 与“‘左右左’ 那个更加是右边呢?我们认为是 左右左,因为其前面两位都是左边的变量 cur , 左子树的最右节点 mostRightNode c = cur.left;while(c.right !=null){ c = c.right;}if(c.left != null){ return c.left;}else{ return c;

2021-04-16 22:00:28 317 1

原创 TestNG的分析二

这章我们主要是自己构建testng的一些xmlclass,xmlsuite,xmltest,includemethod等对象来运行一个testng程序。首先上一章testng的流测成图相关代码:public class test3 { public static void main(String[] args) { DynamicGraph<ISuite> suiteGraph = new DynamicGraph<ISuite>();

2021-04-02 16:09:07 156

原创 testng的分析一

运行的代码是 自己设置listener, test class 设置是.class, 看看这个是testng run的路线 TestListenerAdapter testListenerAdapter = new TestListenerAdapter(); TestNG testNG = new TestNG(); testNG.setTestClasses(new Class[]{test2.class}); testNG.addListener(testListenerAd

2021-03-31 21:03:35 154 1

原创 springboot 重定向与直接return

return 'index';return 'redirect:index';这两种return方法有什么区别呢?区别一前者叫 forward, 后者叫 重定向。前者情况,url地址是不变的,但是页面的内容会被渲染成index的内容。比如,你在/hello的页面下,最后return ‘index’, 最后的页面内容会变成index.html,但是url地址依然是/hello。区别二廖雪峰...

2021-02-21 15:30:31 2199

原创 TestNG的ITestListener

testng listener 类图主要是继承 ItestListener里面的方法。当自定义listener 时候,主要是使用这些方法与运行时的testng交互获取结果。invoke 方法的定义见下面所示。后续开发者可编写自己的Listener进行对结果的再处理。 其中,testng类中有一个ExitCodeListener,其代码如下。定义于 SuiteRunner这个上下文管理类中。(此方法用于invoke suiteListener, 并不是用于处理ItestListener)priv

2021-02-17 19:47:47 361

原创 Tkinter clipborad.get()

目标: 使用python的build-in 的 package ,从windows clipboard获取粘贴板的图片. 不使用第三方库1, Tkinter class 里面有一个clipboard.get()函数,可以很轻松的获得字符串类的数据。import tkinter as tttk = tt.Tk()copy = tk.clipboard_get()print(copy)2, 如果粘贴板上的内容是图像,那么这个方法就不行了,会报以下错误TclError: CLIPBOARD

2020-11-21 22:07:35 1489

原创 SSL 认证 python

https://www.cnblogs.com/liuhaidon/p/11752734.html

2020-10-20 17:57:58 206

原创 java 注解 1

Java 注解1比较好的简单说明,菜鸟教程@Retention@Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。/** * Indicates how long annotations with the annotated type are to * be retained. If no Retention annotation is present on * an annotation type declaration,

2020-08-02 22:15:56 818

原创 醉汉漫步 Drunkard's walk

background有边界区域的波,是无限数目的波的叠加(傅里叶级数)。我们也会遇到另外的一种无限数目的叠加–能量级数。他们在现实的工程和物理应用中经常用到。除了在鼓膜上描述振动,他们也存在于流体问题和量子理论。在我们课程的最后,我们使用能量级数来解决氢原子问题,这些能量技术有可分离的变量。我们也会使用我们的解来梗概电子的轨道。分离变量法是很有用的工具当我们解决域是简单的形状时,例如长方形或...

2020-04-20 22:17:03 1374 1

原创 策略模式与数据流

策略模式中,不同的策略继承的是同一个接口这些策略,输入的参数是相同的。对相同的数据进行不同的操作。

2020-03-08 13:03:40 207

原创 在一起 JAVA面向对象设计

需求我们正在开发一个GPS系统用精度维度表示一个位置希望能够计算两个点之间的距离和方向Bad design1public class position{public double latitude;public double longitude;}public static double PositionUnity{public static double distanc...

2020-01-06 20:54:40 159

原创 java.awt.container源码中的组合设计模式

最近学了下组合设计模式,很有心得,于是看了一些java中的用到组合设计的源码。再此分享给大家。java.awt.container #add(component) 是使用的组合设计模式。下面上两个类的代码。public abstract class Component implements ImageObserver, MenuContainer, ...

2019-12-29 20:26:09 712

untitled6.py

word2vec,这是整理得google的word2vec的代码。原始的文章解读可以再tensorflow 中文上找到。

2020-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除