自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mydeman的学习日志

知行合一

  • 博客(228)
  • 收藏
  • 关注

原创 如何发挥测试策略的指导性作用

测试策略是保证测试过程有效开展、测试资源利用最大化、测试质量稳定可靠的重要前提,但是在实际研发过程中却往往会被忽略。很多时候会被认为是一项文档工作,从网站找一个文档改巴改巴应付了事。如果管理者对测试策略也不重视,可能会造成质量失控、工作无序、贻误战机等更大的损失。

2022-04-23 20:44:19 332

原创 研发人员如何进行有效沟通

沟通,在我们的日常工作必不可少,需求沟通、技术设计沟通、接口联调沟通、实现细节沟通等等等等。敏捷开发更倡导通过面对面的沟通提高效率。作为不善言辞的程序员,有时候不但达不到沟通效果,反而会出现面红耳赤,最后甚至被领导“强迫牵手”。那么应该如何提高效率呢?一,了解认知差异,放平心态,平等对话。之所以要把认知差异放在首位,是因为很多误解的出现正是由于每个人对同一个词、同一件事物、同一个概念的理解是有一定偏差的。我们看一个简单的场景。A和B在讨论使用缓存提高性能。A:这些统计指标放到缓存里就行了,页面定时

2021-08-28 20:59:13 644

原创 关于代码审查的一点体会

目录为什么做怎么做设定规则借助工具单人与团队迭代更新写在最后为什么做当前代码审查应该是所有团队的标配,只是有做的深入与否、效果好坏之分。如果你加入一个研发团队后,发现没有代码审查,那我的建议是:如果可以,那就建立代码审查机制否则就离开这个团队吧关于代码审查的好处,主要有:保证代码质量团队成员之间相互学习协助新成员融入团队怎么做一提到代码审查,可能大家想到的就是一堆人在一起,对着屏幕上的代码指指点点。其实代码审查是一个系统工程,要想做好,必须不断投入,把控好每个环节,并且不断更新

2020-10-08 21:30:40 444

原创 Python量化入门(1)- 开发环境的准备

Python应该已经占据了量化交易系统开发的半壁江山,大部分打着量化名义的课程都变成了Python教程,而忽略了能带来持续盈利的交易思想。Python作为开发交易系统的必知必会工具之一,重要性是毋庸置疑的,这一系列文章将会介绍在开发量化交易系统中用到的Python的基础知识,并结合实例加深理解。安装Python作为一门主流的开发语言,Python支持Windows、Linux和MacOS。...

2018-06-28 16:24:48 20555 2

原创 谈谈曲奇(Cookie)的作用

最近在使用南航的APP时,都会跳出一个提示: 说是要采集Cookie,并且承诺会保密存储。也许很多非技术的用户并不理解什么是Cookie,可是看到这种义正言辞的提示,也应该能知道Cookie看起来是一个很重要的东西,并且可能会和用户身份有关系。那Cookie到底是什么东西?又有什么作用呢?无状态的HTTP/HTTPS协议HTTP协议当前是几乎是所有应用甚至服务内部通信的标准协议,...

2018-06-21 23:36:43 2186

原创 量化交易系统任务框架的演化之路(5)用Kafka实现分布式计算任务框架

在之前的几篇文章中,都是基于单服务器系统讲解了任务框架的逐步演化,包含了效率、依赖关系、可管理性等几个方面的内容。可是随着量化系统的中因子、信号、数据预处理、日志监控等需求的不断增多,并且大家都知道量化交易系统,是对响应时间有要求的,尤其是对分钟级别甚至tick级别信号的检测等,那么这个时候,单机系统已经无法适应实际需求了,为了提高效率就要考虑通过分布式来提高效率。 在进行下一步之前,我们应该明...

2018-06-14 13:24:35 1479

原创 量化交易系统任务框架的演化之路(4)用Push方式解决任务之间的依赖

在上一篇文章《量化交易系统任务框架的演化之路(3)基于多状态的任务依赖解决》中提供了一种利用数据库作为状态数据交换媒介的解决方案,通过这种方法,实现了依赖和被依赖的任务之间解耦,但是问题也十分明显,就是轮询被依赖任务的状态的做法会带来无谓的计算资源的浪费,一旦任务过多,无论是对数据库还是对任务系统本身都会造成一定压力。我们称把这种方法称为Pull,也就是拉取的思路;那么与之对应的就是推送(Push...

2018-06-07 17:11:01 754

原创 量化交易系统任务框架的演化之路(3)基于多状态的任务依赖解决

在量化交易系统任务框架的演化之路(2)状态管理中为任务引入了一个状态,解决了任务的重入问题,那么还有一个悬而未决的问题:如何解决任务之间的依赖关系?那么今天就来看看如何基于多状态解决任务直接的依赖关系。 假定有两个每天执行一次的任务A和B,任务B要在任务A的执行完毕后才能启动。在设计时,应该考虑到:对于任务A来讲,任务B应该是透明,也就是说任务A不应该知道任务B的存在,这样即使任务B失效了...

2018-05-28 22:50:13 763

原创 量化交易系统任务框架的演化之路(2)状态管理

在上一篇文章(量化交易系统任务框架的演化之路(1)定时任务)的结尾提了三个问题,今天就来第一版的解决方案。 之前的实现方案中,所有任务都是无状态、无管理的,人工干预就比较麻烦。其实解决这个问题的方法很简单,那就是增加一个“状态”,看一下这个流程图:Created with Raphaël 2.1.2开始启动running == trueset running = true执行任务执行完毕se...

2018-05-25 13:47:41 1854

原创 量化交易系统任务框架的演化之路(1)定时任务

一个完善的量化交易系统不但包含了最基本的选股、择时、回测等基本的任务,而且还包含了众多了独立的任务模块,这些任务模块被设计成可插拔的独立任务。本系列文章将会分别讲解几种不同的实现这些任务模块的技术。定时任务定时执行是一种普遍采用的技术,容易理解也方便实现,很多开发框架都为快速的设定定时任务提供支持。那么接下来我们就具体来看看实现定时任务的技术手段。技术实现系统任务在...

2018-05-17 17:11:54 2297 2

原创 实例说明MongoDB存储的行情数据如何选择合适的Shard Key

概述当利用MongoDB的shard cluster技术做数据库扩展时,一个至关重要的点是要选择一个合适的shard key(片键),它是用来决定将数据在分片服务器上分配的策略。一个适用的shard key应该满足以下几个条件:数据均分 所谓数据均分,就是要保证需要扩展的那部分数据能够尽可能平均分配到数据分片上,以达到空间上的扩展目的。负载均分 负载均分是把应用访问的分片数据的负载...

2018-05-10 23:25:58 2303

原创 使用MongoDB存储Docker日志(续)

在上一篇文章《使用MongoDB存储Docker日志》中完成了Docker + Fluentd + MongoDB的基本配置。但是在实际的使用过程中,却发现Docker生成的日志并不会立即写入到MongoDB中,有大概1分钟左右的延迟。查阅Fluentd的文档得知,有一个flush参数可以控制日志的写入频率,默认的是60s。更改flush_interval参数就可以提高写入频率,具体更改如下:

2018-01-19 22:54:45 1063

原创 使用MongoDB存储Docker日志

日志是系统很重要的一个组成部分,通过日志可以及时发现系统中存在的问题,也可以为修复问题提供线索。Docker提供了多种插件方式管理日志,本文就对使用MongoDB存储Docker日志的过程做个记录。数据流Created with Raphaël 2.1.2开始Docker容器FluentDMongoDB结束Docker产生的日期 发送到 FluentD,然后FluentD在转存

2018-01-17 23:03:04 1741

原创 Docker绑定Remote API端口

Docker官方提供了Go、Python两种不同的SDK和HTTP形式的API,不熟悉Go语言,尝试了一下Python的SDK。Docker官方的Python SDK是针对2.x版本的,就直接在CentOS的Python2.7.5上进行了测试,可是却出现了错误:# pythonPython 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.

2018-01-12 14:51:45 2861

原创 解决Jenkins创建Docker Image后无法推送到私有Registry的问题

最近刚开始使用Docker,把常用的命令摸了一遍后,就想把镜像的build过程放到Jenkins上。具体过程就不说了,十分简单,只需要几条命令就可以了。可以在向私有registry推送时却报出了异常:docker push registry.mydocker.com/demo/small:latestThe push refers to repository [registry.my

2018-01-12 13:08:25 6451 5

原创 CentOS7 SELinux阻止MongoDB启动的问题

在CentOS7上安装了MongoDB,更改了默认的日志和数据文件路径后,SELinux阻止mongod启动。

2017-11-09 20:05:29 9960 7

原创 Python中的文本替换

文本替换是常用字符串的常用操作,利用正则表达式可以进行比较复杂的替换。

2017-10-16 13:44:48 16890 1

原创 CentOS 7更新时出现Multilib version problems

解决CentOS7系统更新时出现的Mutilib version problems。

2017-10-07 08:14:20 12881

原创 一个可用的股票回测系统需要考虑的问题(持续更新中…)

搭建一个真实可靠的回测可以对实盘操作具有一定的参考和指导意义,但是在系统的搭建过程中,有些坑可能会被反复踩到,这里把之前遇到的问题和大家分享

2017-09-25 23:35:52 5329

原创 Elasticsearch上手 - 遇到的问题

记录在使用Elasticsearch时遇到一些问题。

2017-02-26 11:26:37 14188 1

原创 空间换时间,轻松提高性能100倍

空间换时间的最常用场景就是缓存,为了提高性能可以设置不同类型的缓存

2017-02-24 13:04:24 2795

原创 一次查询性能提高40倍的经历

随着系统的持续增大,性能的优化随处可见。这里就通过一个实例,看下优化的过程。数据库为MongoDB,数据量为800万左右,

2017-02-08 23:44:57 3179

原创 Elasticsearch——利用Parent-Child关系解决大数据场景下的实时查询

在大数据的应用场景,经常会遇到数据字段无法确定的问题,还要在这些数据上进行多重筛选。Elasticsearch作为一个良好的解决方案,不仅可以完美满足查询需求,也可以满足大数据量下的实时性要求

2017-02-07 23:58:33 9998

原创 Elasticsearch上手——Python API的简单使用

尝试通过Python API操作Elasticsearch

2017-02-01 14:23:16 29617 4

原创 Elasticsearch上手——熟悉基本操作

通过Kibana提供的工具熟悉创建Index、索引文档、搜索文档的基本操作和命令。

2017-01-26 23:11:20 5214 1

原创 Elasticsearch上手——结合Kibana的安装配置

在使用之前,第一步就是要完成安装。Kibana作为一个有力的工具,大大方便了elasticsearch的使用,因此一同安装。

2017-01-26 14:34:35 11723 3

原创 Elasticsearch上手——几个基本概念

Elasticsearch的说明文档中,基本概念(Basic Concepts)一节中提到了一些术语,但是刚开始阅读时,有些一头雾水,结合实践经验,回过头来尝试重新理解一下。

2017-01-26 12:05:48 1166

原创 如何快速学习

这是一位新同事和我关于如何快速学习的邮件对话,重新进行了整理。现在有个困惑,之前你说在公司要快速的学习,可能之前接触java不是很多,在进行项目开发时,发现好多框架的代码看不懂,所以也就无从下手,感觉好多东西要学,而又不知道先学哪个,这样就又陷入了学习看书的情景,工作就耽搁了。比如今天在写代码时看到ModelAndView使用方法,如果要理解这个方法就又涉及到反射机制等知识,所以。。。。=====

2014-04-18 17:35:52 3316

原创 HTML5 Canvas遇到的几个问题

最近在一个项目中尝试通过Hybrid的方式开发客户端程序,来尽量降低由于程序业务逻辑或者显示界面的改变而来的升级困扰。Hybrid的方式就是本地代码和HTML5应用相结合的方式,其中本地代码负责和底层的硬件打交道,通过WebView提供的接口将硬件数据传递给运行其中HTML页面。这种方式很适合既要和硬件打交道,客户端业务逻辑页面也不是太复杂的应用。当然这篇文章不是讲Hybrid,而是在实现HTML

2013-09-17 12:24:16 17567 1

原创 Subversion配置子目录权限时的错误

昨天添加一个新的代码库,需要对子目录做读写权限的控制,本来是一件很简单的事情:Cent OS上配置Apache2 + SVN(续)实现对目录访问的精确控制可是添加完成以后,就出现了问题了。[repo:/]user1 = rwuser2 = ruser3 = r[repo:/client/]user2 = rw[repo:/server/]user3 = rw三个用户都可以正常Ch

2013-08-23 17:06:31 4202 1

原创 持续集成之路——使用SpringTestDbunit管理数据集的一个问题

在进行数据访问的单元测试,一般都会新增数据记录的情况,那么在设置数据集一般会是:然后在测试方法中,通过验证新增的记录数或者新增记录的内容,确保被测试方法正确执行: @Test @DatabaseSetup("user/UserService-addUser-dataset.xml") public void testAddUser(){ User us

2013-08-22 09:18:20 3726

原创 持续集成之路 —— Mock对象引起的测试失败

今天遇到了一个很奇怪的问题,纠结了好久。在和同事念叨这个问题时,突然想到了问题所在。        问题现象: 在一个Service的单元测试类中有八个测试用例,单独运行时都可以正常通过。可是一旦一起运行时,总是会有固定的两个测试失败。        问题原因:有一个测试用例mock了Service依赖的一个Dao对象,之后的用例再使用这个Dao对象时,就使用了mock,而不是Spring初始化的

2013-08-12 15:14:23 4560

原创 持续集成之路——服务层的单元测试

在完成了数据访问层的单元之后,接下来看如何编写服务层(Service)的单元测试。服务层应该是整个系统中得重中之重,严密的业务逻辑设计保证了系统稳定运行,所以这一层的单元测试也应该占很大比重。虽然一般情况下单元测试应该尽量通过mock剥离依赖,但是由于在当前的项目中数据访问层使用spring-data框架,并没有包含太多的逻辑,因此我就把服务层和数据访问层放在做了一个伪单元测试。        一

2013-07-24 00:07:53 4799

原创 持续集成之路——数据访问层单元测试遇到的问题

在编写数据访问层的单元测试时,遇到不少问题,有些问题可以很容易Google到解决方法,而有些只能自己研究解决。这里分享几个典型的问题以及解决方法。先交代一下用到的测试框架 Spring Test + SpringTestDbUnit + DbUnit。一、先说一个低级的问题。Spring通过标签提供对内存数据的支持,形如:可是在启动时,却总是提示错误:Caused by: org.xml.sax.

2013-07-19 00:09:42 15181

原创 持续集成之路——数据访问层的单元测试(续)

在上一篇中,完成了对测试用数据源的配置。下面继续构建可运行的测试。        三、使用DBUnit管理数据        测试的维护一直是我比较头疼的问题,期望可以有一个比较易于维护和可复用的方法来管理这些数据。在没有更好的方法之前,暂时选用DBUnit。(反思:其实我一直在为没有发生的事情担心,使得事情根本没有进展。从已存在的、最简单的地方入手,才是正确的处理方式。)        在pom

2013-07-15 14:21:17 3481

原创 持续集成之路——数据访问层的单元测试

作为保证项目质量的重要工具持续集成一直是一个热议的话题,也被业界积极采用。我也试图记录自己在尝试过程中遇到的点点滴滴。单元测试作为持续集成的基石,是绝对不可或缺的部分。如何写好单元测试?如何让代码变得具有可测试性?如何维护单元测试?这些问题萦绕心头已久,现在从数据访问层入手,逐步深入,记录所思所为。

2013-07-15 06:45:00 10636 6

原创 JavaScript在Android的WebView中出现一个问题

今天被一个问题困扰,有一个页面在浏览器(无论是手机还是PC)上运行良好,而通过WebView就出现了问题,有两个值得计算始终出错。于是就通过alert,把这个值显示出来,发现和浏览器上计算的结果差了很多,本来是正数,却变成了负数。仔细比对发现,其中一部分数字被抹掉了,这些数字都是通过parseInt由字符串转化而来的。而被抹掉的值,和其他正常的数字唯一区别是,它们都是以0开头的,比如“04903”

2013-05-22 11:14:33 2658

原创 关于建立公司内部交流分享活动的一点尝试

如今的世界变化太多,而一个人的精力和时间总是有限,可是如何快速地提升自己或者整个团队水平是一个亟待解决的问题。在公司内部开展定期地交流活动,一直是我十分想做的事情,最近在公司的大力支持下的终于得以实现。      一、为什么要开展交流活动?        1. 开拓视野,分享经验。        作为技术人员,我们更倾向于自己解决问题,很多时候我们在一个问题上纠缠太久,而旁边的同事一句话,却让我们

2013-05-20 23:32:03 12540 1

原创 Tortoise SVN出现OPTIONS of '': could not connect to server错误

今天把PC从一个有代理的环境中移了出来,开机后的第一件事情就是把所有应用中的代理设置去掉,当然也包括TortoiseSVN。通过TortoiseSVN的Context Menu --> Settings -->Network ,把Enable Proxy Server前面的勾去掉。正常应该就没有问题了,可是更新本地工作目录时,还是出现了OPTIONS of '': could not connec

2013-05-17 10:30:43 25008 2

原创 WPF遇到的一个小问题

这两天又开始学习在VS2008种用WPF编写Windows应用程序,遇到了不少小问题。下面几个错误困扰了好久:已定义了一个名为“InitializeComponent”的具有相同参数类型的成员已经包含“_contentLoaded”的定义...类似的几个错误。原因:由于这几个控件是从另外一个复制过来的,xaml文件 x:Class后面的值没有改过来,还是原来控件对应的类。

2012-11-20 01:02:13 3352

空空如也

空空如也

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

TA关注的人

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