会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
Math & Code & Wave
分析、分享简洁有趣的思路
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
下一页
2018年5月6日
不要滥用面向对象,写出难以阅读和修改的代码
摘要: 笔者参与过一些完全以面向对象为设计思想的项目,不过感觉都不太好,例如,它们往往有非常之多的硬编码和隐藏的逻辑,导致小小的修改往往会出现意外的问题;因为对象调用跳转太多,代码也很难阅读和修改,调用关系很难理解。 个人认为,这不但是写代码的人不注意的问题,而是面向对象这种方法,鼓励了非常之不好的代码写法
阅读全文
posted @ 2018-05-06 21:19 dearplain
阅读(927)
评论(0)
推荐(0)
编辑
2018年3月11日
goloader - golang动态加载的实现
摘要: github地址:https://github.com/dearplain/goloader 这里有以前的一些思路:http://www.cnblogs.com/dearplain/p/8145985.html,不过改了好多,具体还是要看代码。 这个动态加载库是很有意思的项目,它直接重用了golan
阅读全文
posted @ 2018-03-11 12:21 dearplain
阅读(11786)
评论(1)
推荐(0)
编辑
2018年2月3日
逻辑引擎、工作流、CMDB小感
摘要: 工作流是啥? 在界面上画画点点就能生成代码,这是很吸引人的事情,也是很多自动化工具追求的目标。工作流就是这么一个东西,通过定义流程和输入,就能实现你想要的东西,不需要编写代码。 工作流的实现 通过解析流程图,可以知道执行什么逻辑、输入什么数据和生成什么数据。 工作流和逻辑引擎为什么没有真正在代码的世
阅读全文
posted @ 2018-02-03 15:22 dearplain
阅读(1228)
评论(0)
推荐(0)
编辑
2018年1月12日
golang其实也可以优先调度
摘要: 线上一个服务有个严重问题,处理消息数1k/s提升不上去,经过查看是阻塞在了一个新加的函数上,这个函数负责收集信息,送到一个channel上,再由某个函数处理,这个处理函数很简单,看不出任何问题,最大的特点是为了不加锁,只起一个goroutine。 问题很明显了,只起一个goroutine,当系统繁忙
阅读全文
posted @ 2018-01-12 16:11 dearplain
阅读(3093)
评论(0)
推荐(0)
编辑
2017年12月30日
golang动态加载原生代码思路
摘要: update: 实现在此,欢迎star: https://github.com/dearplain/goloader 实现后的一些介绍:http://www.cnblogs.com/dearplain/p/8543804.html golang动态加载原生代码思路(非plugin,非so文件。使用m
阅读全文
posted @ 2017-12-30 11:55 dearplain
阅读(6611)
评论(0)
推荐(1)
编辑
2017年12月9日
boltdb的实现和改进
摘要: 整个代码不是很复杂,可以从代码中理解如何实现。 特点:btree,很小巧,但实现了完整事务机制,稳定,即使丢电也不会导致数据库错误。 整个结构如下: meta page (前两页) > freelist page (第三页) | > bucket page (属于leaf page 开始是第4页)
阅读全文
posted @ 2017-12-09 16:02 dearplain
阅读(2020)
评论(2)
推荐(0)
编辑
2017年12月6日
如何保证数据掉电不损坏?
摘要: 1. 建议使用ext3 ext4等日志式文件系统,并打开journal。 2. 文件系统无法保证write是原子的,所以,建议直接使用一些优秀的数据库保存数据或者配置,比如sqlite。 sqlite可以考虑打开synchronous = FULL, fullfsync = 1。如果还是出现文件损坏
阅读全文
posted @ 2017-12-06 17:15 dearplain
阅读(1038)
评论(0)
推荐(0)
编辑
2017年11月30日
msgpack库的神奇用法
摘要: 一般来说,我们接收到消息,然后通过消息队列发送消息给worker的时候,会有些额外的字段,这些字段不属于实际的消息,我们想把实际的消息和发给worker的消息分开定义。这时候我们会把worker消息中一个字段定义为interface{}或者object,这个字段表示任意的实际消息。 一切看起来很完美
阅读全文
posted @ 2017-11-30 16:05 dearplain
阅读(9581)
评论(0)
推荐(0)
编辑
2017年11月25日
消息推送与同步协议的思考
摘要: 同步状态和消息推送,几乎是每个app或者设备都需要的,设计一个省流量,能简化两端逻辑,能应对业务增长的框架尤为重要。 我认为,以下方法不够好: 1.每一个状态都设计一个消息,导致每增加一个状态,服务端都需要改动。 2.每次上线后都请求一次所有类型的最新的消息。 3.最新的消息只推送一次就完事。 第一
阅读全文
posted @ 2017-11-25 22:25 dearplain
阅读(1085)
评论(0)
推荐(0)
编辑
2017年11月19日
cassandra的gc调优
摘要: 我们用的是cassandra3.7官方的docker镜像,在生产环境发现有一个小时一次停顿的现象。我猜测是java gc的原因,于是看了cassandra的gc日志,果然发现有每小时长达300ms-2s的停顿。 经过研究发现是netty的原因,netty用了direct memory,因为是通过mm
阅读全文
posted @ 2017-11-19 11:33 dearplain
阅读(1581)
评论(0)
推荐(0)
编辑
上一页
1
2
3
4
5
下一页