方法-技巧与案例
bigzhangbig
互联网、Java、golang、python、数据分析、数据挖掘、推荐系统
展开
-
理解之后的模仿或者原有基础上的改造是对高效编程学习的最高效的方法
理解之后的模仿或者原有基础上的改造是对高效编程学习的最高效的方法; 比如:如果你想学习一个NIO-SErver,那么就可以去githup上面找 一些现成的代码库进行学习,然后理解后,改造它,写一个自己的;原创 2017-03-25 10:49:19 · 384 阅读 · 0 评论 -
网络编程为什么能异步来做
网络编程为什么能异步来做: 因为网络IO channel支持异步(文件channel是不支持异步IO的); 网络IO channel为什么支持异步 因为操作系统帮我们缓存了从网络上接收到的数据,而且当我们监听网卡事件后,操作 系统可以提醒我们有数据到了(在应用程序发送请求后,应用程序只需要订阅网卡事件就行,然后可以去做 其他事情,这就是异步); 因为缓存的存储一定会有限制,那么就需要一个原创 2017-03-25 10:46:28 · 580 阅读 · 0 评论 -
用实施驱动优化
实现驱动优化: 去做,去实施,然后才有优化,如果只是一味的优化,不去实施,那么永远都上不了线;永远都没有实质的进展; 恐惧驱动学习: 什么不会就应该学什么,害怕什么就要行动去学,多尝试,多花费写时间,总是能学会的。 逃避,找借口,总是一事无成;原创 2017-03-25 10:46:10 · 574 阅读 · 0 评论 -
论解决问题的方法论
问题原因分析: 通过各种手段,分析出当前问题的各种弊端,缺点,并从中找到真正影响比较大的, 然后通过方法避免它,或者直接解决(优化)它; 总结:其实解决问题非常容易,关键你的确定你的问题是什么?原创 2017-03-25 10:45:54 · 2636 阅读 · 0 评论 -
集中式工程拆解为分布式(微服务)需要注意的一些事情
1. 背景可能存在种种原因,会使得一个工程(或者功能模块)是堆积的,臃肿的,维护困难的。下面说下如何化解这个问题。2. 走向服务化把集中式工程进行拆解的一般成熟的套路是:工程模块化,然后搭配(局域)网络完成通信交互;2.1 拆分步骤:2.1.1 从功能上拆分从功能上拆分后,可以进一步把粒度分的细一些。根据功能拆分,是有一定的判定依据可遵循的(即根据业务线来清晰划分)。 通过业务线划分后,可能粒度还原创 2017-08-12 13:15:01 · 995 阅读 · 0 评论 -
超时时间的用途的理解和总结
超时时间的用途的理解和总结: 超时时间有几个关注点需要重点关注和理解: 超时时间是一个协调时间; 没有到这个时间,会干嘛; 过了这个时间会干嘛;原创 2017-03-25 10:50:07 · 2632 阅读 · 0 评论 -
概念和实现要区分开
概念和实现要区分开: 锁是一种思想,实现锁的方式各种各样;原创 2017-04-15 09:42:42 · 338 阅读 · 0 评论 -
单条变批量,优化网络传输效率的例子
单条变批量,优化传输效率的例子: 1.redis的异步复制,累计一定量:repl-backlog-size 2.rabbitmq的预批量推消息:basicQos原创 2017-04-15 09:41:05 · 683 阅读 · 0 评论 -
百分比和绝对值在redis中的配合使用
百分比和绝对值配合使用的例子: redis cluster的auto-aof-rewrite-percentage和auto-aof-rewrite-min-size,具体解释如下:Automatic rewrite of the append only file.Redis is able to automatically rewrite the log file implicitly call原创 2017-04-15 09:40:38 · 973 阅读 · 0 评论 -
关于不能测试的误区
关于不能测试的总结: 有些集成测试是不能完成测试,需要进行线上测试, 这个时候就需要注意,并在线上部署后进行线上测试,测试 通过再把线上流量切过来;原创 2017-03-31 19:29:04 · 404 阅读 · 0 评论 -
关于各个测试阶段的测试总结
关于各个测试阶段的测试总结: 在集成测试阶段如果还是单元测试模式,那么必然是不可行的; 在集成测试阶段就应该把系统集成到一起,按照全流程进行测试,按照真实的操作步骤来执行; 集成上下文中的数据是系统计算出来的,而不是手动添加的; 从单元测试,到集成测试,到灰度,到线上,一步一步靠近真实。减少上线故障;原创 2017-03-31 19:28:22 · 1315 阅读 · 0 评论 -
问题复盘的必要性
问题复盘的必要性: 在集成测试中, 必然会发现一些问题,这个时候就需要重试,然后复盘,找到问题所在; 这个过程需要从头(最上游)开始,一点点排查;不能急躁;问题总是能定位到的(一点点排除);原创 2017-03-31 19:27:07 · 3026 阅读 · 0 评论 -
如何使用好log日志
如何使用好log日志: 日志不仅仅要能标示哪里错了,也要能暗示或者明示错的原因是什么; 在关键和关心的代码处添加日志,可以很方面排查问题; 添加日志要注意日志量,量太大会占用IO和内存资源; 注意LOG的级别,调试用,因此一般的调试日志级别为debug即可,调试时,打开debug日志; 日志,不仅仅能排查问题,而且还能告警;所以在日志中添加 合适的告警日志,比如读取文件时,发现空行,就打原创 2017-03-31 19:25:51 · 985 阅读 · 0 评论 -
关于面向对象的总结
在使用java面向对象语言开发程序的时候,对java语言本身的语法的了解非常重要,但是面向对象的思维更重要!面向对象这个概念天生就有封装,继承,多态三大特性。为什么要使用面向对象来设计程序,来设计项目,那要从这个三个特性带来的软件工程的优势来推演和论证。封装 一个功能复杂的软件,定会涉及很多的对象,每个对象要保持自身的本分的功能,功能不多不少,对得起这个对象的名字,对得起这个对象的当初的设计初原创 2015-08-30 16:31:04 · 552 阅读 · 0 评论