档案日期2010的46

2010年11月15日 - 2010年11月21日

最后更新于 .

今天在开例会的时候,提到其他小组要做一个通用任务系统,会涉及到C++调用其他语言脚本开发的逻辑。之前倒是听互娱那边的同事说过,他们都是嵌入lua来进行脚本编程,但自己从来没试过。
而作为一个严重中毒的vim+python爱好者,其实我每天都在用vim直接执行python命令(如出名的pyflakes插件),想知道vim是怎么实现的,所以就自己试了一下。
由于家里没有linux开发环境,所以就在windows下用 Mingw + makefile的方式开发了。
先写一个简单的py程序:helloworld.py

def hello():
       print"hello,world!"

然后来写我们的c++代码:

py.cpp

#include<Python.h>//前面所做的一切配置都是为了调用这个头文件和相关库
int main()
{
    Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('./')");
    PyObject * pModule = NULL;//声明变量
    PyObject * pFunc = NULL;// 声明变量
    pModule =PyImport_ImportModule ...

最后更新于 .

好吧,因为组织需要,最近又开始转战php了,业务逻辑都还好说,主要是老大要求在数据访问层上加上登录态验证。
其实这种要求也是合理的,互联网服务要求上层保护下层,但下层不能完全相信上层。但是问题也就来了,有如下两种方案:

1.写一个mysql proxy server,用来将调用方发来的请求拼装,然后返回给调用侧。这样做的主要难度在于:

  • a)SQL语句的拼装及序列化
  • b)数据集序列化,虽然有不少这方面的产品,但是终究还是太过复杂,而且没有时间折腾

果断放弃。
2.封装一层mysql的api,调用方直接在本地调用即可。这样的话,只需要考虑SQL语句的拼装即可。现在就有很多选择啦,

  • a)使用类似django里面Model的模型类
  • b)使用ci中的Active Record

虽然说Model的方式,对数据层的屏蔽较好,但是小组成员普遍认为这种方式过重,轻量的一点的话,最终还是选择了CodeIgniter中的AR。
OK,那么现在,考验ci模块拆分的好不好的时候到啦!
具体中间的种种辛苦就不说啦,直说我最终的实现把,拷贝system\database到一个单独的目录,x:/php/ 。
创建一个文件myconfig.php:

<?php
define ...

每日归档

上周

2010年度第 44 周

下周

2010年度第 47 周

归档