The Web2.0 Developing and Tools
写此文的目的主要是希望他能够对你有些帮助以及让我选择忘记.
0) 网站整体框架
a.最好采用MVC模式.
b.开发语言最好是开发效率高并且可读性好的脚本语言.
1) 前台篇
a.基本的页面设计和开发以及CSS在这里暂时忽略了
b.Js一般来说选择jQuery会比较好,尽管还有很多很好的Js Libs.
c.对于网站的前端优化YUI团队的14条总结应该是非常好的了
2) 框架推荐
a.PHP ZendFrameworks(php base)
b.RoR Ruby on Rails (ruby base)
c.Django (python base)
d.TurboGears(python base)
以上框架都是基于MVC模式的,可以开发出结构清晰的程序
对于以后的维护和扩展都是大有裨益的.
3) 后台程序
a.网站如果需要进行图片存储的话,可以使用MogileFs,
好处可以通过他的介绍了解到.
b.当然如果是初期,也可以只简单的使用文件系统来存储,
Reiserfs的B*Tree实现就很好
尽管现在维护不是很好(据说reiser犯了谋杀妻子罪)
c.搜索应该是一个应用必不可少的组建,如果你是用MySQL,
那么可以简单的使用他的全文检索功能(MyISAM支持,InnoDB不支持),
千万别用LIKE %xx%这样的模式,要遍历整个数据文件的啊.
d.如果你熟悉C++,那么使用Xapian,检索效率很高
如果你熟悉Java,那么使用Lucence,检索效率不错,
当然也有C++版本的CLucence
e.使用内存缓存来加速网站,推荐Memcache.
4) 数据库模式
a.如果是MySQL,可以使用Master-Slave模式,同时也兼得备份功能了
5) Web服务器
a.Apache应用很广
b.Lighttpd性能不错
c.Nginx并发性很好
6) Web服务器和应用程序通信
a.CGI
b.FastCGI
c.Module(需要Web服务器支持)
d.SCGI
e.应用程序是在单独Process环境还是在公用Thread环境(设计并发量和稳定性问题)
7) 静态数据缓存
a.使用Squid作为缓存
8) 备份数据
a.可以使用rsync
9)操作系统
a.推荐使用Gentoo,安装手册写的很好,安装起来也很方便.
b.也可以使用Debian,Ubuntu Server Edition,SUSE...
10) 硬件
a. AMD Opteron多核 性能不错.
11) 部署
a.最好部署在电信,然后网通的机器使用Proxy透传.
开发工具:
1)开发过程如果是多人,那么项目管理工具最好还是有一个推荐Trac系统.
2)如果你想单独建立一个Wiki系统那么MoinMoin很不错:)
3)代码版本控制工具可以使用SVN
4)如果你需要一个高性能的模板系统那么ClearSilver应该能够满足你的需求.
5)如果你需要一个封装良好的C++库的话,POCO或许对你会有些帮助
6)事件驱动网络引擎Twisted很不错
7)有时需要对一些机器日志进行分析,那么SEC或许值得你看一下
题外话:
如果对web开发很关心的话,那么推荐你去DBANotes这里看一下
没有说哪一种方案是最优的,需要根据自己的业务特点选择相应的方案
对于一个开发人员来说,重要的不仅是记住什么,了解什么,
更重要的是知道什么,解决什么样的问题吧...
0) 网站整体框架
a.最好采用MVC模式.
b.开发语言最好是开发效率高并且可读性好的脚本语言.
1) 前台篇
a.基本的页面设计和开发以及CSS在这里暂时忽略了
b.Js一般来说选择jQuery会比较好,尽管还有很多很好的Js Libs.
c.对于网站的前端优化YUI团队的14条总结应该是非常好的了
2) 框架推荐
a.PHP ZendFrameworks(php base)
b.RoR Ruby on Rails (ruby base)
c.Django (python base)
d.TurboGears(python base)
以上框架都是基于MVC模式的,可以开发出结构清晰的程序
对于以后的维护和扩展都是大有裨益的.
3) 后台程序
a.网站如果需要进行图片存储的话,可以使用MogileFs,
好处可以通过他的介绍了解到.
b.当然如果是初期,也可以只简单的使用文件系统来存储,
Reiserfs的B*Tree实现就很好
尽管现在维护不是很好(据说reiser犯了谋杀妻子罪)
c.搜索应该是一个应用必不可少的组建,如果你是用MySQL,
那么可以简单的使用他的全文检索功能(MyISAM支持,InnoDB不支持),
千万别用LIKE %xx%这样的模式,要遍历整个数据文件的啊.
d.如果你熟悉C++,那么使用Xapian,检索效率很高
如果你熟悉Java,那么使用Lucence,检索效率不错,
当然也有C++版本的CLucence
e.使用内存缓存来加速网站,推荐Memcache.
4) 数据库模式
a.如果是MySQL,可以使用Master-Slave模式,同时也兼得备份功能了
5) Web服务器
a.Apache应用很广
b.Lighttpd性能不错
c.Nginx并发性很好
6) Web服务器和应用程序通信
a.CGI
b.FastCGI
c.Module(需要Web服务器支持)
d.SCGI
e.应用程序是在单独Process环境还是在公用Thread环境(设计并发量和稳定性问题)
7) 静态数据缓存
a.使用Squid作为缓存
8) 备份数据
a.可以使用rsync
9)操作系统
a.推荐使用Gentoo,安装手册写的很好,安装起来也很方便.
b.也可以使用Debian,Ubuntu Server Edition,SUSE...
10) 硬件
a. AMD Opteron多核 性能不错.
11) 部署
a.最好部署在电信,然后网通的机器使用Proxy透传.
开发工具:
1)开发过程如果是多人,那么项目管理工具最好还是有一个推荐Trac系统.
2)如果你想单独建立一个Wiki系统那么MoinMoin很不错:)
3)代码版本控制工具可以使用SVN
4)如果你需要一个高性能的模板系统那么ClearSilver应该能够满足你的需求.
5)如果你需要一个封装良好的C++库的话,POCO或许对你会有些帮助
6)事件驱动网络引擎Twisted很不错
7)有时需要对一些机器日志进行分析,那么SEC或许值得你看一下
题外话:
如果对web开发很关心的话,那么推荐你去DBANotes这里看一下
没有说哪一种方案是最优的,需要根据自己的业务特点选择相应的方案
对于一个开发人员来说,重要的不仅是记住什么,了解什么,
更重要的是知道什么,解决什么样的问题吧...


0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home