技术编程|谈谈开发框架的稳定性
北京联盟_本文原题:谈谈开发框架的稳定性
开发框架背后的事
如果某个开发框架向它的客户暴露了一些由底层提供的功能 , 那么 , 将客户从底层代码中那些”脏活”和”隐藏限制”的部分隔离开来 , 到底有多难呢?
【技术编程|谈谈开发框架的稳定性】你可能凭直觉说 , ”框架本来就应该将客户完全从底层细节隔离开嘛!这不正是框架应该做的事情吗?” 但是 , 事情可能没这么美好 , 特别是当你知道你正在提出的是一个什么样的要求的时候 。
如果框架完全将客户从底层细节中隔离 , 则不管通过什么方式 , 框架必须为底层代码中的每一个限制提供一种WorkAround来绕开它 。 这就意味着框架中需要编写很大一部分代码来模拟某个丢失的特性或者移除某一种限制 , 这些代码仅仅是为了防止有人在使用框架时偶然碰到这个限制 。
举个例子
我们来看看ToolTip的AutoPopDelay属性 。 ToolTip类是一个基于通用ToolTip窗口类的一个封装 。 如果你仔细看看关于TTM_SETDELAYTIME这个消息的话 , 你会发现 , 延迟时间(iTime)是通过LPARAM的低16位进行传递的 。 所以 , 这就会出现一个限制了 , 也即这个延迟时间会被限制为一个16位的值 , 而在这个例子中 , 它将会是一个16位的带符号的整数 , 因为它的负数值也有一些特殊的含义 。
因为对于一个16位带符号的整数来说 , 其最大值是32767 , 所以你能设置的最大的延迟时间仅仅会比32秒长一点点 。
所以 , 如果你尝试设置这个ToolTip.AutoPopDelay属性的值长一点 , 比如60秒 , 则你会发现 , 代码将不会按照你的预期工作 , 因为这个ToolTip类仅仅将你设置的值直接传递给底层的Tooltip控件 。 所以 , 在你了解这个底层控件的限制之前 , 你是无论如何也不会明白为什么代码不能正常的 。
总结
从破坏性来说 , 对越底层的代码进行修改 , 对整体软件结构带来的结构性破坏就越大 。
所以 , 不要 , 或者说尽量不要随意修改底层代码 。
换句话说 , 设计底层代码结构时 , 尽量设计成那种不经常需要改动的样子 。
本文插图
推荐阅读
- 技术编程|后台权限管理设计思路:三种模型分析
- 技术编程|如何利用数据库进行世界史研究
- 青年|西安邮电大学与安康汉滨区深度合作,研发适合毛绒玩具全产业链实用技术
- 无人科技,电池技术|盘点几种常见的无人机电池
- 行业互联网|让青少年爱上科学 核桃编程AI人机双师模式受关注
- 技术编程|无服务器调研,部署REST API是最普遍用例
- 京东,折叠屏手机|围绕柔性屏的技术、特性、应用、产业化进行了非常专业的解读
- 云计算|腾讯云小微首次技术开放日,揭秘AI语音背后的奥秘
- iQOO手机|“快稳双全”!120W超快闪充技术炫技,十五分钟充满电量
- 驱动中国|国内首次应用!支付宝开放宠物鼻纹识别技术:猫狗都能买保险