GWA2 in Python吉娃兔发布Python语言初始版本

GWA2吉娃兔是一种跨编程语言的网络应用开发框架,在构建之初我们设想一套软件代码的组织、管理和使用方式方法,并希望这些设计思想能够使用各种常用的编程语言进行实现。
近二十年来较为流行的面向对象编程(Object Orientation Programming)的思想,在GWA2吉娃兔的设计和实践中也得到充分体现。
截至目前2022年下半年,GWA2吉娃兔已经可以使用Java, PHP 和 Perl 进行各种网络应用程序的开发,既可以支持基于B/S的应用程序的后端(服务器端),也可以是基于命令行的后端计算或服务。也即 GWA2 in Java, GWA2 in PHP 和 GWA2 in Perl. 已经是开箱即用的状态了。

Python版本的GWA2的开发一直在我们的规划和任务表上。最早在十年前的2018年,我们即着手进行各种准备工作。同时也密切注视在日常软件研发过程中的 Python程序的部署和应用。毫无疑问的,Python语言本身最近几年取得了较大的发展,基于Python的各种类库也日渐丰富。其核心是最接近自然语言的程序表达为其日渐流行开来奠定了基础。

一个月多前的2022年8月8日,我有感而发地写了微博,感慨小儿子hanu在小学学校兴趣班 Python入门中经过短暂的熟悉已经可以操控Python的 Turtle类库进行画图应用的设计了。差不多前后脚,顺利入读清华附中朝阳学校的长女儿yoyo也开始选用 Python作为高中信息科目的编程语言。这么说来,我们家已经有三口人要跟 Python编程打交道了。

我对 Python的接触较早,大约六七年前着手准备人工智能的论文,其中需要做些实验时,能够快速上手的人工智能应用的类库,多数都是使用 Python语言开发的。这可能与 Python中对集合(Set)数据类型的支持姣好,对数学矩阵的计算较为便利。
再早前,我们在开发 UfqiNews有福新闻 ( ufqi.com/news )时,发现较为靠谱的中文分词类库,具有开箱即用便利条件的,也是用 Python写成并发布开源的 Github上。
2022年9月新近,我们在研发 有福金融UfqiFina ( ufqi.com/finance )时,发现一个核心功能的类库有开源程序可用,而且是用 Python写成的,这的确是多路需求都汇集到 Python编程语言上了。我们需要将 GWA2 in Python摆上日程表前列。

Python 最引人注目的地方是在命令行下可以交互式的执行语句,有些类似在SQL查询终端,能够随时交互式进行“编程”,并不是软件研发所关注的OOP或者MVC等。
然而如果要组织和开发、管理和维护一套软件,必需进行一些针对代码开发、管理和使用的方式方法,OOP经过多年的发展已经成熟而稳定,MVC等软件开发实践经验也成为业界标准。
我们着手进行 GWA2 in Python的开发时,首先要梳理的是 Python对代码组织和管理的功能,对OOP思想的具体实现API等等。

Python OOP

稍微梳理一下,我们发现 Python代码大致按照 Package — Module — Class — Methods — Variables 这样五个层级进行组织和管理的。其中每一个上级对下级都是一对多的关系。一个Package(目录)下面可以有很多个Module(文件)和子Package(目录),一个Module(文件)中可以有多个Class(实体,代码块),进一步地,一个Class(实体)可以有多个Methonds(方法或功能函数Functions,代码块)…

关于OOP在 Python中大致是在类的声明中通过参数方式来实现继承关系。作为所有类的基类,除了 Object,Python还提供了抽象基础类 Abstract Base Class (abc.ABC) . 有了这些基础支撑,我们就可以方便地将 GWA2 的设计思想使用 Python来实现。

GWA2 in Python 基础核心类和文件
inc/WebInterface.py
inc/WebApp.py
mod/FinanceFund.py
ctrl/financefund.py

Classes in GWA2 in Python

在我们发布的 GWA2 in Python 的初始版本中,我们给出的样例程序如上图所示。我们设若要创建一个 “?mod=financefund” 的应用( ufqi.com/finance )入口。
1) 创建控制器入口程序 ctrl/financefund.py ,
2) 在控制器程序 ctrl/financefund 内引入对象类 mod/Financefund.py
3) 在创建对象类 mod/Financefund 时,引入基础类 inc/WebApp.py
4) 基础父类 inc/WebApp 是超级接口 inc/WebInterface.py 的具体实现.

熟悉结构、熟悉的程序、熟悉的API,一切都是 GWA2 style.
在 Python的世界里,我们也可以自由地使用 GWA2 所有的API及工具,就像我们可以在 Java中使用 GWA2 in Java, 在 PHP 中使用 GWA2 in PHP, 在 Perl 中使用 GWA2 in Perl一样。现在所有的这些,都可以通行通用。

在各自的编程语言环境下,都可以使用类似:
myObject.getBy
myObject->getBy

关于访问路径的路由及模块动态调用,Python里没有类似 PHP 中的 include 内置方法那么便利地将各种代码块拼合到一起再执行,甚至是变量也是 include 方法内外共享作用域的。Python 提供了内置方法 __import__ 也可以行使类似 Java Servlet 中的 include 内置方法一样, 只是 Java Servlet 中 include 允许携带便利的 request 和 response 通道来实现变量传递。

由于没有直接的显示的通道能够在 Python 的方法 __import__ 内外进行变量数据的传递,根据 Python 的官方建议,可以 import 引入一个共有的 Module , 类似于在 PHP 和 Java 等编程语言中, 我们可以在 Python中将 inc/Config 作为共享的Module,来实现这样的功能。
同时,通过在 __import__ 前,设置类似于 GWA2 Java 的 crossPage 页面间数据传输对象一样,将所有需要在Python 模块间传递的数据,放入 crossPage 中。对应的在接受端的 Module中,开始前和结束后,通过将 crossPage数据拆解和封装,然后经由 Config的全局共享通道进行数据传递。
最后,在 __import__ 方法体之后,通过 crossPage 将执行完成的结果数据取回,进一步地交给负责输出的功能模块。

2022年9月,GWA2 in Python的初始预览版本已经发布在 Github上,同步镜像在 gitee 上也有。欢迎大家试用尝试、继续补充完善,共建美好软件研发框架。


全文首发地址: https://ufqi.com/blog/gwa2-in-python-first-release/, -R/t2SU


GWA2吉娃兔

-GWA2 吉娃兔 是”通用网络应用架构( General Web Application Architecture, https://ufqi.com/dev/gwa2/ )”,基于 -GWA2 可以轻便构建各种网络应用程序,
包括复杂的在线购物商城、在线医疗、在线教育、 旅游交易平台、社群或者社交网站和新闻资讯网站等,
也包括各种企事业单位网上门户,在线交互及服务作业系统等.
还可以包括为NativeApp做服务器端支持, 甚至是WebApp的全部.
-GWA2 是为数不多的支持跨开发语言的应用框架,目前支持 -Java, -PHP, -Perl, -Aspx and -Python .

-GWA2 is a “General Web Application Architecture” and based on -GWA2 developers can easily build a variety of network applications,
including complex online shopping malls, online medical services, online teaching, travel trading platforms, community or social networking sites and news information sites, etc.
Also the applications include various online portals of enterprises and institutions, online interaction and service operations systems.
Moreover it contains server-side support for Native App, or even all of the WebApp.
-GWA2 is one of the web frameworks which provide cross-language support for -Java, -PHP, -Perl, -Aspx and -Python at present.

-GWA2 is E.A.S.Y 
Easy Along, Swift Yield
轻松启动, 快速产出.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值