软件开发的一些难点与解决方式:
组件之间的协作:
进行软件开发的很多时候我们一般使用的是基于组件化的软件开发模型,尤其是对于大型的软件系统,更是如此,组件之间的交互协作更是我们必须处理的,一般有一下集中可选的方式:
1,进程间的通信 包括IPC ,RPC 等方式 比如共享内存,管道,套接字 ,邮槽。
2,使用通信协议 比如http ,telnet ,ftp 同时可以有自己开发的协议。
3,通信中间件 有好多的可选方式 COM+ ,CORBA,.NETRemoting ,WCF,RMI,JMS 等好多的实现方式。
事件的处理:
基于事件的模式,对于软件的开发具有较大的益处,但是其中的实现会碰到好多的难点,一般得解决方案如下:
1,反应器
2,主动器
3,异步完成标记
4,接收器 连接器
使用以上的模式可以实现初始化,接受,多路分解,分配,以及处理。
同步:
可以使用方式如下:
1,定界加锁
2,策略化加锁
3,线程安全接口
4,双检查加锁优化
并发:
并发有一下的解决方法:
1,活动对象
2,监视器对象
3,半同步/半异步
4,领导者/追随者
5,线程特定的存储器