技术编程谈谈开发框架的稳定性
_本文原题:谈谈开发框架的稳定性
开发框架背后的事
如果某个开发框架向它的客户暴露了一些由底层提供的功能 , 那么 , 将客户从底层代码中那些”脏活”和”隐藏限制”的部分隔离开来 , 到底有多难呢?
你可能凭直觉说 , ”框架本来就应该将客户完全从底层细节隔离开嘛!这不正是框架应该做的事情吗?” 但是 , 事情可能没这么美好 , 特别是当你知道你正在提出的是一个什么样的要求的时候 。
如果框架完全将客户从底层细节中隔离 , 则不管通过什么方式 , 框架必须为底层代码中的每一个限制提供一种WorkAround来绕开它 。 这就意味着框架中需要编写很大一部分代码来模拟某个丢失的特性或者移除某一种限制 , 这些代码仅仅是为了防止有人在使用框架时偶然碰到这个限制 。
举个例子
我们来看看ToolTip的AutoPopDelay属性 。 ToolTip类是一个基于通用ToolTip窗口类的一个封装 。 如果你仔细看看关于TTM_SETDELAYTIME这个消息的话 , 你会发现 , 延迟时间(iTime)是通过LPARAM的低16位进行传递的 。 所以 , 这就会出现一个限制了 , 也即这个延迟时间会被限制为一个16位的值 , 而在这个例子中 , 它将会是一个16位的带符号的整数 , 因为它的负数值也有一些特殊的含义 。
因为对于一个16位带符号的整数来说 , 其最大值是32767 , 所以你能设置的最大的延迟时间仅仅会比32秒长一点点 。
所以 , 如果你尝试设置这个ToolTip.AutoPopDelay属性的值长一点 , 比如60秒 , 则你会发现 , 代码将不会按照你的预期工作 , 因为这个ToolTip类仅仅将你设置的值直接传递给底层的Tooltip控件 。 所以 , 在你了解这个底层控件的限制之前 , 你是无论如何也不会明白为什么代码不能正常的 。
总结
从破坏性来说 , 对越底层的代码进行修改 , 对整体软件结构带来的结构性破坏就越大 。
所以 , 不要 , 或者说尽量不要随意修改底层代码 。
换句话说 , 设计底层代码结构时 , 尽量设计成那种不经常需要改动的样子 。
本文插图
【技术编程谈谈开发框架的稳定性】
- 更名为广东职业技术师范学院天河学院
- 36氪利用无人驾驶技术切入水域智慧环卫与维护,“欧卡智能”获千万元级融资
- 上游新闻|精度达到2-3米,北斗系统发言人:中国北斗攻克160余项关键技术
- IT之家|三星Galaxy Note 20将搭载UWP技术 传文件比NFC更快
- 央视新闻客户端|北斗系统工程新技术应用超过70%
- 问董秘|提供设备和技术的正是克劳...,投资者提问:中石油系统已经大量加入做聚丙烯熔喷料
- 我国|我国封锁“世界唯一专利”,日本出3000亿要买,美国要求技术共享
- 检测|辽宁派16支核酸检测医疗队驰援大连,研发10合1混采技术
- 北斗办:北斗与5G融合将推动无人驾驶等技术发展
- 北斗系统工程新技术应用超过70%