关于程序的柔性

从毕业后一直听大家在说柔性,虽然懂得了柔性的重要性和存在的意义,但是一直没有切身体会和尝试到柔性所带来的好处。

直到今天,给家打电话的时候,因为手机快没电了,在最后的几秒中我似乎听到了手机即将关闭的声音,然后却奇迹般的让我说完了要说的话才挂机,这个时候才看到原来手机屏幕早已处于关机状态了,只是唯独还在用这仅存的电量来维系最后几秒钟的通话,正是这几秒钟,让我能够顺利的把事情说完挂机,也正是这几秒钟让家人不会因为我突然挂机而感到担心和忧虑。仔细瞧瞧自己的手机,心里却有种说不出来的感激。

或许这就是一种柔性,在最关键的时刻保持最核心的功能的可用性,即便是牺牲掉除此以外的任何功能也是值得和重要的。作为一个前端开发者,试问自己,在开发应用的时候有做到柔性开发吗?我一直在说可用性可用性,却一直忽略了自己开发的可用性,是的RIA本来就是一个很缺乏可用性的东西,如果脚本被关闭掉,如果用户没有安装Flash Player,可以说,自己开发的东西几乎没有一个可以使用。又或者假设一个关键数据加载失败后,程序是否会卡死或者干脆傻等?我想包括Writing和ViewPoint在内的作品,都极其欠缺可用性!

自责完后就是反思,虽然我暂时还无法做到即便用户把脚本和Flash Player统统关闭都能保证ViewPoint或者Writing的核心功能甚至部分功能依旧可以使用,但是接下来,我需要做的是保证他们在某个关键数据获取不到的时候去做容错兼容,例如切换获取数据的渠道,让程序自己尝试延时重新连接获取,又或者在更加极端的情况下设置尝试让程序自己去构造一个假数据出来,其目的就是要让自己能够继续往下跑,即便丢失掉一些个性特征的基础数据还能走一套默认的方案。

这部分逻辑我已经尝试在新的Writing里面加入了,因为新版本的Writing拥有一个足够轻量的前端脚本,即便把这份逻辑加入也不会带来太大的开销,并且制造一个极端的环境用于测试和开发Writing使之在可用性上相对目前的版本有一个大的提高。

顺带下:google上已经加入了项目托管,大家有问题可以在google上的项目托管反映,我将会在上面解答。地址:http://code.google.com/p/youyeeopensource/

loading...