- 博客(120)
- 资源 (27)
- 收藏
- 关注
原创 推送开权引导的技术内幕
以上介绍了APP消息推送开权提示的背景和实现逻辑,并说明了服务端如何通过流程引擎实现对业务场景的隔离,从而达到降低维护、测试成本,抑制代码腐化的目的。事实上,业务场景隔离本身并不复杂,方法也很多,除了本文介绍的流程隔离外,还可以借助接口隔离,依赖包隔离,甚至微服务隔离等多种形式。核心问题在于如何预知业务的潜在变化,提前合理设计,而不要等变化发生后才去重构,事后重构往往意味着不重构。限于水平,文尽于此,欢迎大家批评指正。
2024-02-19 14:18:26
1007
1
原创 ChatGPT 股市知识问答
在选择和应用量化交易策略时,需要充分考虑个人的投资目标、风险承受能力和市场环境等因素,并进行充分的测试和验证。然而,对于个体投资者而言,量化交易策略的开发和执行需要一定的专业知识和技术,并需要谨慎评估和管理风险。同时,市场情况是变化的,策略在未来可能会失效,因此策略的使用应慎重,并及时进行调整和更新。这只是一部分常见的关键指标,实际上,股市交易中有很多指标可以用于分析和决策,具体使用哪些指标还要根据个人的投资目标和风险偏好来决定。策略开发和测试:基于收集到的数据,通过分析和建模,确定适用的指标和规则。
2024-01-17 14:24:01
808
转载 漫画:什么是动态规划?(整合版)
每一次迭代,都会计算出多一级台阶的走法数量。有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同。需要注意的是,当金矿只有5座的时候,动态规划的性能优势还没有体现出来。在外层的每一次迭代,也就是对表格每一行的迭代过程中,都会保留上一行的结果数组 preResults,并循环计算当前行的结果数组results。如果map中存在,就直接返回结果,如果map中不存在,就计算出结果,存入备忘录中。对所有可能性做遍历,排除那些使用工人数超过10的选择,在剩下的选择里找出获得金币数最多的选择。
2023-11-10 10:16:19
146
原创 maven使用经验总结
maven是java开发常用的构建工具,maven的依赖管理、冲突排包等工作又比较耗时费力,因此了解maven原理,熟悉maven的使用,可以有效提高开发人员的工作效率。本文通过介绍maven的原理,总结日常使用经验,分享出来,希望对大家有所帮助。
2023-07-17 11:33:08
836
转载 Zookeeper 里 Kafka 的文件结构
https://cwiki.apache.org/confluence/display/KAFKA/Kafka+data+structures+in+ZookeeperKafka data structures in Zookeeperkafka 使用 zk 来做 HA。有很多集群管理的元数据是保存在 zk 的 data folder 里面。理解这个结构有助于深入理解 kafka 整个架构的设计和...
2018-03-30 11:30:50
646
原创 Java trouble shooting
JVM1. 内存泄漏2. GC3. 性能优化JVM 运行的三种模式 java -Xint -version interpreted mode 解释执行java -version mixed mode fastest, why? 混合模式, 最快java -Xcomp -version compiled mode 编译模式Hotsp
2017-10-26 20:34:46
715
原创 Kafka 和 EMS 消息批量 ack 的实现
我们现在用 kafka和 ems两种方式来接收外部消息,之前没接收一条消息就 ack,系统当前消息量大概接近亿级每天,集中在工作时间的八到十个小时。这意味着每个消息都 ack会消耗大量网络资源,拖慢消息处理速度。因此决定用批量 ack来降低网络消耗。实现过程中碰到一个问题,假设没10条 ack 一次,那如果有37条数据,意味着前10条可以成功 ack,而后 7条
2017-08-31 20:39:37
1690
原创 Kafka stream 开发碰到的问题:offset commit 失败 与 数据不准确
Kafka stream 开发碰到的问题:offset commit 失败 与 数据不准确
2017-08-30 21:02:59
15031
1
原创 java 虚拟机参数设置堆大小的分配可能导致内存暴增
java 虚拟机参数设置堆大小的分配可能导致内存暴增本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:碰到的问题解决方案原理碰到的问题 java 虚拟机参数设置可以修改虚拟机的堆大小,栈大小,新生代,幸存代的比例等等。可以参考博文: Java虚拟机详解—-常用JVM配置参数最近同事在做 java vm tuning 过程中碰到一个问题,
2017-07-15 22:22:39
4768
1
原创 Java synchronize 与 static synchronize 方式对比
另一篇博文写的比我这个好,争取有一天可以写的跟他一样清楚,有需要的同志移步: http://blog.youkuaiyun.com/cs408/article/details/48930803package Joey.Java.Test;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executor
2017-07-15 21:31:31
1531
原创 从 SVN 到 git bucket
1. 打开 git for windows2. cd 到你的 svn 源码所在的目录 如果源码还不存在你本地, 执行: git svn clone --trunk=Branches/SdrSkynetService https://servername/projectfolder ProjectName3. git init 初始化 pwd 保证当前工作目录就是项目根目录4. gi
2016-09-13 22:29:10
1775
转载 .Net内存泄露原因及解决办法
1. 什么是.Net内存泄露(1).NET 应用程序中的内存您大概已经知道,.NET 应用程序中要使用多种类型的内存,包括:堆栈、非托管堆和托管堆。这里我们需要简单回顾一下。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。在运行库的控制下执行的代码称作托管代码。相反,在运行库之外运行的代码称作非托管代码。COM 组件、ActiveX
2016-09-13 22:27:33
3865
原创 数据库基础
ALTER TABLE [dbo].[SaaS_Template] ALTER COLUMN [TemplateKey] nvarchar(200) NOT NULLALTER TABLE [dbo].[SaaS_Template] DROP CONSTRAINT UQ__SaaS_Tem__0E5F3CB77C83E4C6ALTER TABLE [dbo].[SaaS_Template
2016-09-13 22:13:07
587
原创 MSTest 无法退出
最近给系统配置持续集成工具. 我们用 Stash 做源码管理, 用 TeamCity 来做编译, 并通过 TeamCity 来分析单元测试覆盖率和代码质量, 把结果发布到 sonar 页面上面. 在 TeamCity 里面, 我们配置了 VS Test Runner --> MSTest 来运行单元测试. 现在的问题是我们所有的单元测试都能够通过. 但是 MSTest.exe 运行完不能正常退出,
2016-07-26 23:57:35
986
原创 github: reset 与 rebase, pull 与 fetch 的区别
reset 与 rebase完全不同的两个命令.reset的意思是回退你的代码到某一个具体的版本,rebase是指回退你个commit到某一次commit. git-reset 会修改 .git/refs 目录和 .git/index 文件. 但它不会修改任何和你的 commit 相关的东西. git-rebase 则会试图去修改你已经 commit 的东西, 比如想要覆盖你的 c
2016-06-09 15:15:46
4362
翻译 Quartz.NET c# 教程 - 课程六:CronTrigger
如果你需要类似日历时间的触发工作: 像 每周五中午, 工作日早上9点, 或者每周一早上9~10点间每隔5分钟之类的, 你可以选择用 CronTriggers.和 SimpleTrigger 一样, CronTrigger 也有一个 startTime 来指定启动时间和 endTime 来指定结束时间.Cron ExpressionsCron-Expressions 用来配置
2016-06-02 22:12:05
2883
翻译 Quartz.NET c# 教程 - 课程五:SimpleTrigger
如果你只需要你的 job 在某个特定的时刻执行一次, 或者在某一个时刻重复执行几遍, SimpleTrigger 完美解决你的需求.SimpleTrigger 的属性包括以下几点: start-time, end-time, repeat count, 以及 repeat interval. repeat count 可以是0或者正整数, 或者 SimpleTrigger.Repe
2016-05-29 21:15:17
5259
翻译 Quartz.NET c# 教程 - 课程四:Triggers
和 jobs 一样, triggers 用起来也简单, 但是也有一些定制化的选项需要了解, 否则很难充分发挥 Quartz.NET 的功能. 另外, 也有很多不同类型的 trigger, 可以满足各种 scheduling 需求.Common Trigger Attributes所有的trigger 类, 除了有唯一的 TriggerKey 属性外, 还有别的共同属性. 这些属性值
2016-05-26 22:34:20
2677
转载 Task and Await: Consuming Awaitable Methods
Task and Await: Consuming Awaitable MethodsThere's a lot of confusion about async/await, Task/TPL, and asynchronous and parallel programming in general. I've had some requests to dive into
2016-05-22 22:16:38
795
原创 Visual Studio 使用技巧, 功能与特性
Visual Studio 有很多很强大的功能, 但是在我们日常开发中并不常用, 或者我们确实有需要这些功能, 但是由于没有系统研究过 VS, 以至于忽略了它的这些既有功能. 在这篇文章里,我试图记录下 VS 中那些有趣, 强大的编程开发功能, 特性.1. 快捷键1.1 Ctrl + Shift + S保存所有修改. 不只是保存当前文件的改动.1
2016-05-22 11:22:19
3005
原创 Visual Studio 特性进阶
Visual Studio 有很多很强大的功能, 但是在我们日常开发中并不常用, 或者我们确实有需要这些功能, 但是由于没有系统研究过 VS, 以至于忽略了它的这些既有功能. 在这篇文章里,我试图记录下 VS 中那些有趣, 强大的编程开发功能, 特性.1. 快捷键1.1 Ctrl + Shift + S保存所有修改. 不只是保存当前文件的改动.1.2 Ctrl + Shift +
2016-05-22 11:01:27
939
翻译 Quartz.NET c# 教程 - 课程三:Jobs 和 JobDetails
jobs 很容易实现. 关于它,你还需要了解 Execute(..) 和 JobDetails.当你的 job 类知道需要做什么操作后, Quartz.NET 就需要知道执行该 job 实例的一些属性(attribute). 这些属性可以通过 jobdetail 来定义.JobDetail 实例用 JobBuilder 类来构建. JobBuilder 允许你通过 fluent i
2016-05-17 21:49:39
9171
翻译 Quartz.NET c# 教程 - 课程二:Jobs 和 Triggers
Quartz API 的主要接口和类如下:IScheduler - 和 Scheduler 交互的主要接口.IJob - 自定义的执行模块所要继承的接口, scheduler 会调用这个实现该接口的模块.IJobDetail - 用来定义 Job 实例.ITrigger - 用来定义 schedule 的模块, 根据该模块中的 schedule 来决定哪个 job 应该执行.JobBuilder - 用来构建 JobDetail 实例.TriggerBuilder - 用来构建 Trigger
2016-05-09 22:36:35
7717
原创 正则表达式规则
基本规则表达式中输入的字符就是我们希望从指定字符串中找到的字符。那么,通常来说,如果我们直接输入字符串,而不加任何匹配条件的话,那么指定字符串中,任何一个相等的字符都应该是会被找到。那么我们可能会需要怎样的匹配条件呢?常见的比如:字符串以某个字符(单词)开头,字符串以某个字符(单词)结尾,只匹配单词边界位置的某个字符,不匹配单词边界位置的某个字符。这四个条件,刚
2016-03-17 13:54:57
441
原创 Parallel dev: .NET SynchronizationContext 二三事
原文地址:https://msdn.microsoft.com/magazine/gg598924.aspx今天开发遇到一个问题,stack overflow上有很简单的解决办法,但是我同事发现用那个解决办法有可能导致ui操作无法在ui线程上执行。具体问题如下:1. TaskScheduler scheduler = TaskScheduler.FromCurrentSyn
2015-11-04 21:37:32
1317
原创 低可见性覆盖高可见性
本文只讨论 public, protected, private, internal 和 virtual一起使用时的问题。1. 公共基类定义 public virtual 方法, 子类覆盖时不能降低其可见性。namespace AccessModifier{ class Program { static void Main(string[] args)
2015-10-21 11:17:20
877
原创 一句话设计模式
仁者见之谓仁,智者见之谓智。百姓日用而不知,是故君子道鲜矣。 易则易知,简则易从 《周易-系辞上传》1. 桥接模式桥接模式中的两个设计原则是a. 开放封闭原则 b. 单一职责(单一变化)原则桥接模式本意在于将接口和实现分离,使得接口和实现能够单独演进。在Skynet 框架中需要考虑修改接口对用户既有实现的影响,因为随着框架演进,可以认为修改接口的动作必然会发生。
2015-05-26 11:14:22
686
原创 ListCollectionView.Refresh issue
最近项目里面发现的一个bug。我们用 ListCollectionView 作为ListBox 的数据源,但是发现在增加和删除 ListCollectionView 中的数据时,它和它的 SourceCollection 数据不同步。 在删除的时候 SourceCollection 已经没有那一项,但是 ListCollectionView 中还是有。 本来以为是 ListCollectionView 的bug, 所以就尝试每次修改数据内容时都 CommitNew(), CommitEdit(), 然后 R
2015-05-19 22:30:52
1478
转载 C# 动态实现接口
Unity Framework 中的一个类, 我也是醉了// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.using System;using System.Collections.Generic;
2015-04-11 21:04:26
5509
原创 C# Unity 对于泛型接口的支持
所以用户实现我们框架开放出去的接口后,我们只能通过反射来获取用户的实现类。这样一个问题就是我们虽然定义了接口, 但其实我们依然依赖于用户的实现,同时框架启动异常的慢。
2015-03-21 22:45:04
8822
1
转载 The C# Memory Model in Theory and Practice
The C# Memory Model in Theory and PracticeIgor Ostrovsky This is the first of a two-part series that will tell the long story of the C# memory model. The first part explains the guaran
2015-03-05 21:21:30
1421
System.Reactive.dll Rx.dll + Documents
2014-08-26
C#键盘监听客户端
2013-07-13
java动态菜单
2012-10-31
net.sf.fjep.fatjar_0.0.31.jar
2012-10-29
java 文档转换
2012-06-25
SSH开发所需的jar包
2012-05-02
java 俄罗斯方块 源代码
2012-04-16
arm2410实验指导
2011-12-15
面向对象实验
2011-12-05
webgl specification 中文翻译
2011-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人