buguge - Keep it simple,stupid

知识就是力量,但更重要的,是运用知识的能力why buguge?

导航

2016年12月12日 #

SqlHelper中IN集合场景下的参数处理

摘要: 拼sql的方式不可取,会带来sql注入风险。而sqlhelper会把你参数值当成字符串,不会对其做转义。所以,不管怎么对参数值处理,都还是一串字符串。按这样的原理往下想,只能是将单号分开来传递给sql了。 阅读全文

posted @ 2016-12-12 21:01 buguge 阅读(590) 评论(0) 推荐(0)

2016年12月2日 #

遍历dynamic的方式

摘要: 一、遍历ExpandoObject 二、对于dynamic是反序列化得到的对象时: 阅读全文

posted @ 2016-12-02 16:45 buguge 阅读(2515) 评论(0) 推荐(0)

2016年11月21日 #

.net(c#)版RSA加密算法,拿走不谢

摘要: 今天有同学对接一个支付平台,涉及到RSA的签名和验签。由于对方是java的sdk,翻成c#语言时,搞了半天也没搞定。网上搜的东西都是各种copy还不解决问题。 碰巧,我之前对接过连连银通的网银支付和代付。连连那边提供了c#版的RSA加密算法,立即破了这位同学的难题。在这里也分享出来,以便大家日后备用。 阅读全文

posted @ 2016-11-21 19:20 buguge 阅读(1711) 评论(0) 推荐(0)

2016年10月21日 #

系统中生成编号/单号问题的实现方案讨论

摘要: 1. 常规实现方案:代码逻辑为从数据表里取出现有最大订单号,转换后得到新的订单号,将新的订单insert到表里。 2. 考虑并发,在1的基础上,加lock,以避免多个线程同时执行这段逻辑,导致订单号重复引起主键冲突 3. 对于2来说,这种方案仅适用于单应用部署的情况。 像电商的订单表,往往是好多系统都要生成订单, 那么,最终到数据库层级时, 也仍然会导致订单号重复引起主键冲突。 所以,要做数据库级别的锁表和事务控制。 4. 方案3的另一个版本:将生单逻辑从各业务系统解耦,封装起来单独部署。 然后提供rpc,供各业务系统调用。 这种方案的缺点是,单点部署会有风险。 阅读全文

posted @ 2016-10-21 09:14 buguge 阅读(621) 评论(0) 推荐(0)

2016年10月19日 #

数据库“锁”事一例:并发情景下重复主键问题方案讨论

摘要: 在做的一个账单计息功能,其中,账单表的主键是BillId,varchar类型,BillId取值形如B0000001,生成规则是每次新增记录是先从账单表里计算出最大的BillId数字,然后+1再转换后作为新增记录的BillId。例如,B0000001、B0000002。 逻辑很简单,但考虑到并发,技术上就要费点心了。 阅读全文

posted @ 2016-10-19 16:12 buguge 阅读(1339) 评论(0) 推荐(0)

2016年10月18日 #

MySql.Data.MySqlClient.MySqlException: Parameter ‘@maxid’ must be defined

摘要: 本文涉及到的mysql知识点: mysql中的if条件语句用法: IF(expr1,expr2,expr3) mysql使用变量(mysql中变量不用事前申明) mysql事务 testcase 阅读全文

posted @ 2016-10-18 18:45 buguge 阅读(1363) 评论(0) 推荐(0)

2016年10月8日 #

摇钱树运营小工具UI设计.vsd

摘要: 去年,我负责公司的一个互联网投融资平台。系统运营过程中,业务和客服那边不断的反馈一些事情让技术这边协助实现。例如,土豪客户忘记登录密码后更愿意选择搭讪客服MM;再比如,客户多次登录导致账号被锁定,就反映给客户MM处理;再比如,运营经理定期索要到期投资报表,而系统后台现有的报表不能完全满足他们的需求。 每次处理这样的事情,开发人员都要忙上一阵子。 阅读全文

posted @ 2016-10-08 15:08 buguge 阅读(386) 评论(0) 推荐(0)

2016年9月27日 #

enum操作--获取枚举里的最大值

摘要: 一个应用系统,如果程序里没有任何enum的使用,我认为它的可读性是有待商榷的。 求枚举里的最大/最小枚举值, 其实是对Array进行操作: Enum.GetName方法 Enum.GetName(typeof(EnumTest), 2) //返回值是"ddd" Enum.GetName(typeof 阅读全文

posted @ 2016-09-27 16:02 buguge 阅读(1582) 评论(0) 推荐(0)

2016年9月8日 #

pl/sql里的exists和in的差别

摘要: 在pl/sql里,用exists时,要注意关联字段的类型的一致。 阅读全文

posted @ 2016-09-08 20:07 buguge 阅读(668) 评论(0) 推荐(0)

2016年9月1日 #

那些曾经的转正工作总结...

摘要: 今天小组里一小伙伴转正,突然翻起了自己提交过的一些试用期工作总结,特记录一下。蛮有意思的,也藉此告诫自己,不要忘记自己成长的点滴。 阅读全文

posted @ 2016-09-01 13:16 buguge 阅读(920) 评论(2) 推荐(0)

2016年8月3日 #

不知道张(zhāng)雱(pāng)是谁?你out了!

摘要: 张(zhāng)雱(pāng)是谁?也许你已经听说过了,也许你还没听说过呢,不过你一定听说过老刘——刘强东,没错,这二人是有关系的,什么关系呢... 阅读全文

posted @ 2016-08-03 16:31 buguge 阅读(1194) 评论(0) 推荐(1)

2016年8月2日 #

Thread.Sleep引发ThreadAbortException异常

摘要: 当站点应用程序池回收或遇到其他未捕获的异常时,线程会被Abort,这时,当线程里的代码再被执行时,就会抛出ThreadAbortException异常。 阅读全文

posted @ 2016-08-02 15:36 buguge 阅读(3341) 评论(0) 推荐(0)

2016年7月29日 #

运维一个应用系统并不容易

摘要: 项目并非实现产品经理的需求就完事了。 当项目投产后,在用户使用的过程中,会遇到千姿百态的问题。相当长的一段时间里,开发人员可能会疲于应付处理这样的问题。 运维一个应用系统不容易呀,那么,为什么会投入这么多时间呢?可能包括用户对业务逻辑的不够清楚,包括程序实现的bug,包括逻辑的复杂,包括线上运行过程中突发的事故。 而这些,往往并不在产品经理的需求范畴里, 所以,在系统实现方面,还应考虑应用系统的运维功能 阅读全文

posted @ 2016-07-29 18:43 buguge 阅读(531) 评论(0) 推荐(0)

2016年7月27日 #

为什么我们的沟通这么低效?

摘要: 这仅仅只是一个案例,大家在工作中,可能经常出现这样的沟通,大家面红耳赤,也解决不了问题。因为各自局限于自己的系统里,总觉得我需要什么你就可以给我,殊不知别人未必明白你做的东西。 阅读全文

posted @ 2016-07-27 15:46 buguge 阅读(539) 评论(0) 推荐(0)

2016年7月8日 #

2种方式解决nginx负载下的Web API站点里swagger无法使用

摘要: Web API接口站点,引入了swagger来实时生成在线的api文档,也便于api接口的在线测试。发布到生产环境,问题出现了。——线上部署的站点是用nginx做的3个节点的负载。nginx配置了公开的域名,并且与3个节点iis上的站点做了映射。3个单节点的端口不是默认的80,由此问题产生了 阅读全文

posted @ 2016-07-08 17:25 buguge 阅读(4875) 评论(3) 推荐(0)

2016年6月12日 #

分布式环境下的数据一致性问题的方案讨论

摘要: 通过一个比较常见的例子,让大家更深入的了解一下分布式系统设计中关于数据一致性的问题。如何设计我们的系统,在满足用户体验的基础上,来有效保证数据的一致性。 阅读全文

posted @ 2016-06-12 21:55 buguge 阅读(481) 评论(0) 推荐(0)

2016年6月6日 #

static,你还敢用吗?

摘要: 我用FF的HttpRequester测试开发组里一个同学发布的Web API接口,遇到了一个奇怪的问题。 我测试边界情况时,第一次调用响应的结果是正常的,但当再次及以后的请求时,却返回了异常“System.ObjectDisposedException: 无法访问已释放的对象”。 每次重新发布后,都是第一次请求是正常的,之后的请求就出现这个异常 阅读全文

posted @ 2016-06-06 20:11 buguge 阅读(660) 评论(0) 推荐(3)

2016年5月31日 #

分离EF connectionString里的db连接串

摘要: 创建EF模型后,自动生成的connectionString包括db连接串,用户名尤其密码明文显示不安全, 同时,对于像olap这样的项目,太多的connectionString,不利于统一管理db连接串。 阅读全文

posted @ 2016-05-31 14:47 buguge 阅读(2270) 评论(0) 推荐(1)

2016年5月25日 #

swagger:The World's Most Popular Framework for APIs.

摘要: Swagger is a simple yet powerful representation of your RESTful API. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability. Swagger helps companies like Apigee, Getty Images, Intuit, LivingSocial, McKesson, Microsoft, Morningstar, and PayPal build the best possible services with RESTful APIs. 阅读全文

posted @ 2016-05-25 17:52 buguge 阅读(543) 评论(0) 推荐(0)

2016年5月17日 #

show一下自己的文档编写功底

摘要: 以我为例,我绝对相信,“才华”和颜值。这里我要秀一下我的文档编写能力。在我这十年的工作生涯里,的确有数不清的次数,我的同事或上司,对我设计和制作的文档表示称赞。 阅读全文

posted @ 2016-05-17 21:45 buguge 阅读(557) 评论(0) 推荐(0)

2016年5月12日 #

好脑袋不如烂笔头-Quartz使用总结

摘要: Quartz是Java平台的一个开源的作业调度框架。Quartz.net是从java版本移植到.net版本的。.net项目使用Quartz来执行批处理等定时任务非常方便。 阅读全文

posted @ 2016-05-12 11:53 buguge 阅读(3511) 评论(0) 推荐(0)

2016年5月5日 #

IBatisNet:让insert操作返回新增记录的主键值

摘要: 通过insert语句的selectKey子元素来返回insert命令生成的记录的主键值 阅读全文

posted @ 2016-05-05 18:50 buguge 阅读(1183) 评论(0) 推荐(0)

2016年4月1日 #

【团队分享之二】IT团队绩效提升的一些见解

摘要: 这是我在我们开发团队所做的一次分享,同时也分享给博客园里的朋友们。大纲:1.什么是团队 2.目标管理 3.团队分工与领导 4.通过案例来分析问题, 阐述何提升业绩 阅读全文

posted @ 2016-04-01 11:05 buguge 阅读(407) 评论(0) 推荐(0)

2016年3月25日 #

我的ef连接mysql之旅

摘要: install-package ef6,mysql.data;增加provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d";修改edmx Schema的Provider="MySql.Data.MySqlClient" 阅读全文

posted @ 2016-03-25 22:30 buguge 阅读(2673) 评论(0) 推荐(1)

2016年3月22日 #

网站nginx负载下因程序错误导致多节点重复处理请求的解决过程

摘要: 这是我上周工作过程中的一次解决问题的过程。解决的是站点在nginx负载下,因为程序异常导致的请求被多节点重复处理的问题,进而影响到系统对客体验。 阅读全文

posted @ 2016-03-22 20:12 buguge 阅读(2589) 评论(0) 推荐(0)