如何理解编程思想? 各位大神介绍东西啊 。。做项目 看书 看什么书? 看视频什么的看什么类型的 ?
还有如何在没参加工作的情况下 增加点工作上的见识
还有如何在没参加工作的情况下 增加点工作上的见识
解决方案 »
- 怎么在repeater的数据显示里面加空行
- Windows Mobile里关于ComboBox的问题
- 委托类型赋值的疑问
- winform 难题 TabControl
- 往oracle中保存图片时出现ORA-01036: 非法的变量名/编号
- 求救高手!下班前要解决的问题!
- winform程序,在一窗体更新数据在另一窗体中用DataGrid控件显示更新数据的问题,急急急
- 急啊!在线等!~Microsoft SQL Server 2000 Windows CE Edition的安装问题!
- 一个生成执行文件的问题~~~
- 定制控件的属性问题
- 超时时间已到。超时时间已到,但是尚未从池中获取连接,在线求解
- 菜鸟求助:错误1字段初始值设定项无法引用非静态字段、方法或属性??
{
bool isTcpConnected();
Passport Passport { get; }
void Send<T,R>(T sendCommand, Action<R> commitCallback, Action timeoutCallback, Action<Exception> errorCallback);
R Send<T,R>(T sendCommand);
void UdpSend<T>(T sendCommand);
event Action<object> Notify;
}
这里的业务意义不是很重要,我简单说明一下:
.一个客户端网关,它在实例化时通过传送给它服务器地址,它会自动连接服务器,并且注册一个会话对象(Passport)。
. 客户端程序就可以通过网关对象,使用Send方法发送一个命令对象(类型为T),这个方法异步回调返回一个服务器端推送的结果对象(类型为R)。通常客户端首先要发送给服务器一个“用户登录”命令。
. 这里的第二个Send方法是为那些不熟悉异步编程、也不很在乎效率的开发人员使用的,是调用了第一个Send并且使用阻塞模式来实现的。
. 运行中,如果服务器端有推送给当前会话的任何消息对象,就会使用事件 Notify 抛出来。
. 额外地支持一个UdpSend方法,使用Udp方式发送命令对象,没有返回,并且也不保证能到达服务器。这里的业务不重要,关键是这封装了有关通讯的所有东西。这也就是100~200行代码(不包括命令和数据实体的定义类,那些定义都是异常简单的,没有任何执行代码)。这可能找一个人花上3天或者5天的时间写完,然后就放到程序里边了。其它人都可以直接使用它。当然写这个实现代码时要借助好几个测试用例,并且这个代码被大多数业务操作程序都要调用,所以大多数其它的测试全都会反反复复地调用这个代码的各个部分,也就是会间接地测试它。
上面说了这么多,其实那些都是雕虫小技,这里才是所谓的“思想”:
1. 你的代码应该首先从简单设计出发,但是被其它许多代码所依赖,而不是相反。那些看似繁复的代码、时髦的代码,往往只是“终端界面”,你可以华一点钱、让多份终端程序(或者页面)自己去“掐架”而去淘汰大部分终端。但是他们所共同依赖的代码则生命力更久一些。
2. 这类代码本质上不是某个人私有的,所有人都可以修改它。只要在提交修改之前运行过所有的测试都能通过就行,任何人就可以随时修改它。并不是说这类代码就扔在那里没有人去挑它的毛病了,毕竟这类东西都是从简单出发的,但是这类代码经过了所有的(以及不断增加的)测试。所以如果要修改,也要经过所有的测试。就是这么简单,所谓“思想”就是这样炼成的。不是从书本上学来的,不是什么“宝典”或者教条,是平淡无奇的生存哲学,只不过是让一些非常简单而常用的代码如何生存、发展的学问。
视频推荐张龙的,我就是看他的视频学会的
主要是这句:
void Send<T,R>(T sendCommand, Action<R> commitCallback, Action timeoutCallback, Action<Exception> errorCallback);
看不懂,请问用的是C#的哪些特性?另外接口中的几个成员互相之间是什么关系?