Re: [Shellweb-main] Config
Status: Alpha
Brought to you by:
alexe_cn
|
From: fayland <fa...@gm...> - 2005-12-28 08:09:53
|
shellweb 应该会提供一些用户可以定制的东西吧。比如说超时多少秒。(类似
IE/Firefox 里的 选项/Options)
到时候有一个界面可以设置,然后将他们保存为一个 yaml 文件。
use YAML();
YAML::DumpFile("config.yaml", \%config);
然后我们就可以使用
use YAML();
my %config = YAML::LoadFile('config.yaml');
这样我们写 UserAgent 超时的时候就可以这么写:
my $ua = LWP::UserAgent->new;
$ua->timeout($config{timeout});
大致就是这个样子。而 Config::IniFiles 生成/导入 .ini 文件。这个跟我们常
见的 ini 文件是一样的。
ale...@gm... wrote:
> fayland,你能否给出你推荐的这几个模块对应现在shellweb代码的实例?
> 我对于这些模块并不太清楚,如果有实例的话,我会较容易比较一些。
>
> 在 05-12-28,fayland<fa...@gm...> 写道:
>
>> 尽量跨平台,实在没办法可以采取这种办法。
>> log 的话我倾向于使用跨平台的 Log::Log4perl
>>
>> ale...@gm... wrote:
>>
>>> 你说的这个情况也可以,但是毕竟还要付出很多其他的努力,例如测试这两个模块的分别运行情况,如何统一。
>>> 总之,在这方面的工作量并不会很少,除非你事先就十分了解这两个模块。
>>>
>>> 在 05-12-28,Anthony WU<ant...@gm...> 写道:
>>>
>>>
>>>> 關於跨平台方面
>>>> 我較偏向 如 win32 ,使用Win32::EventLog, Unix 類 使用syslogd 的做法,雖然不是跨平台的模組,但
>>>> 亦能做到所需要求,只需要 自行寫 mylib::win32::log , mylib::unixlike::log , 統一那2個 lib
>>>> 的調用方法,就應該沒其他的大問題
>>>>
>>>> 2005/12/28, ale...@gm... <ale...@gm...>:
>>>>
>>>>
>>>>> :)
>>>>> 我来解释一下尽量少用cpan模块的原因:
>>>>> 首先,我并不是排斥用cpan模块,好的cpan模块当然可以采用。
>>>>> 但是,采用一个cpan模块必须保证以下的前提:
>>>>>
>>>>>
>>>>>
>>>> 1.可移植性。可以正常的在我们所需要的多平台下运行,要知道有些模块在linux下可以运行,但是win32下不能运行,这种模块我们不能使用。
>>>>
>>>> 2.依赖性较低。有很多优秀的cpan模块,需要依赖其他的cpan模块才能运行,如果我们引入了这个cpan模块,那么其他的cpan模块也必须一并引入,大量的各种类型的cpan模块势必会给我们今后的发布带来困难,我们会很难保证这些模块在多种平台上的运行能力,而且如果软件进一步的发展,这个模块如果无法适用我们的要求,我们将会陷入被动的局面,而且在纠错方面,我们需要查找的工作量会很大,有可能必须查找每个引入的模块才能解决问题。
>>>>
>>>>
>>>>> 3.该模块已经长时间稳定的存在,或者充分证实了这个模块可以基本无问题的运行。
>>>>>
>>>>>
>>>>>
>>>> 4.在引入一个模块的时候,我之前已经说了:发邮件通知大家。然后给出你的模块在shellweb中的用法实例,大家去根据我上面的规则查阅一下印证一下。
>>>>
>>>>
>>>> 在项目的初期,我们并不要求很快的完成某项任务,而是为了以后能快速的完成任务打下好的基础,为了避免项目进入后期因为某些自己不能把握的事情而拖入泥潭,所以前期我想尽量的谨慎一些。这是我现在对于项目的主导想法。
>>>>
>>>>
>>>>> 2005/12/28, fayland <fa...@gm...>:
>>>>>
>>>>>
>>>>>> alexa 的 SYSTEM_CONFIG 是否可以考虑用 use YAML;
>>>>>> 这么写的话:
>>>>>> if ($config=~m/^window_size_width=(.*)/) {
>>>>>> $config{window_size_width}=$1;
>>>>>> next;
>>>>>> }
>>>>>> 一旦配置多了就麻烦死了。或许还可以考虑 Config::Tiny Config::IniFiles 等
>>>>>>
>>>>>> 我总觉的能用 CPAN 模块就用 CPAN 模块。何必浪费时间再写一次别人已经写过的
>>>>>> 代码呢。用这些大家都在用的模块能让 ShellWeb 的代码更少更清晰。
>>>>>>
>>>>>> --
>>>>>> Fayland Lam // http://www.fayland.org/
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> -------------------------------------------------------
>>>>>> This SF.net email is sponsored by: Splunk Inc. Do you grep through log
>>>>>>
>>>>>>
>>>> files
>>>>
>>>>
>>>>>> for problems? Stop! Download the new AJAX search engine that makes
>>>>>> searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>>>>> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> --
>>>>> +--------------------------------------------+
>>>>> |By Alexe (http://www.alexe.cn)|
>>>>> +--------------------------------------------+
>>>>>
>>>>>
>>>>>
>>> --
>>> +--------------------------------------------+
>>> |By Alexe (http://www.alexe.cn)|
>>> +--------------------------------------------+
>>> N琀Y薜闅奨�'矈辵紥壾尐�
>>> 蕈豮㈣!枅奧瑍婇畣鍅k秺C� 濉呴蘩@^菤^�豘秄�j�!妜2㈥澧鈺�辨�,悍鉃 a{� 鍗,�H蛟4╩稛�i�(辟堍o趘'锃鹙Yhr'庄:鎶rX渒===
>>>
>> --
>> Fayland Lam // http://www.fayland.org/
>>
>>
>>
>> -------------------------------------------------------
>> This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>> for problems? Stop! Download the new AJAX search engine that makes
>> searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>
>>
>>
>
>
> --
> +--------------------------------------------+
> |By Alexe (http://www.alexe.cn)|
> +--------------------------------------------+
> N�HY隊X���'���u���[�������
> ަ�k��!���W�~�鮆�zk��C� 塧m����@^ǚ��^��z�Z�f�z�j�!�x2�������ɫ,���a{��,�H��4�m���i�(��ܢo�v'��jYhr'ׯ:�rX�k===
--
Fayland Lam // http://www.fayland.org/
|