随笔分类 -  架构设计

摘要:场景描述 将实时流采集终端的视频数据实时推送到另外一个(多个)播放终端,完成远距离实时视频播放的功能。典型场景: (1)远程查看监控摄像头。选择指定摄像头,将该摄像头采集到的实时数据推送到指定播放终端,供值班(监控中心)人员查看。包括实时视频上墙,推送到指定大屏幕上; (2)直播系统。用户在PC上安 阅读全文
posted @ 2018-03-28 17:14 周见智 阅读(22318) 评论(16) 推荐(32) 编辑
摘要:目录概述nodejs特点事件轮询关于异步方法概述关于nodejs的介绍网上资料非常多,最近由于在整理一些函数式编程的资料时,多次遇到nodejs有关的内容。所以就打算专门写一篇文章总结一下nodejs相关知识,包括“说它单线程是什么意思”、“非阻塞又是指什么”以及最重要的是它的“事件轮询”的实现机制... 阅读全文
posted @ 2015-09-17 14:20 周见智 阅读(9626) 评论(6) 推荐(5) 编辑
摘要:目录宏观上的“系统架构”系统架构图(举例)微观上的系统设计生产者-消费者 设计图(举例)宏观架构与微观设计的区别孰轻孰重?三种线程泵的作用代码中泵的作用常见泵结构(1)常见泵结构(2)常见泵结构(3)常见泵结构(4)常见泵结构(5)串行处理数据的泵并行处理数据的泵泵对于系统的意义什么是框架?框架的特... 阅读全文
posted @ 2015-05-25 18:14 周见智 阅读(2564) 评论(6) 推荐(10) 编辑
摘要:目录说明TCP与UDP通信的特点TCP中的沾包现象自定义应用层协议TCPLibrary通信库介绍Demo演示未完成功能源码下载说明我前面博客中有多篇文章讲到了.NET中的网络编程,与TCP和UDP相关的有:1.http://www.cnblogs.com/xiaozhi_5638/p/3167794... 阅读全文
posted @ 2015-01-23 18:01 周见智 阅读(20077) 评论(49) 推荐(48) 编辑
摘要:依赖倒置原则(Dependency Inversion Principle)为我们提供了降低模块间耦合度的一种思路,依赖注入(Dependency Injection)是一种具体的实施方法。依赖倒置原则: 前面一篇讲软件设计原则的文章中已经提到了“依赖倒置原则”(Dependency Inve... 阅读全文
posted @ 2014-03-20 10:54 周见智 阅读(4229) 评论(5) 推荐(8) 编辑
摘要:第九章 设计模式与原则 软件设计模式(Design pattern)是一套被反复使用的代码设计经验总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。好的设计,成就好的作品。但在软件设计的过程中,若有一些设计原则(Design Principle)的约束,那我们的软件会重... 阅读全文
posted @ 2014-03-19 10:00 周见智 阅读(4131) 评论(5) 推荐(7) 编辑
摘要:我们目前对.NET的理解大部分可以归纳为:起初它是Java平台(注意是平台,不要跟Java语言搞混淆)的一个克隆品,后来慢慢演变,有了自己的特性。由于Java平台最显著的特点就是“平台独立性”(或者说不知道谁发明的Write once,Run anywhere这个话)。理论上,你可以写一个程序编译完... 阅读全文
posted @ 2014-01-03 17:41 周见智 阅读(2035) 评论(2) 推荐(2) 编辑
摘要:在很多场合,我们需要在已有软件程序上增加一些新的功能,几乎所有原因是因为原有软件功能不能满足我们的需要,我们平时做的插件就属于这种情况,最常见的是VS IDE的插件开发,网上老外写的一篇关于插件开发的文章,很详细(网址)。如果我们要给一个已有软件扩展新的功能,一般我们必须知道原有软件提供给二次开发人... 阅读全文
posted @ 2013-09-30 14:49 周见智 阅读(3280) 评论(1) 推荐(7) 编辑
摘要:补充有两个:一个是系列(五)中讲到的事件编程(网址链接),该文提及到了事件编程的几种方式以及容易引起的一些异常,本文补充“多线程事件编程”这一块。第二个是前三篇博客中提及到的“泵”结构在编程中的应用,我稍微做一点补充。总结有一个:如果您善于总结和类比,您会发现世界好多东西其实都是一样的。这部分主要理... 阅读全文
posted @ 2013-09-11 09:57 周见智 阅读(2448) 评论(4) 推荐(3) 编辑
摘要:上一篇博客中说了基于“泵”的UDP通讯,附上了一个Demo,模拟飞鸽传书的功能,功能不太完善,主要是为了说明“泵”在编程中的应用。本篇文章我再附上一个关于TCP通讯的两个Demo,也都采用了“泵”模式:1.由于我把通讯部分的代码写在了一个dll中,这个demo只是简单的应用这个dll,主要完成发送字... 阅读全文
posted @ 2013-08-29 20:27 周见智 阅读(4204) 评论(13) 推荐(6) 编辑
摘要:上一篇中说到了“泵”在编程中的作用以及一些具体用处,但没有实际demo,可能不好理解,这篇文章我分享一个UDP通信的demo,大概实现了类似“飞鸽传书”在局域网中文本消息和文件传输的功能。功能不全也不是很完善,但足以说明“泵”在代码中的具体应用。先来回忆一下上篇中“泵”的含义,首先它是可持续运作的,... 阅读全文
posted @ 2013-07-03 15:47 周见智 阅读(4809) 评论(3) 推荐(7) 编辑
摘要:上一篇博客最后我提到“异步编程模型”(APM),之后本来打算整理一下这方面的材料然后总结一下写篇文章与诸位分享,后来在整理的过程中不断的延伸不断地扩展,发现完全偏离了“异步编程”这个概念,前前后后所有的加起来完全可以写一篇关于框架原理的东西,而“异步编程”只是其中的一小部分,后来我一狠心,打算把... 阅读全文
posted @ 2013-07-02 19:53 周见智 阅读(6537) 评论(4) 推荐(10) 编辑
摘要:我前面一篇博客讲了自定义窗体设计器,其实功能太简单,主要想阐述的是底层原理(虽然我不保证VS IDE设计器确实是那样去实现的)。编程讲究的是刨根问底,刨到祖坟最好,这篇或者可能以后几篇博客我想说一下VS IDE中的窗体设计器,虽说不能面面俱到,但也能让大家知道个大概。初学者可能阅读起来有些困难。其实... 阅读全文
posted @ 2013-04-12 16:25 周见智 阅读(3694) 评论(3) 推荐(8) 编辑