散分+传道

赵4老师 2014-05-14 11:46:05
道一:
请牢记:源代码本身的书写是否结构化或面向对象或符合设计模式或敏捷…并不重要,重要的是你是否使用结构化或面向对象或符合设计模式或敏捷…的方法命名标识符、阅读、修改、检查、测试源代码。

道二:
为什么要搞心跳防护?因为被检测进程不时心脏停跳。
为什么被检测进程不时心脏停跳?因为被检测进程亚健康。
怎么知道被检测进程亚健康的原因:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!

根治了被检测进程亚健康→被检测进程不再心脏停跳→不用再搞心跳防护。
越依赖心跳防护→被检测进程心脏停跳越频繁→被检测进程越不健康!

怎么心跳防护“用来心跳防护不健康进程C”的进程B的不健康?
怎么心跳防护“用来心跳防护‘用来心跳防护不健康进程C”的进程B’的进程A”的不健康?

道三:
不要做A语言代码修改为B语言代码的无用功。
也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。
只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。
即可很方便地让A、B两种语言之间协调工作。
比如:
A将请求数据写到文件a.txt,写完后改名为aa.txt
B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,改名为bb.txt
A发现bb.txt存在时,读取其内容,读完后删除bb.txt
以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。
除非A或B不支持判断文件是否存在、文件读写和文件更名。
但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢?

共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的:
·进程之间松耦合
·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。
·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。
·方便在线开关服务,只需删除或创建该临时文本文件即可。
·方便实现分布式和负载均衡。
·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满)
·……
...全文
9402 92 打赏 收藏 转发到动态 举报
写回复
用AI写文章
92 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-12-16
  • 打赏
  • 举报
回复
引用 91 楼 gjban 的回复:
赵老师这里讲的心跳防护,具体指的是什么, 我目前用心跳主要是用来检测连接是否正常,几个心跳收不到消息后重连,不知这里是指什么
指监视别的进程防止意外假死或退出。 与检测连接是否可用的心跳包无关。
PhilipGuo 2016-12-10
  • 打赏
  • 举报
回复
赵老师这里讲的心跳防护,具体指的是什么, 我目前用心跳主要是用来检测连接是否正常,几个心跳收不到消息后重连,不知这里是指什么
nuqilingiii 2016-11-25
  • 打赏
  • 举报
回复
绝对支持,无限关注
cppabc 2016-07-08
  • 打赏
  • 举报
回复
呵呵,赵老师的知识面挺广的!
ph3ngz0r 2015-06-30
  • 打赏
  • 举报
回复
跟随赵老师的脚步一路向西,哈哈
wine2015 2015-06-29
  • 打赏
  • 举报
回复
学习了。大神在级别
赵4老师 2015-06-03
  • 打赏
  • 举报
回复
引用 85 楼 worldy 的回复:
[quote=引用 84 楼 Minikinfish 的回复:] zhao4zhong1老师,做什么的?在哪里上班呀
在csdn上混着呗[/quote] 知我者谓我何忧,不知我者谓我何求。
worldy 2015-06-02
  • 打赏
  • 举报
回复
引用 84 楼 Minikinfish 的回复:
zhao4zhong1老师,做什么的?在哪里上班呀
在csdn上混着呗
Minikinfish 2015-04-16
  • 打赏
  • 举报
回复
zhao4zhong1老师,做什么的?在哪里上班呀
ksstary 2015-02-26
  • 打赏
  • 举报
回复
这有点高深,我的道行还太浅
爱依凡 2015-02-26
  • 打赏
  • 举报
回复
谢谢分享,学习了。
ArthurKingYs 2015-01-19
  • 打赏
  • 举报
回复
学习了 作为初学者 还需要慢慢的理解啊
赵4老师 2014-12-24
  • 打赏
  • 举报
回复
引用 74 楼 kobesdu 的回复:
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。受教了。。。心好疼。。。头也疼
“跨语言、跨机,跨操作系统,跨硬件平台,跨国,跨*.*的”苦海无边, 回头是“使用共享纯文本文件进行信息交流”的岸!
__Dt- 2014-12-24
  • 打赏
  • 举报
回复
好像很久远了 貌似已经没分了……
fcqm8888 2014-11-22
  • 打赏
  • 举报
回复
支持善行,多多布道吧。
  • 打赏
  • 举报
回复
试问何时结贴散分
kidbjr00 2014-09-16
  • 打赏
  • 举报
回复
新人学习
Zephyr风暴之锤 2014-08-29
  • 打赏
  • 举报
回复
kobesdu 2014-08-28
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。受教了。。。心好疼。。。头也疼
赵4老师 2014-08-04
  • 打赏
  • 举报
回复
引用 72 楼 shiguojie19892 的回复:
[quote=引用 66 楼 zhao4zhong1 的回复:] [quote=引用 65 楼 lzj891013 的回复:] [quote=引用 50 楼 zhao4zhong1 的回复:] [quote=引用 46 楼 truexf 的回复:] 先把语文学好,语句通顺了再来传道也不迟。
哪句不通顺?[/quote] 道三中,为什么写了之后 要改名字? 我要么直接写不改,要么直接向名字为aa.txt的写 不行么?这里有什么奥秘么?非要这样么?[/quote] 改名字是为了避免写方正写没写完时,读方就去读而导致读到不完整数据。[/quote] 请问赵老师,你说可以跨国,夸什么的都可以用这个方法,我前两天就有这么个问题,安卓手机(java)怎么和后台的C++服务通讯?[/quote] 不知道安卓是否支持“映射网络驱动器”
加载更多回复(72)

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧