跳到网页内文区。

:::

旅舍日记 卷二十二


4.13.’06. 3:01am.

刚刚闲逛 Wikipedia ,才发现原来 SourceForgeFreeBSD 的网站,在中国是被封锁的!真是太扯了,中国政府是神经病啊?

喔,刚刚发现PHP 的网站也被中国政府封锁掉了。那中国的网路系统发展完蛋了,嗯嗯。

锁国是不好的事哪~日本明治维新前的德川幕府,可为殷鉴。


4.10.’06. 11:57pm.

旅舍终於有了全文检索了。虽然现在所有网页还没有全部建档(还有 28 页左右),不过大部份的内容都已经放上去了。耶~! ^_*'


4.9.’06. 9:42pm.

我发现真的有人在用 vsntp 耶,好感动喔~ :~~ 可是有问题怎么不来问我呢?嗯嗯。


4.2.’06. 3:04am.

花了两个星期,结束了一个 Monica/Selima 核心的改造计划。

这是一个去年的构想,源自於写 Julie 网站计划时碰到的瓶颈: Monica 系统的资料异动更新处理,沿用七年前亚太粮肥旧网站使用 process.php 的架构,使用一个 process_form() 函式来处理。然而,处理复式的资料时(一笔资料引用其她资料,例如公司档案会有不同的联络人),当资料间的交互关联越来越复杂,使用 process_form() 函式,便显得捉襟见肘。於是我想,是不是可以改用物件类别的方式,一个资料表的处理器可以引用另一个资料表的处理器,这样就不需要去管另一个资料表的处理器的处理细节,程式码亦可重复利用。这就是现在的 Monica ProcessorSelima::Processor::* 类别。

去年想到这个构想时,觉得有点害怕。一个原因是 Monica 已经长得太大了:十一个网站,四百七十七个程式档,十三万多行。要全部改掉,还要一个一个测试,真的是要命。另外一个原因则是,每个网站的浏览架构都不大一样,部份重制网页时,相依性追踪是不是做得来,我实在是没有把握。於是,初步写了不牵涉到网页相依性的帐号管理子系统,确定原先的构想大致可行了后,就搁著了。一搁搁了快一年,一直到去年底的两个新网站的案子,才又重起炉灶。两个新网站处理资料的部份,就全部改用新的 Processor 物件界面了。

今年年初,创世纪玩告一段落以后,我又回过头来改写 Selima ,把原先档案空白的 Selima::Processor::* ,参考 Monica Processor 类别的帐号管理子系统,改写出来。接著,又著手撰写 Selima::Processor::* 的内容管理子系统,试著把网页相依性追踪、部份网页重制的执行模式标准化。经过一年来的沉淀,写得颇为顺利。写出来了以后,回过头来改写 Monica 的内容管理子系统的部份,花了两个星期的时间,改写一百多个程式档、一一追踪、测试。除了一个无可救药的旧 FTP 帐号管理程式外,终於全部改写完毕了。

Monica/Selima 系统的资料处理架构上,有五大部门:资料列表、资料取得、显示表格、表格检查、异动更新。资料列表由 List 物件处理,资料取得由 fetch_curitem() 函式负责,显示表格由 Form 物件负责,表格检查由 Checker 物件负责,异动更新由 Processor 物件负责。目前,只剩下资料取得的部份,尚未物件化。因为每个表格都依赖某种资料格式才能正常显示,一旦资料取得物件化,对后面的三个动作 FormCheckerProcessor 影响非常大。很多复式资料,应该取得给后面用的格式非常复杂,我没有把握这些 Fetcher 物件能够互相引用。然而,只要资料取得的动作还未物件化的一天, Monica/Selima 要处理复杂的复式资料,就会非常困难,而且无法处理两层以上的复式资料。

不过, Fetcher 暂时不是急迫的问题。而且去年 Julie 计划碰到的瓶颈,我已经找到解答了,不需要用到三层以上的复式资料来处理,而可以利用资料表自己引用自己的方式解决。其实在之前连结分类的处理时,我就已经做过了。去年 PostgreSQL 的权限控管改采 role-based 系统,不再区分使用者和群组,每一个角色都可以包含别的角色。我从来没想过可以这样做,茅塞顿开。我想, Julie 的问题,应该可以用同样的方法来解决。

Monica/Selima 还有一个庞大的改造工程: Page 物件,用以追踪网页的相依性、制作浏览选单及网站地图。这其实也是去年的构想,因为无障碍网页规范要求网站要有网站地图,目前 Monica 使用 page_tree() 函式回传一个庞大的树状网页资料,可是没有方法,难以作更复杂的应用。我目前只有初步的想法而已。可能会先在 Selima 上实作吧,毕竟 Selima 还没有正式的内容管理系统,包袱比较小。希望不需要用到一年。


目录 | 第一页 | 前一页 | 20 | 21 | 22 | 23 | 24 | 下一页 | 最末页