随笔分类 -  计算机

计算机基础
摘要:一段关于java NIO server端接受客户端socket使用;演示了channel,selector等组件的整合使用 阅读全文
posted @ 2021-03-01 15:36 陶朱公Boy 阅读(170) 评论(0) 推荐(0) 编辑
摘要:linux内核 在比如管道通信、socket通信也好 其实会产生很多事件;缓冲区满,缓冲区空,缓冲区非空,缓冲区非满等四个场景; 上述场景 其实都是阻塞IO;阻塞IO一个线程只能处理一个IO流事件,效率相对不高,如果有多个事件,以串行思路处理;非阻塞IO意思是 当一个事件还没数据时,可以去处理其他IO事件于是有了select,poll 机制,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有I/O事件时,就从阻塞态中醒来,于是我们的程序就会轮询一遍所有的流;因为不知道具体是哪个流可读或可写;而Epoll可以让我们知道具体是哪个流 可读或可写 复杂度变O(1) 阅读全文
posted @ 2020-11-10 11:43 陶朱公Boy 阅读(156) 评论(0) 推荐(0) 编辑
摘要:维基百科简述的编程范式 阅读全文
posted @ 2019-08-28 16:14 陶朱公Boy 阅读(330) 评论(0) 推荐(0) 编辑
摘要:1、概论 -- 来自维基的解释 /dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或 阅读全文
posted @ 2019-04-19 17:28 陶朱公Boy 阅读(204) 评论(0) 推荐(0) 编辑
摘要:刚看到https://coolshell.cn/articles/9308.html 耗子大叔评价梁斌站点被百度封杀事件言论 然后在自己个人网站酷壳网站上发布了一段JS代码 当请求来自百度导流过来的链接 将弹窗告知警示,下面是那段弹窗JS源码 ,技术人还是关注技术细节 ,分享给大家; 阅读全文
posted @ 2019-03-30 12:30 陶朱公Boy 阅读(297) 评论(0) 推荐(0) 编辑
摘要:传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。 特别是前期阶段,设计的越完美,提交后的成本损失就越少。 迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间, 最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。 螺旋开发,很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。 敏捷开发,相比迭代式开发两者都强调在较短的开发周期提交软件,但是,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。 敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。 适应性的方法集中在快速适应现实的变化。当项目的需求起了变化,团队应该迅速适应。这个团队可能很难确切描述未来将会如何变化 阅读全文
posted @ 2019-03-27 19:23 陶朱公Boy 阅读(288) 评论(0) 推荐(0) 编辑
摘要:中国有很多古代警世名言,朗朗上口,凝聚了很多故事与哲理。硅谷的互联网公司里头也有一些这样的名言,凝聚了很多公司价值观和做事的方法,对于很多程序员来说,其影响潜移默化。这里收集了一些 阅读全文
posted @ 2019-03-27 19:17 陶朱公Boy 阅读(366) 评论(0) 推荐(0) 编辑
摘要:首先给大家介绍下什么是负载均衡(来自百科) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和 服务器的带宽、增加 吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web 服务器、 FTP服务器、 企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 本文讲述的是"将外部发送来的请求均匀分配到对称结构中的某一台服务器上"的各种算法,并以Java代码演示每种算法的具体实现 阅读全文
posted @ 2019-01-06 14:45 陶朱公Boy 阅读(224) 评论(0) 推荐(0) 编辑
摘要:2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计),简称Evans DDD。领域驱动设计分为两个阶段: 以一种领域专家、设计人员、开发人员都能理解的通用语言作为相互交流的工具,在交流的过程中发现领域概念,然后将这些概念设计成一个领域模型; 由领域模型驱动软件设计,用代码来实现该领域模型; 由此可见,领域驱动设计的核心是建立正确的领域模型。 阅读全文
posted @ 2019-01-01 21:30 陶朱公Boy 阅读(353) 评论(0) 推荐(0) 编辑
摘要:带宽是决定主机访问速度的重要因素之一,尤其是对于访问量大的网站,网络带宽的大小显得尤为重要。而流量其实就是带宽在时间上的累积,用数学上的话说就是带宽对时间的积分。做个通俗的比喻,拿自来水来说,带宽其实就是水管的流速,而流量就是流出的水的总量。 因为网络带宽和流量对于服务器来说至关重要,所以在选购服务 阅读全文
posted @ 2018-12-10 22:09 陶朱公Boy 阅读(1110) 评论(0) 推荐(0) 编辑
摘要:这篇文章比较深入的从free为起点 折射出的一些概念;比如 buff/cache是怎么一回事[涉及内存页等话题]; available这个参数与free参数有什么联系[其实available可以理解为当内存不足时它会释放buffer内存补给应用程序进程使用];以及shared的概念 swap等 让你全方位的从操作系统层面了解free 的命令。平时查看可以用free -h 或间隔周期查询 free -h -s xxx 阅读全文
posted @ 2018-11-23 11:04 陶朱公Boy 阅读(1256) 评论(0) 推荐(0) 编辑
摘要:计算机语言的发展历程与背景;从汇编到C C++... 阅读全文
posted @ 2018-10-04 20:37 陶朱公Boy 阅读(386) 评论(0) 推荐(0) 编辑
摘要:1.为什么使用MQTT;它的场景大量应用在物联网终端设备上,主要原因是数量很多的终端和服务端的交互成本很高 无法在严重受限的设备硬件和高延迟/带宽有限的网络上;最初的用途是将石油管道上的传感器与卫星相链接。顾名思义,它是一种支持在各方之间异步通信的消息协议 2.MQTT 协议的一个关键特性是发布和订阅模型。与所有消息协议一样,它将数据的发布者与使用者分离 阅读全文
posted @ 2018-08-09 19:21 陶朱公Boy 阅读(285) 评论(0) 推荐(0) 编辑
摘要:大家知道计算机内部存储信息是通过二进制数字0和1表示。但现实生活中其实更容易让人理解的是字符如字母A,B,C等字符(ASCII中一个字母占一个字节;像磁盘存储的都是字节表示;所以字节是存储容量基本单位); 既而像一些IO操作都是以字节来实现。 在这个大背景下 人们出现了一个所谓的ASCII码最终倒推到二进制。 本文是讲解ASCII与Unicode本质 阅读全文
posted @ 2018-07-14 11:26 陶朱公Boy 阅读(243) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示