程序代码共享系统

2024-10-22

程序代码共享系统(共4篇)

程序代码共享系统 篇1

社会化程序代码共享系统是一种专门为广大软件开发人员提供程序代码管理和分享服务的平台。这种系统不但可以将用户发布的各种程序代码按照程序设计语言、程序代码所属标签等标准进行分类整理, 而且还提供了强大的程序代码搜索功能, 能够让用户非常方便、快速地查找到自己所需要的程序代码。系统中的用户也可以对他人发布的程序代码进行评论, 并将自己认为有用的程序代码收藏起来。系统后端存放程序代码的数据库是由用户以社会化协作方式建立起来的, 内容更新速度非常快, 因此系统提供了RSS订阅功能来帮助用户及时获取最新的程序代码更新信息。另外, 系统中还包含了常见社会化Web应用的好友管理功能, 进一步方便了用户之间的交流。接下来几期将以连载形式详细讲解一个基于Django1.2.5开发的社会化程序代码共享系统的主要功能的具体实现过程。本期讲解该系统数据模型的定义过程和首页的实现方法。

1 数据模型

本系统后端数据库采用Python2.5+原生支持的Sqlite3, 数据库文件的名称在settings.py文件中设置为codedb, 该数据库中包含的数据表如下:

(1) codesharing_language:程序设计语言信息表, 用于存放本系统支持的程序设计语言信息。

(2) codesharing_snippet:程序代码信息表, 用于存放用户发布的程序代码信息。

(3) codesharing_bookmark:程序代码书签信息表, 用于记录用户收藏的程序代码信息。

(4) codesharing_tag:程序代码标签信息表, 用于存放本系统中的程序代码标签信息。

(5) codesharing_tag_snippets:标签程序代码联系表, 用于记录标签与程序代码之间的对应关系信息。

(6) codesharing_snippet_users_voted:用户投票信息表, 用于记录已经对程序代码投过票的用户信息。

(7) codesharing_friendrequest:添加好友请求信息表, 用于存放用户发出的添加好友请求信息。

(8) codesharing_friendship:用户好友信息表, 用于存放用户之间好友关系信息。

(9) auth_user:用户信息表, 用于存放本系统所有用户的信息。此表对应的数据模型User由Django提供。

(10) django_comments:程序代码评论信息表, 用于存放用户对程序代码的评论信息。此表对应的数据模型Comment由Django提供。

这些数据表之间的关系如图1所示。

为了在本系统后端数据库中生成以上这些数据表, 需要首先在本系统的models.py文件中定义与这些数据表相对应的数据模型, 如下所示:

以上这些数据模型定义完之后, 就可以使用命令manage py syncdb建立数据库codedb, 并将这些数据模型对应的数据表添加到该数据库中。如果要查看建立这些数据表所使用的具体SQL语句, 可以通过命令manage.py sqlall codesharing来实现。

2 首页实现

本系统的首页主要实现了对程序代码的分类显示和统计。用户不但可以按照程序代码更新时间的先后顺序来分页浏览系统中所有的程序代码, 而且还能够根据程序设计语言的不同对程序代码进行分类浏览。另外, 在本系统首页中还包含了两个排行榜:一个是用于反映用户发布程序代码数量多少的用户排行榜;另一个是用于反映程序代码受欢迎程度的程序代码排行榜。本系统的首页如图2所示。

在本系统的views.py文件中定义的视图函数main_page负责实现首页中包含的程序代码浏览功能和排行榜功能, 该视图函数的定义如下所示:

从首页模板文件index.html的源代码可知, 该模板文件是从另一个模板文件base.html继承而来。模板文件base.html是本系统中所有模板文件的父模板, 其内容如下所示:

在模板文件base.html中使用了自定义标签get_fr_count, 该标签的实现在自定义标签和过滤器库文件custom_tags_filters py (该文件保存在本系统的templatetags文件夹内) 中进行, 如下所示:

首页模板文件中包含的模板文件snippet_list.html用于生成程序代码列表的html代码, 该模板文件的内容如下所示:

当程序代码列表中包含的程序代码超过了指定数量之后, 本系统就会以分页形式显示程序代码列表, 分页链接和跳转表单也会同时出现在每一页程序代码列表的下方。在首页中生成分页链接和跳转表单的html代码所要用到的模板文件是paginator.html, 内容如下:

为了能正常触发视图函数main_page的执行, 还需要在本系统所在项目mysite的urls.py文件中添加视图函数main_page的一个命名url访问入口, 如下所示:

至此, 本系统数据模型的定义和首页的实现方法就全部讲解完了。

(收稿日期:2012-07-09)

摘要:社会化程序代码共享系统为广大软件开发人员的工作提供了很多便利。目前互联网上此类系统相对较少。以Django1.2.5为基础开发了一个典型的社会化程序代码共享系统。本期详细讲解该系统中数据模型的定义和首页的实现方法。

关键词:Python,Django,社会化,程序代码共享系统

程序代码共享系统 篇2

关键词:Python语言,Django框架,社会化,程序代码共享系统

上期详细讲解了本系统中程序代码相关操作的实现过程, 下面讲解本系统中包含的用户页面、程序代码页面以及好友管理功能 (发送添加好友请求、添加好友请求列表页面、接受添加好友请求、删除添加好友请求、用户好友列表页面、删除用户好友) 的实现过程。

1 用户页面

用户页面中按更新时间先后顺序以分页列表的形式显示了用户个人发布的所有程序代码, 如图1所示。用户可以通过单击导航条或者程序代码列表中的用户名链接进入到自己或他人的个人页面中。

用户页面的显示由在views.py文件中定义的视图函数user_page负责实现, 该视图函数的定义如下所示:

视图函数user_page在执行过程中要通过模板文件user_page.html来生成用户页面的HTML代码, 该模板文件的内容如下所示:

为了能将用户名链接与视图函数user_page关联起来, 还需要在urls.py文件中添加一个视图函数user_page的命名url访问入口, 如下所示:

这样, 用户就可以通过url地址http://localhost:8000/users/<用户名>/来访问<用户名>指定用户的个人页面了。

2 程序代码

程序代码页面中包含了很重要的程序代码显示功能, 如图2所示。

程序代码不同于一般的文本信息, 其显示需要使用语法高亮的特殊表现形式。程序代码语法高亮显示功能既可以在服务器端实现也可以在客户端实现, 但在服务器端对程序代码进行语法高亮处理会明显增加服务器的负担。因此, 本系统借助JQuery的一个语法高亮插件Snippet在客户端浏览器中对程序代码的语法高亮显示直接进行处理。在这样的设计思想指导下, 实现程序代码页面显示功能的视图函数snippet_page变得非常简单, 该视图函数定义如下所示:

视图函数snippet_page利用模板文件snippet_page.html生成程序代码页面的HTML代码, 该模板文件的内容如下所示:

标签render_comment_form需要借助本系统comments文件夹中的模板文件form.html来生成评论输入表单的HTML代码, 该模板文件的内容如下所示:

视图函数snippet_page的命名url访问入口在urls.py文件中添加, 如下所示:

这样, 用户就可以通过url地址http://localhost:8000/snippet/<程序代码id>/来进入<程序代码id>指定程序代码的页面了。

3 好友管理相关功能

3.1 发送添加好友请求

好友管理功能是社会化Web应用系统中包含的一个必不可少的重要功能, 本系统所包含的好友管理功能主要由发送添加好友请求、浏览添加好友请求列表、接受添加好友请求、删除添加好友请求、浏览用户好友列表以及删除用户好友这6个子功能组成。

如果用户A想添加另一个用户B为好友, 那么用户A必须先进入用户B的个人页面, 单击该页面中的“请求加为好友”链接, 向用户B发送添加好友请求。实现这一功能的视图函数是friend_request, 其定义如下所示:

为了能正常触发视图函数friend_request的执行, 还需要在urls.py文件中添加一个该视图函数的命名url访问入口, 如下所示:

这样, 用户就可以通过url地址http://localhost:8000/fr/?username=<用户名>向<用户名>指定的用户发送添加好友请求了。

3.2 添加好友请求列表页面

用户登录本系统之后, 如果有其他用户向该用户发送过添加好友请求, 则在导航条中就会出现相应的提示信息链接, 用户可以通过单击该链接进入添加好友请求列表页面, 在该页面中显示了添加好友请求的详细信息和处理请求的链接, 如图3所示。

实现添加好友请求列表页面显示的视图函数是fr_list_page, 其定义如下所示:

视图函数fr_list_page在执行过程中要使用模板文件fr_list_page.html生成添加好友请求列表页面的html代码, 该模板文件的内容如下所示:

视图函数fr_list_page的命名url访问入口在urls.py文件中添加, 如下所示:

3.3 接受添加好友请求

在添加好友请求列表页面中列出的每一个添加好友请求的后面都有一个“允许, 并将其加为好友”的接受请求链接, 用户可以通过单击该链接与发送相应请求的用户互相加为好友。实现此功能的视图函数是accept_fr, 其定义如下所示:

为了能正常触发视图函数accept_fr的执行, 还需要在urls.py文件中添加一个该视图函数的命名url访问入口, 如下所示:

这样, 用户就可以通过url地址http://localhost:8000/fr/accept/?fn=<用户名>来接受<用户名>指定的用户发送过来的添加好友请求, 与该用户互相加为好友了。

3.4删除添加好友请求

在添加好友请求列表页面中, 用户可以通过单击“删除该请求”链接将其对应的添加好友请求删除。实现此功能的视图函数是delete_fr, 其定义如下所示:

视图函数delete_fr的命名url访问入口在urls.py文件中添加, 如下所示:

这样, 用户就可以通过url地址http://localhost:8000/fr/delete/?fr_id=<添加好友请求id>来删除<添加好友请求id>指定的添加好友请求了。

3.5 用户好友列表页面

用户登录本系统之后, 可以通过单击导航条中的“好友”链接进入自己的好友列表页面, 在该页面中用户可以查看的内容包括:自己的好友、将自己添加为好友的用户以及好友近期发布的程序代码, 如图4所示。

实现用户好友列表页面显示功能的视图函数是friend_list_page, 其定义如下所示:

视图函数friend_list_page在执行过程中要利用模板文件friend_list_page.html生成用户好友列表页面的html代码, 该模板文件的内容如下所示:

视图函数friend_list_page的命名url访问入口在urls.py文件中添加, 如下所示:

3.6 删除用户好友

如果用户A打算将另一个用户B从自己的好友列表中删除 (单向删除, 即只删除从用户A到用户B的好友关系, 但从用户B到用户A的好友关系仍然存在) , 那么用户A就要首先进入用户B的个人页面, 然后单击该页面中的“将该用户从您的好友列表中删除”链接来达到这一目的。实现删除用户好友功能的视图函数是delete_friend, 其定义如下所示:

视图函数delete_friend的命名url访问入口在urls.py文件中添加, 如下所示:

这样, 用户就可以通过url地址http://localhost:8000/friend delete/?fn=<用户名>从自己的好友列表中删除<用户名>指定的好友了。

推进代码信息资源的社会化共享 篇3

组织机构代码采集的基础信息资源包括机构代码、机构名称、机构类型、注册地址、行政区划、电话号码、邮政编码、经济行业、经济类型、经营或业务范围、注册资金、批准登记机构、法人代表及身份证号码等33项信息。组织机构代码的赋码对象非常广泛, 包括机关、企业、事业单位、社会团体等我国所有依法成立的组织机构。组织机构代码信息包含了组织机构的基本信息, 它的编制规则及各项数据采集均执行相关国家标准, 代码数据采集的结果是标准的组织机构信息单元的形成。代码数据库是全体标准组织机构信息单元的集合, 记录了组织机构的公共信息, 保证了对其他信息管理系统的良好通用性, 可以真正实现信息资源共享。现在组织代码已实现了网络化管理, 网络赋码, 网络监管, 网络传输数据, 能提供准确、动态的代码信息。从国家到地方的各级代码管理部门, 严格实施代码工作五统一方针, 即按照统一政策、统一标准规范、统一规章制度、统一规划计划、统一方法步骤进行, 使代码数据库的管理建立起完善的质量保证体系。组织机构代码信息资源不断积累和发展, 数据丰富程度, 涵盖范围之广, 已得到广泛的认可。

1 组织机构代码要为创建服务型政府服务

1.1 组织机构代码证的应用

组织机构代码证是证明该单位具有组织机构代码的法定凭证, 包括纸质代码证书和电子副本IC卡。从l989年建立代码标识制度起, 其中在1993年, 国家技术监督局与中国人民银行联合下发了《关于在账户管理工作中查验全国统一代码证书的通知》, 要求全国各银行在组织机构开立基本账户时查验代码证书, 标志着组织机构代码开始应用于社会管理中。随后在统计、税务部们也得到应用。随着计算机的日益普及, IC卡技术的迅猛发展, 代码IC卡已应用到公安车管、银行、税务等部门, 通过读写器, 读取代码IC卡中的信息, 并将行业有用的信息直接采集到应用部门的业务数据库中。现在, 代码证已应用到国家的税务、银行、海关、公安、经贸、外汇、社会保障、国有资产管理等十几个部委的业务管理中。

1.2 组织机构代码信息资源的应用

组织机构代码数据库是一个很丰富的信息资源, 其本身就有很大的开发利用价值, 但最初在政府部门的应用仅限于代码数据的简单查询服务。以政府管理应用为基础, 以市场需求为导向, 坚持代码信息服务创新应是代码事业的发展方向。为适应信息社会发展, 政府部门投入巨额资金用于管理信息化建设, 各部门根据自己的特点采用了不同信息技术建立了自己的信息数据库和管理系统, 为政府管理信息化, 提高决策水平, 促进经济发展起了积极作用。但由于各部门信息系统白成体系, 互不兼容, 部门信息系统间不能进行数据交换和处理, 致使大量信息化建设投资未能发挥应有的社会和经济效益, 只有建立起统一、开放的信息化共享平台, 才能建成“系统互联、信息共享、业务联动、交叉稽核、统一监管”的社会经济监督体系。科学的标识是进行一切管理控制行为的基础和前提, 组织机构代码的特性决定了可以为各职能部门提供沟通及交换信息服务, 以代码数据为中心建立信息交换平台。在国务院信息化工作办公室的领导下, 目前工商、税务与质检部门在地方正在开展数据一致性的比较工作, 就是以代码数据为中心建立信息交换平台的尝试。

1.3 通过对组织机构代码数据库信息的分析、研究和开发

把组织机构代码信息深加工, 为政府部门提供所需的产业布局、产业结构、经济类型、经济行业、经济结构等信息, 为政府部门制定产业政策, 实施对国民经济的宏观调控提供可靠的依据, 如可以结合发展社会主义新农村政策, 利用代码信息充分为当地农村经济服务。

2 组织机构代码数据信息应用于社会及个人

社会对信息需求的多样性要求对代码数据资料进行深加工、重组和包装, 提高机构代码信息的附加值, 为用户提供快速而又科学的分类和检索方法。我们可通过有偿服务的方式, 引入市场运行机制, 有偿服务的范围是全方位的, 为公众提供资料查询是最基本的服务, 用户访问机构代码信息数据将通过互联网提供的平台。专业化服务包括提供具有技术含量的代码信息服务。通过对代码数据库进行分析, 为用户提供产业布局、行业分布、产品结构、产品名牌分布、企业规划、开发新产品提供信息咨询、分析、统计、为营销提供市场信息服务等。

3 代码CA为网上安全交易保驾护航

航空业战略联盟中的代码共享 篇4

一、企业战略联盟的简要回顾

企业战略联盟从20世纪80年代开始大量涌现, 环境的变化、应对全球经济一体化是形成战略联盟的主要原因, 复杂的国际环境和技术发展对企业提出了多方面的挑战, 战略联盟是应对挑战的一种合理选择。众多企业的战略联盟实践表明, 战略联盟成功的主要因素包括:战略伙伴的选择、联盟伙伴的管理技能、治理形式的选择、管理者在联盟中的作用等, 这些因素也为中国企业实施战略联盟提供了参考, 中国国际航空公司的做法对其他企业就颇具借鉴意义。

战略联盟的概念是美国DEC公司总裁简·霍普兰德和管理学家罗杰·奈格尔首先提出来的, 战略联盟是指两个或两个以上的、有着对等经营实力的跨国企业之间, 为了实现资源共享、风险共担、优势互补等特定战略目标, 在保持自身独立性的同时, 通过参股或契约联结等协议的方式组成的较为稳定的、合作伙伴式的、网络式的松散型联合体。联盟是为达到一定战略目标而产生的, 是企业间资源整合的结果, 是战略资源需求和社会资源机会驱动的结果。联盟是介于独立的企业与市场交易关系之间的一种组织形态, 它既没有集中化的权威控制, 又不是市场上一手交钱一手交货的交易, 是企业间在研发、生产、销售等方面相对稳定、长期的契约关系。

美国著名的战略管理学家迈克尔·波特提出的价值链理论是企业建立战略联盟的理论基础之一。价值链理论认为:企业是整个价值链的某些阶段从事分工活动的实体, 任何企业都只能在价值链的某些环节上拥有优势, 而不可能拥有全部的优势。在某些价值增值环节上, 本企业拥有优势, 在其余的环节上, 其它企业可能拥有优势, 为达到双赢, 在各自的关键成功价值链的优势环节上展开合作, 可以求得整体收益的最大化。我国的航空业在探索建立战略联盟的发展中已成为成绩斐然的排头兵。

二、国际航空业战略联盟中的“代码共享”

1. 国际航空业战略联盟的形式

航空公司战略联盟属于企业战略联盟在基础产业中的一种类型, 始于20世纪80年代, 航空战略联盟是航空企业应对经济全球化和民航业寡头竞争格局, 谋求自身发展的战略手段, 是企业的主要扩张路径, 是企业间利用伙伴关系, 对各自内部资源能力的杠杆整合, 是追求战略性互惠互利的市场行为。航空公司通过战略联盟以共同提高相对于竞争对手的竞争优势, 共享包括品牌资产和市场扩展能力在内的稀缺资源, 以建立全球航线体系, 形成市场一体化为目标, 从而提高服务质量, 并最终达到提高利润的目的。国际航空联盟作为一种新型的多边合作组织, 正在影响着国际航空业的格局, 发挥越来越大的话语权。从世界范围来看, 目前航空业的竞争已从单个航空公司之间的竞争延伸到了航空公司群体与群体之间的竞争, 也就是航空联盟之间的竞争。单一一家航空公司不能建立一个覆盖全球每一个角落的网络, 但是通过与其他航空公司建立联盟, 它就能够大大地扩展飞行网络的覆盖范围, 提高运作效率。目前全球航空业主要有三大航空联盟:即由德国汉莎和美联航为代表的星空联盟, 由英国航空公司和美利坚航空公司为代表的寰宇一家, 由达美航空公司和法国航空公司为核心成员的天合联盟。现在全球已有40多家航空公司加入联盟, 三大联盟的投入座公里 (投入) 占全球航空业的70%, 收入客公里 (产出) 占71%, 旅客份额占66%, 运营收入占76%。随着世界民航业的发展和中国航空企业在全球竞争中参与程度的加深, 中国民航也不可避免地步入联盟时代, 南方航空公司已于2007年11月加入了天合联盟, 国航和上海航空公司已于同年的12月加入星空联盟, 东方航空公司也已于2010年6月底正式展开了加入天合联盟的准备工作。通过战略联盟可以使企业获得诸如降低风险、增强实力、节约成本、共同受益等好处, 这些战略优势在我国航空公司加入全球航空联盟后尤为明显, 中国民航业的发展已经步入联盟时代。

2. 国际航空业战略联盟的“代码共享”

航空公司战略联盟的合作覆盖面很广, 如联合营销、联合运营、联合购买以及投资参股等, 其中, “代码共享”是航空联盟普遍采用的一种合作方式, 也是航空公司战略联盟最核心的内容。

(1) “代码共享”的具体做法。第一, 在重点干线上与联盟伙伴进行全面合作以维护市场地位。国航与美联航在两公司经营的所有中美航线上长期进行“代码共享”合作。目前共包括8条干线, 美国5个门户城市, 中国3个门户城市, 运力投入达到市场总体的50%。这种合作保证了国航在激烈竞争中的市场地位。第二, 合理利用国内“代码共享”以补充干线客源, 提高产品质量。国航与美联航在41条国内航线上进行“代码共享”, 涉及中国19个城市, 美国17个城市, 每周共1172个航班。由于中美两国的国内市场广阔, 这种互补性的合作有利于双方提供无缝隙的中转服务, 满足旅客对全程旅行产品的需求, 同时又为双方的干线和国内航线输送了客源。第三, 利用远点合作的“代码共享”, 以延伸航线开拓市场。国航与汉莎航除了双边及国内“代码共享”外, 还在德国以外的7个点上进行了“代码共享”合作, 涉及到3个国家, 12条航线, 每周共130个航班。由于欧洲国内市场狭小, 这种远点的合作为干线输送了大量客源, 实际上也拓展了国航在欧洲的网络覆盖。第四, 在不投入运力的情况下, 利用“代码共享”合作进入有潜力的市场。对于部分有潜力的市场, 由于现阶段市场规模有限, 或者公司战略的原因, 或者现阶段运力限制, 不具备开航的条件。在这种情况下利用“代码共享”, 在联盟伙伴经营的航线上进行销售, 达到进入市场、培养客源的目的。

(2) “共享”的益处。可以有效扩大联盟成员的网络覆盖;可以有效增加联盟成员的市场存在;合作伙伴通过减少重复的运力投入, 从而加强网络配合、降低成本;合作伙伴可以通过网络的匹配, 加强航班间的衔接, 为旅客提供无缝隙的中转服务, 从而提高产品的衔接性, 提高服务质量。

(3) “代码共享”对客户的便利之处。第一, 服务质量的提高, 对于那些没有直达航班的航线, “代码共享”相比传统的联运形式具有强大的优势, 消费者在订票、出票、值机、转机、行李转运等方面都可以得到无缝隙服务。第二, 丰富航班选择, “代码共享”一般说来将增加公众航班选择余地, 特别是在给定的航线上或邻近航线上, 但不代表现有航班是新服务。第三, 优惠的票价, 联盟可以使联盟内部的航空公司联合推出需要由几家共同联运的环球程票价, 其票价要比非联盟成员间的联运票价优惠, 因此使得此类票价降低, 方便了需要全球飞行的旅客。第四, 常旅客计划, 对旅客来说, “代码共享”航班能够赢得常旅客的累积里程奖励, 因为“代码共享”协议往往伴随相互参与这种常旅客奖励计划。

上一篇:图像局部纹理特征下一篇:6kV系统接地