我所热衷的编程生涯 连载(3)

第一个帖子忘了说很重要的一点: 这些开发都不是工作内容, 而是我处于个人爱好而独立完成的作品.

数据库的基本功能开发完成后, 我才逐步的发现一些问题. 比如长期使用后会如同Fat32一样, 产生碎片空间的浪费. 这样表现出来就是数据库文件大小比实际存储的有效数据大小总和要大一些, 因为数据空间重复使用的分配过程中不断产生碎片空间, 而这些碎片空间又太分散而无法满足当次使用需求. 后来又增加了一个清理碎片空间的功能, 只要定期整理或者数据库文件发布清理一下就好了.

后期又发现数据库文件独占也是个问题, 特别是对于多端同时联入服务器的情况, 很多个任务可能同时操作独占资源. 这样某些任务可能会错过有效的工作状态. 为了解决这个问题, 我采取了任务分派的模式.

在不断的改进和完善中我才发现, 一个好的产品不仅需要适应应用环境, 更总要的是需要有灵活多变的姿态. 而能保证这些条件很重要的一个因素就是基础. 所以很庆幸我虽然花了很长时间来设计数据结构, 但是确实是值得的, 这为我后续增加功能和弥补缺陷都起到了很便利的先决条件.

其实这个时候的我是蛮开心的, 因为后续开发软件可以再也不用担心数据打包这些事情. 有时候生活也是这样, 你费尽心机做了很多看似无用的工作, 却无形间给你后续的工作带来了很多的便利. 有时候并不需要高瞻远瞩, 哪怕仅仅是多往前想一步, 也会让你路途坦荡的.

数据管理这款软件开发完成后, 我突然想到图片打包的话, 不是很容易做皮肤控件吗? 这样的话对美化程序是相当有帮助的. 而且依旧是仅仅一个独立的文件, 简洁美观, 部署方便. 想到就做, 没过多久就做出来, 一测试, 效果还蛮不错的, 调用方便.

我这人有个毛病, 不喜欢主动去学习一些看似用不上的技能, 比如PS... 我觉得我又不是美工, 干嘛学这些啊, 把我的代码写好就行了. 但是我很快就改变了这样的想法. 需要用的时候就得学, 为了搞好程序的美化, 虽然我没有什么审美观(看美女除外), 但是PS的一般美化效果还是应该要学会才行, 搞个什么程序背景图的, 那是必须的. 后来我就养成了一种习惯, 不管什么技术需要用的时候就去专研, 不需要的话绝对不弄. 搞的很实用主义, 呵呵.

 

窗体皮肤组件:

我所热衷的编程生涯 连载(3)

 

皮肤资源文件:

我所热衷的编程生涯 连载(3)

 

因为我本身对网络通讯是蛮感兴趣, 也做过一些研究的. 所以后来结合数据管理这款自创数据库工具, 我希望开发出一个平台出来, 这个平台提供很多的网络功能, 如实时聊天,实时视频,文件传输,分享信息, 网络硬盘,网络收藏夹,网络通讯录,P2P应用(下载,电影,音乐,游戏,新闻等),文件中转站,邮件服务...

想到就做, 我把这个平台命名为丝绸, 因为丝绸是很美丽顺滑的, 更重要的是细腻, 我希望我的产品也是如此~

 

Silk皮肤窗体外观:

我所热衷的编程生涯 连载(3)

 

好友列表:

我所热衷的编程生涯 连载(3)

 

聊天窗体:

我所热衷的编程生涯 连载(3)

 

这个时候问题来了, 数据的存储我就用数据管理就行了, 那么数据通讯怎么办呢? TCP? UDP? 第三方?

我的创造心情又来了, 为什么不自己设计一种通讯组件呢, 如同数据管理组件一样. 独立自主, 完全受控, 好歹也是自主知识产权. 想到这里, 我激动了, 相当自己还是比较了解TCPIP协议, 为了保证数据通讯的控制程度和低消耗, 我决定用UDP协议来实现, 但是大家都知道UDP的两大弱点, 丢包和乱序, 是非常麻烦的问题, 不解决好的话通讯数据都不完整, 整个平台都没有意义了.

我在网上不断的查资料, 还是找到一种方法, 大家应该都知道吧. 就是滑动窗口协议, 不过很遗憾的事, 这种协议还是有个弱点, 就是"等待"应答包期间导致发送方资源的空耗, 总体来看就是网络出现波动时, 效率低下, 抗灾能力不强. 不过后来还是让我想到了办法解决这个弱点, 我把这种方法称之为"并行滑动窗口协议"....

 

未完待续....

我所热衷的编程生涯 连载(3)