新春愉快!2017年农历新年第一天,GWA2的Perl版本完成首个版本。
距离我们开始在2016年11月份开始筹划GWA2的Perl版本,大约2个月的时间过去了,这期间,我们对GWA2的软件编程框架设计进行再梳理,在继续完善GWA2 in PHP 和 GWA2 in Java的同时,开发了GWA2的Perl版本。逐渐形成了GWA2的发展路线图。
(GWA2的发展路线图)
GWA2 in Perl 的首个版本支持使用Perl在CLI模式下对数据库的操作,这是一种常见的应用场景。其驱动力仍是像此前描述的那样:
“此前在开发人民网的一套新闻转载发现系统时就多次有念头要对perl的代码进行封装和重用。最近又遇到新的使用perl的开发,居然还要从dbi写起,这太低效率了。PHP版本的gwa2的命令行模式的成功部署和运行很诱人,于是就有了perl的gwa2的实现。显然,这只是个开始。….”
在进行Perl版本的GWA2的实现时,也有很多挑战。-Perl 是一门古老而有年轻的编程语言,距今已有29年的历史,发展历程可谓漫长,而且Perl是松散的,提倡多态和丰富,推崇一个问题总有多个解决办法的文化(TMTOMTD)。Perl对面向对象(Object-Orienatied)支持并不是很好,首先对一个问题是是否引用第三方OO的类库,比如MOOSE,开始之后还有更多的支持与选择,近30年的Perl的发展,使其一方面有大量的成熟的类库,另一方面也有一些历史的遗留问题。
对于这些,GWA2的Perl版本只好保守地从基本功能做起,面向需求驱动,预留和开放相应接口,点滴积累,以其有所成,为Perl社区添砖加瓦,为Perl开发提供一个全心的视角。
Perl6正雄心勃勃地走来,对比太老的Perl5系列,Perl6又显得太年轻。在这个节骨眼上推进GWA2的Perl版本,忐忑和纠结是常有的,不过我们还是提供了一个Tutorial供开发者参考。
Programs Written in GWA2 with Perl
0. data
create table prefix_dummytbl(
id int(12) not null auto_increment,
iname char(255) not null default ”,
primary key (id),
unique index uk1(iname));
1. object
mod/DummyModule.pm
use parent ‘inc::WebApp’;
2. controller
ctrl/dummy.pl
use mod::DummyModule;
$act=listen
$act=speak
$act=remember
….
3. view
view/default/dummy.html
4. routing
/path/to/perl /path/to/project/index.pl “?mod=dummy&act=listen&fmt=json”
-GWA2 是一套通用网络应用(软件程序)架构系统,基于 -GWA2 可以轻便构建各种网络应用程序, 包括复杂的在线购物商城、 旅游交易平台、社群或者社交网站和新闻资讯网站等, 也包括各种企事业单位网上门户,在线交互及服务作业系统等. 还可以包括为NativeApp做服务器端支持, 甚至是WebApp的全部。
Pingback引用通告: 🍃GWA2Java新增Cmdline命令行和JavaBean运行时模式 - Java天堂