锁定老帖子 主题:有人试过用c++写b/s程序没有?
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-20
可能用c++写b/s意义不大, 不过我觉得: 1.现在stl库,boost库已经把c++扩充得很强大, 动态语言的一些优点不再那么令人神往了. 2.c++连本地数据库速度还是挺爽的, 配合sqlite3不错, 不是说b/s主要瓶颈在io上吗? 4.我最近做的几个b/s程序都是用了大量的ajax, 所以c++的任务就是生成xml或json, 这些应该都有很方便的库. 3.c++也有很好的ide, 我用vc9express觉得相当不错, 不管是编码还是调试, rails最好的ide netbeans速度还是有点不爽 4.fcgi的编程风格也容易写出mvc这种模式 5.适合过分饭c++的人,过分追求速度的人,虽然用c++写出的b/s程序不一定比rails快多少, 但是多少能满足有些人的bt心理, 呵呵 下面是我程序的几个部分: 1.dll, 主要用来处理业务逻辑, 主要导出函数为dispatcher 2.主程序, 主要是fcgi主循环, 页面被访问之后循环开始, 显示调用调用dll的dispatcher解析http请求, 这样程序在开发的过程中基本不用杀掉fcgi进程 3.html,css,images..., 这些不是c++了, 可以用其它的工具来做 4.测试程序, 不是单元测试(我这方面经验还不足). 分两种, 一个是普通cgi, 因为fcgi主程序一旦调用, 关闭比较麻烦, 需要杀掉一个apache进程和一个fcgi进程, 用普通cgi就方便了; 另一种是一个本地程序, 模仿主程序显示调用dll, 这主要是为了方便调试dll, 用vc调试还是相当方便的. 另外我还有一些想法: 1.因为主程序中的静态变量是被所有的fcgi主循环共享的, 所以这里可以放一些共享数据, 缓存一些东西 2.不一定所有地方都用ajax, 纯用c++生成或者纯的html模板可能方便性不是很高, 可以考虑在html模板中假如一些模板语言, 自己定语法用c++解析可能速度不一定快, 用一些简单的又可以用c++执行的动态语言呢? 比如说lua? 其实用c++生成json放到页面里让javascript自己去处理也行 我的想法不一定很成熟, 只是因为很喜欢c++, 也熟悉b/s开发, 看看有没有途径让c++也可以方便的写b/s程序 欢迎拍砖! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-04-20
那你起码要处理好两个问题:
1、改个页面就要重新编译一遍C++源代码,你是否能够忍受 2、你是否有足够自信确保程序创建的所有对象都被你手工销毁掉了,否则你会有无穷无尽的烦恼。 |
|
返回顶楼 | |
发表时间:2008-04-20
robbin 写道 那你起码要处理好两个问题: 1、改个页面就要重新编译一遍C++源代码,你是否能够忍受 2、你是否有足够自信确保程序创建的所有对象都被你手工销毁掉了,否则你会有无穷无尽的烦恼。 嗯,戳到了一些痛处 第一点还好,多用dll和预编译头速度还是挺快的 第二点确实是有些麻烦,不过就算不是b/s应用,这些问题一样存在于普通c++程序中 |
|
返回顶楼 | |
发表时间:2008-04-21
用c++写的cgi在性能上和其他工具没啥区别,以我的经历io更快啥的基本上只是自我安慰而以。关键在于项目的需求,我这里99%都是c++,剩下一点cgi再引入新语言实在没啥必要,干脆就用c++一勺烩了。
c++写cgi真正需要的其实就是两样东西,一个cgi库,一个html模版库,网上一抓一把,不爽的话自己写一个也不麻烦。 |
|
返回顶楼 | |
发表时间:2008-04-22
还是没那个时间和精力去搞全c/c++,现在b/s用rails,后台用一个c++程序用共享内存缓存索引,然后用c++和swig写个ruby的扩展从共享内存读取需要的索引进行搜索(这一步用纯ruby好慢),速度一样没有问题,而且整个搜索引擎各模块分的很清晰
|
|
返回顶楼 | |
发表时间:2008-04-23
好,取长补短,这才是正道~
|
|
返回顶楼 | |
发表时间:2008-05-01
1、C++写CGI没有现成的模板引擎,写起来很累很烦。
2、维护和修改起来很麻烦。 3、BS瓶颈在io,并不是说调用函数,而是数据库的处理,我想应该是这个意思。 4、内存管理方面,如果做得不好,只有过段时间就重起fastcgi. 5、静态变量可以直接用共享内存做。 6、fastcgi+C++的速度确实很快,要是追求极速的话,这是个途径,但要看瓶颈和有没有必要高效 7、boost库能让你用很少的代码来做某件事情,但难维护,在很多情况下,代码越少越难维护和调试。 8、可以用写php的模块,这样也不错。 |
|
返回顶楼 | |
发表时间:2008-05-04
rubynroll 写道 好,取长补短,这才是正道~
同意.各取所长,才是正道;:) |
|
返回顶楼 | |
发表时间:2008-05-04
如果用C++写B/S轻松,就不会有PHP了。我认为PHP是C/C++的B/S程序版。
|
|
返回顶楼 | |
发表时间:2008-05-04
你可以用一下google的ctemplate,那也是页面生成时很有用的库。
|
|
返回顶楼 | |