Monthly Archives: 3月 2015

[转载]Peter Norvig:十年学会编程

作者 Peter Norvig 是计算机科学家,Google 的研究总监。
在本文中,Peter Norvig会告诉你:为什么急功近利地学习软件开发技术是没效果滴?

================华丽的分割线================

为啥都想速成?

随便逛一下书店,你会看到《7天自学Java》等诸如此类的N天甚至N小时学习Visual Basic、Windows、Internet的书。我用亚马逊网站的搜索功能,出版年份选1992年以后,书名关键词是:“天”、“自学”、“教你”, 查到248个结果,前78个是计算机类图书,第79个是《30天学孟加拉语》。我用“天”换成“小时”,结果更惊人,有多达253本书,前77本是计算机 图书,第78是《24小时自学语法句式》。在前200名中,96%是计算机的书。

结论就是:要么人们急于学习电脑,要么计算机比其他东西学起来要异常简单。没有任何书是关于几天学习贝多芬或量子物理的,甚至连犬类装扮都没有。费 雷森(Felleisen)等人在其著作《如何设计程序》中同意这个趋势,其中提到:“坏设计很简单,笨蛋才用21天学,尽管他们还是真傻。”

让我们看看《三日学会C++》这个书名意味着什么:

◇学习:
三天内你可能没有时间写出有意义的程序,或者从中积累经验。你不可能有时间去跟职业编程者一起去理解在C++环境下的状况。简而言之,你没有充足的时间学很多。所以这本书只能说肤浅的知识。正如亚历山大·波普(Alexander Pope)所言:一知半解是很危险的。

◇C++:
三天内你可能学会C++的句法(如果你已经了解其他的语言),但你还不会使用它。打个比方,假如你是个Basic程序员,你可能写出Basic风格的 C++程序,而无法理解C++的真实好处。那要点是什么?艾伦·佩里斯(Alan Perlis)曾经说过:“一门不能影响你编程观点的语言不足学的。”有可能你学了一点点C++(或者诸如Javascript、Flex之类),因为你 需要和现成的工具接口以完成手头的任务。这种情况下,你不是在学习如何编程,只是在学习如何完成任务。

◇三日:
不幸地是,这远远不够,下一部分会详细讲。

如何用十年掌握编程

研究人员(Bloom (1985), Bryan & Harter (1899), Hayes (1989), Simmon & Chase (1973))得出结论:想要在诸多领域达到职业水平需要十年,比如国际象棋,作曲,电报操作,绘画,弹钢琴,游泳,网球以及神经心理学和拓扑学的研究。 关键是精心练习,只是一遍一遍地重复是不够的,必须挑战恰好超越你能限的事情,尝试并思考你的表现,并自我矫正。周而复始。这并无捷径!4岁的音乐奇才莫 扎特用了13年才能创作世界级的音乐。另外,披头士乐队似乎在1964年的埃德·苏利文( Ed Sullivan show)演出中一炮而红,但是他们自从1957年就在利物浦和汉堡的酒吧演出,在取得广泛关注后,第一部重量级作品《佩珀军士》(Sgt. Peppers)是在1967年发行。马尔科姆·格拉德威尔(Malcolm Gladwell)撰文描述了一项针对柏林音乐学院学生的研究,他们被分为尖子,中等和不足三类,并被问到他们练琴的情况:
所有三组中的人,开始学琴的年龄大概相差无几,五岁左右。在刚开始的几年,所有人练习量也差不多,一周两三个小时。自八岁开始,实质性变化就有了。那些精 英学生开始比其他人练习更多:九岁的时候一周六个小时,十二岁的时候一周八个小时,十四岁的时候一周十六个小时,一直到二十岁的时候一周要超过三十小时。 截止到二十岁,在他们的生涯里已经有总计一万小时练琴。仅仅表现可以的那部分学生加起来是八千小时,那些未来的音乐老师有四千小时。

所以,更确切地说,一万小时,而非十年,是个神奇之数。萨缪尔·约翰逊(Samuel Johnson, 1709-1784)认为还需更长时间:“卓越乃一生之追求,而非其它”。 乔叟(Chaucer, 1340-1400)抱怨道”the lyf so short, the craft so long to lerne.” (生之有限,学也无涯)。希波克拉底(Hippocrates, c. 400BC)因这句话被世人所知:”ars longa, vita brevis”(译注:拉丁语,意为“艺无尽,生有涯”),更长的版本是 “Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile”,翻译成英文就是 “Life is short, (the) craft long, opportunity fleeting, experiment treacherous, judgment difficult.” (生有涯,艺无尽,机遇瞬逝,践行误导,决断不易)。

我的编程成功秘笈是:

◇首先要对编程感兴趣,能从编程中得到乐趣。一定要让它足够有趣,因为你要保持你的兴趣长达十年。

◇与别的程序员交流;阅读别人的代码——这比看任何书或参加培训课都重要。

◇实践。最好的学习乃实践。俗话说:“编程的至高境界一定要通过充分的实践才能达到,而个人的能力可通过不懈努力获得显著提升。” (p. 366) “最有效率的学习需要明确的目标,适当的难度,知识回馈,并容许重复或修正错误。” (p. 20-21) 《实践认知:每日的思维、数学及文化》(Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life) 在这方面可做参考。

◇如果你愿意,花四年学习大学课程(或者再加上读研)。这将给你赢得某些工作机会,并给予你在该领域的深层见解。但如果你不喜欢学校的学习,你同样 可以在工作中获得相似的经验。无论如何,单靠书本是远远不够的。“学习计算机科学不会让你成为编程专家,如同学习绘画和色彩理论不会让你成为画家一样”。 这是埃里克·雷蒙德(Eric Raymond)说的,他是《新黑客字典》(The New Hacker’s Dictionary)的作者。我雇用过的最优秀程序员,只有高中文凭。但他开发过许多伟大软件,有自己的新闻组,通过公司认股赚的钱就让他买下了自己的 夜店。

◇和其他程序员一起参与工程项目。在某些项目中担当最优秀程序员,在另一些项目中充当最差劲程序员。充当领头羊的时候,你要测试你领导一项工程的能 力,并用你的视野来激发他人;如果在项目组中垫底,就应该学习其它牛人在做些啥,以及他们不喜欢做的(看他们把哪些活让给你做)。

◇继续别人的工程项目。去理解先前程序员写的程序。学习如何理解并解决先前程序员没有考虑到的问题。思考你的程序该如何设计以便让之后的程序员更容易维护。

◇至少学6种程序语言。其中包括一种支持类抽象的(Java和C++),一种支持函数抽象的(如Lisp或ML),一种支持语义抽象的 (Lisp),一种支援声明规范的(如Prolog或C++模板),还有一种支援协程的(Icon或Scheme),另外一种支持并发的(Sisal)。

◇记住,在“计算机科学”里有“计算机”一词。理解计算机执行你的代码的时候花费的时间。比如:从内存中取一个字(考虑有无缓存未命中情形),连续从磁盘读字,或者在磁盘中定位。

◇参加语言标准化工作。这可能是有关 ANSI C++ 委员会,也可能是决定你编码风格是两格缩进或四格缩进。无论如何,你要知道其他人对语言的喜好程度,有时还要想想他们为什么喜欢这样。

◇知道自己应该在何时脱身于语言标准化

所有上述这些,很难通过书本的学习来达到。我头一个孩子出生时,我读了所有的“如何做”(How To)系列的书籍,却依然对育婴毫无头绪。30个月后,我第二个孩子出生,我还需要温习一下那些书吗?绝对不!相反,我完全可以参照个人经验,而结果相当 有效。这更让我确信:我的经验胜过那些专家们写的上千页文字。

弗雷德·布鲁克斯(Fred Brooks)在《没有银弹》(No Silver Bullet)一书给出了寻找顶级设计师的三条建议:
◇尽早系统地识别出顶级设计师。
◇分配一个人作为其职业规划的导师。
◇给予机遇让成长中的设计师互相磨砺。

此处假定有部分人已经有成为伟大设计师的潜质,你所需的就是要诱导他们。艾伦·佩里斯(Alan Perlis)一针见血地指出:”假如人人都可以学雕刻,那就得教米开朗基罗如何不去干雕刻。对于伟大程序员,也是如此。”

所以,简单地买一本Java书,你或许能找到些有用的东西,但绝不会让你在24小时内甚至24天抑或24月内,成为行家里手。

洋文原始出处:

http://norvig.com/21-days.html

浏览器 user-agent 字符串的故事

你是否好奇标识浏览器身份的User-Agent,为什么每个浏览器都有Mozilla字样?

 

故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心(National Center for Supercomputing Applications,简称NCSA)开发,并于1993年发布的一款浏览器。它自称“NCSA_Mosaic/2.0(Windows 3.1)”,Mosaic可以同时展示文字和图片,从此浏览器变得有趣多了。

 

然而很快就出现了另一个浏览器,这就是著名的Mozilla,中文名称摩斯拉。一 说 Mozilla = Mosaic + Killer,意为Mosaic杀手,也有说法是 Mozilla = Mosaic & Godzilla,意为马赛克和哥斯拉,而Mozilla最初的吉祥物是只绿色大蜥蜴,后来更改为红色暴龙,跟哥斯拉长得一样。但Mosaic对此非常不 高兴,于是后来Mozilla更名为Netscape,也就是网景。Netscape自称“Mozilla/1.0(Win3.1)”,事情开始变得更加有趣。网景支持框架(frame),由于大家的喜欢框架变得流行起来,但是Mosaic不支持框架,于是网站管理员探测user agent,对Mozilla浏览器发送含有框架的页面,对非Mozilla浏览器发送没有框架的页面。

 

后来网景拿微软寻开心,称微软的Windows是“没有调试过的硬件驱动程序”。 微软很生气,后果很严重。此后微软开发了自己的浏览器,这就是Internet Explorer,并希望它可以成为Netscape Killer。IE同样支持框架,但它不是Mozilla,所以它总是收不到含有框架的页面。微软很郁闷很快就沉不住气了,它不想等到所有的网站管理员都 了解IE并且给IE发送含有框架的页面,它选择宣布IE是兼容Mozilla,并且模仿Netscape称IE为“Mozilla/1.22(compatible; MSIE 2.0; Windows 95)”,于是IE可以收到含有框架的页面了,所有微软的人都嗨皮了,但是网站管理员开始晕了。

 

因为微软将IE和Windows捆绑销售,并且把IE做得比Netscape更 好,于是第一次浏览器血腥大战爆发了,结果是Netscape以失败退出历史舞台,微软更加嗨皮。但没想到Netscape居然以Mozilla的名义重 生了,并且开发了Gecko,这次它自称为“Mozilla/5.0(Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826”。Gecko是一款渲染引擎并且很出色。Mozilla后来变成了Firefox,并自称“Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0”。Firefox性能很出色,Gecko也开始攻城略地,其他新的浏览器使用了它的代码,并且将它们自己称为“Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1”,以及“Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0”,每一个都将自己装作Mozilla,而它们全都使用Gecko。

 

Gecko很出色,而IE完全跟不上它,因此user agent探测规则变了,使用Gecko的浏览器被发送了更好的代码,而其他浏览器则没有这种待遇。Linux的追随者对此很难过,因为他们编写了 Konqueror,它的引擎是KHTML,他们认为KHTML和Gecko一样出色,但却因为不是Gecko而得不到好的页面,于是Konqueror 为得到更好的页面开始将自己伪装成“like Gecko”,并自称为“Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)”。自此user agent变得更加混乱。

 

这时更有Opera跳出来说“毫无疑问,我们应该让用户来决定他们想让我们伪装成哪个浏览器。”于是Opera干脆创建了菜单项让用户自主选择让Opera浏览器变成“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51”,或者“Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51”, 或者“Opera/9.51 (Windows NT 5.1; U; en)”。

 

后来苹果开发了Safari浏览器,并使用KHTML作为渲染引擎,但苹果加入了许多新的特性,于是苹果从KHTML另辟分支称之为WebKit,但它又不想抛弃那些为KHTML编写的页面,于是Safari自称为“Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5”,这进一步加剧了user agent的混乱局面。

 

因为微软十分忌惮Firefox,于是IE重装上阵,这次它自称为“Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ”,并且渲染效果同样出色,但是需要网站管理员的指令它这么做才行。

 

再后来,谷歌开发了Chrome浏览器,Chrome使用Webkit作为渲染引 擎,和Safari之前一样,它想要那些为Safari编写的页面,于是它伪装成了Safari。于是Chrome使用WebKit,并将自己伪装成 Safari,WebKit伪装成KHTML,KHTML伪装成Gecko,最后所有的浏览器都伪装成了Mozilla,这就是为什么所有的浏览器 User-Agent里都有Mozilla。Chrome自称为“Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13”。

 

因为以上这段历史,现在的User-Agent字符串变得一团糟,几乎根本无法彰显它最初的意义。追根溯源,微软可以说是这一切的始作俑者,但后来每一个人都在试图假扮别人,最终把User-Agent搞得混乱不堪。

 

各大浏览器诞生年表:

1993年1月23日:Mosaic

1994年12月:Netscape

1994年:Opera

1995年8月16日:Internet Explorer

1996年10月14日:Kongqueror

2003年1月7日:Safari

2008年9月2日:Chrome

微信公众平台服务号、订阅号的区别及如何选择

微信公众平台现在已分成订阅公众号和服务公众号两种类型。

公众平台服务号,是公众平台的一种帐号类型,旨在为用户提供服务。
特点:
每月(30天)可群发一条信息给粉丝;
群发的消息显示在聊天列表、下发消息即时通知粉丝;
服务号会在订阅用户(粉丝)的通讯录中
服务号可申请自定义菜单

适用用户:主要是给粉丝提供服务。一般银行和企业用户比较适合(招商银行、中国南方航空)。

公众平台订阅号,是公众平台的一种帐号类型,为用户提供信息和资讯。
特点:
每天(24小时内)可群发一条消息给粉丝;
群发消息将会显示在订阅用户(粉丝)的“订阅号”文件夹中、群发消息不会提示推送;
在订阅用户(粉丝)的通讯录中,订阅号将被放入订阅号文件夹中;
订阅号认证后可申请自定义菜单(个人类型除外)

适用用户:主要是提供信息和资讯。一般媒体用户比较适合(如:骑行西藏、央视新闻)。

订阅号、服务号设置方法

设置方法:进入公众平台=》设置=》帐号信息=》类型=》升为服务号/订阅号=》选择确定即可。

注意:

1、公众号只有1次机会可以选择成为服务号/订阅号,类型选择之后不可修改,请慎重选择。

2、选择“服务号”时,若您之前公众号选择的是“个人类型”,需要您选择企业、媒体、政府、其他组织类型重新登记相关信息。

3、目前注册新的微信公众号,进行信息登记选择“个人”类型时,默认为订阅号,无法选择服务号。

浅析HTML5的优势及对于SEO的影响

什么是 HTML5

HTML5 是继 HTML4.01, XHTML 1.0 和 DOM 2 HTML 后的又一个重要版本,旨在消除富 Internet 程序(RIA)对 Flash, Silverlight, JavaFX 一类浏览器插件的依赖。

HTML5 概要

HTML5 带来很多新功能,以及 HTML 代码上的改变,你需要使用一些特定的 API 脚本,如:

DOM
实现 2D 绘图的 Canvas 对象
可控媒体播放
离线存储
文档编辑
拖放
跨文档消息
浏览器历史管理
MIME 类型和协议注册

HTML5可以提供:

在用户的可用性和友好体验上带来一些改进;
新的标签,这将有助于开发人员定义重要的内容;
可以给站点带来更多的多媒体元素(视频和音频);
可以很好的替代FLASH和Silverlight;
当涉及到网站的抓取和索引的时候,对于SEO很友好;
将被大量用户移动应用程序和游戏。

那些支持 HTML5 的浏览器在处理 HTML 代码错误的时候必须更灵活,而那些不支持 HTML5 的浏览器将忽略 HTML5 代码。

HTML 语法的变化

HTML5 引入了新的 HTML 元素和属性,有的是传统通用元素的语义化版本,如取代  div 元素的 nav, footer 等元素,也有一些全新的元素,如 audio, video。一些在 HTML4 中不被推荐使用的元素,如 font 和 center 将被弃用。HTML5 引入的新 HTML 元素包括:

article:文章
aside:内容旁边的侧边栏内容
audio:音频
canvas:2D 绘图
command:命令按钮
datalist:下拉选择框
details:对象的细节
dialog:对话框
embed:外部插件或对象
figure:一组媒体对象以及标签文字
footer:页脚
header:页首
hgroup:文档某一部分的信息
keygen:表单生成的 Key
mark:标注的文字
meter:预先定义的范围内的度量
nav:导航条
output:输出
progress:进度条
rp:标识 rubby 内容
rt:rubby 内容的解释
ruby:rubby 内容
section:定义一个部分
source:媒体的资源
time:日期时间
video:视频

这些新标签,可以让你的 HTML 文档更容易加载,且更容易被搜索引擎抓取其中的有用信息。比如,搜索引擎可以直接抓取它最关心的 article 标签里面的内容。

HTML5 同那些流行的技术如何共存

如今的 Web 世界已经习惯了各种插件和 API,HTML5 为 Web 开发与设计者带来了方便与不便,HTML5 将如何同现在的这些流行技术共存?

HTML5 与 Flash

这个争论由来已久,Flash 被某些开发设计者滥用导致一些网页加载缓慢,而 HTML5 为之带来一线曙光。拿仍在襁褓中的 HTML5 和已经有10年历史的 Flash 进行比较也许有失公允,但这是人人都关心的一个问题。相对 Windows 用户来说,Mac 用户可能会从 HTML5 获得更多好处,因为苹果一直不愿支持 Flash。下面是 Mike Chambers 针对 Mac 和 Windows 平台浏览器的 CPU 负载而做的一部分测试:

测试显示,Mac 平台的 Flash 表现要差于  Windows 平台,这还取决于你使用的浏览器。现在看来,就视频游戏而言,Flash 是更好的选择,但取决于你的浏览器,如果你的视频不是很复杂,HTML5 是更好的选择。Web开发与设计者从这些争论中应该吸取的东西是,Flash 之外还有别的选择,但 Flash 有牢固的地盘,在为客户提供开发设计的时候,需要对他们的目标客户做一些研究。

HTML5 与 Ajax

现在的 HTML 语言的一个问题是,它是一种轻量级的应用界面,那些喜欢使用 Ajax 实现在线应用的开发者会发现 HTML 非常不好用。Ajaxwith.com 认为,HTML 适合用来加载界面,JavaScript 用来执行命令,虽然 HTML 在作为界面语言方面并不好用,但鉴于多数开发者对它的熟悉程度,HTML 还是不可缺少。

一个好消息就是,HTML5 会让 Ajax 应用的实现变得更容易。

HTML5 with CSS

你需对你的 CSS 代码就行整理以支持 HTML5,因为 h1, h2 之类的标签将不再使用,为了实现同 HTML5 的兼容,最好的方式是使用 CSS reset,将那些常见的 HTML 标签的 CSS 属性清零,woork 认为,最好的 CSS Reset 是 Eric Meyers CSS reset。

HTML5和Google

2010年5月22日,谷歌创建了一个涂鸦来纪念Pac Man的视频游戏。这个涂鸦是一个动画,同时也是一个可以玩的Pac Man的游戏。这个涂鸦就是谷歌通过使用HTML5标准制作的,当然谷歌也提供一个FLASH版本来支持不兼容HTML5的浏览器。我敢打赌,这是大多数 互联网网民第一次和HTML5的接触。对于个人来说,这是一个兴奋的消息。以我的观点,这个涂鸦提供了一个机会可以窥视未来互联网、网页、移动应用软件和 游戏等发展趋势。对于搜索引擎优化,他开辟了我更多的想象,它让我思考HTML5在SEO领域的潜力。网站转移到HTML5标准对于SEO有什么优势?

HTML5与SEO

一、使搜索引擎更加容易抓去和索引

对于一些网站,特别是那些严重依赖于FLASH的网站HTML5是一个大福音。如果你有一个都是FLASH的站点,你就一定会看到切换到HTML5 的好处。首先,搜索引擎的蜘蛛将能够抓去你的站点和索引你的内容。所有嵌入到动画中的内容将全部可以被搜索引擎读取。在搜索引擎优化的基本理论中,这一方 面将会驱动你的网站获得更多的右击流量。

二、提供更多的功能,提高用户的友好体验

使用HTML5的另一个好处就是它可以增加更多的功能。对于HTML5的功能性问题,我们可以从全球几个主流站点对它的青睐就可以看出。社交网络大 亨Facebook已经推出他们期待已久的基于HTML5的iPad应用平台,潘多拉最近也推出他们基于HTML5的音乐播放器的新版本。游戏平台 Zynga最近也在推出了三款新的在移动设备浏览器上运行的基于HTML5的游戏等等。每天都有不断的基于HTML5的网站和HTML5特性的网站被推 出。保持站点处于新技术的前沿,也可以很好的提高用户的友好体验。

三、可用性的提高,提高用户的友好体验

最后我们可以从可用性的角度上看,HTML5可以更好的促进用户于网站间的互动情况。多媒体网站可以获得更多的改进,特别是在移动平台上的应用,使 用HTML5可以提供更多高质量的视频和音频流。到目前位置,事实就是iPhone和iPad将不会支持FLASH,同时ADOBE公司也在近期公开声明 将停止FLASH基于移动平台的开发,现在我们已经可以这么说移动平台日后视频音频是HTML5的天下。

可以肯定的是,越来越多的SEOer开始研究对于HTML5站点的优化,对于搜索引擎来说,他们也会不断的更新算法来适应HTML5的发展。

HTML5 可能对移动 Web 带来更多好处,原因是,现在的移动 Web,iPhone 占主导地位,而 iPHone 是不支持 Flash 的。HTML5 还会让其它平台的移动浏览器有更快的网页加载速度。另一个好处是 SEO,Google 4月9号宣布,将页面加载速度作为搜索排名的一个因素,因此,基于 HTML5 的页面也会因加载速度更快而受益。

用PHP建设网站的优势

PHP建站的优点:

1. 跨平台,性能优越,跟Linux/Unix结合跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)结合,或者数据应用够大可以考虑换 PostgreSQL或者Oracle,支持N种数据库。

2. 语法简单,访问速度快。

3. 目前主流技术都支持,比如WebService、Ajax、XML等等,足够应用。

4. 有比较完整的支持,比如使用ADODB或者PEAR::DB做数据库抽象层,用Smarty或者smart template做模板层,如果是PHP 5.1的话,还能够使用PDO(PHP Data Object)来访问数据库。

5. 有很多成熟的框架,比如支持MVC的框架:Zend, Codeigniter等,支持类似ASP.net的事件驱动的框架:Prado,支持类似Ruby On Rails的快速开发的框架:Cake等等,足够满足你的应用需求。

6. PHP 5已经有成熟的面向对象体系,能够适应基本的面向对象要求。适合开发大型项目。

7. 有成熟的社区来支持PHP的开发,比如国内的CSDN,喜悦国际村等等。

8. 目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,很多选用PHP来作为他们的开发语言,所以大型门户都能够选用它,我想足够能够你的使用了。

(一)网站后台功能模块设计

1.用户管理:用户管理模块可以定义用户的权限、用户拥有的网站的类型,设置用户网站的使用时间等等。通过用户管理功能,可以对不同级别的用户进行不同级别的服务,使用户的网站实现不同的功能。

2.界面管理:界面管理模块能够实现界面的添加、在线编辑、删除、参数设置等。通过界面管理模块,可以为用户提供制作好的模板,并根据不同用户的需求把模板分配给用户。

3.图片管理:图片管理分为系统图片管理和用户图片管理。系统图片是所有用户都可以使用的,用户图片只针对该用户自己使用。图片管理可以实现图片的添加、 修改和删除操作。通过图片管理模块,可以控制用户上传图片的空间大小,将不同的用户的图片分开管理,把大多数用户都能够使用的图片放到同一个文件夹中统一 管理以达到节省服务器空间的目的,审核用户上传的图片,并可以强制删除非法的或者不健康的用户图片。

4.数据库管理:数据库管理模块主要功能有数据备份、恢复、优化、升级。所有利用网页自动生成工具建立的网站,它们的数据库都是放到一个统一的大数据库中,这样,很多数据就可以为多个用户网站使用,大大节省了数据库的空间,而每个用户可以单独管理自己的虚拟数据库。

(二)网站管理后台功能模块设计

1.参数系统:主要设置网站的参数。如栏目的名称、栏目的数量、栏目的类型等,模板设置、网站名称、网站关键字、网站语言、功能模块的隐藏和显示、顶部区域和底部区域的修改。

2.网站模块管理系统:主要是设置网站的功能。比如登录系统,站内搜索系统,日志系统,友情链接等;广告管理系统方便用户在任意页面都可以设置广告,选择广告的样式等;用户使用图片轮换器可根据时间对多个图片进行切换。