写在前面

更博的速度并不快,不是去偷懒了,也不是晾着了,是做项目去了。我曾对自己说,大二把网站影视功能(现名:艺术长廊)做好就知足了。从来都没想到,现在的艺术长廊已经做到如此庞大了,而且建设速度非常快。

艺术长廊大概模块

最初是从影视做起的,采用的是谷歌官方提供的YouTube Data V3 接口。而后来,艺术长廊具备了音乐、直播、信息流等模块,它们还在成长着。

代码

03728-ex51wt1a8.png
艺术长廊前端语言是 HTML 和 JavaScript,后端语言是 SQL 和PHP。其中 JavaScript 主要采用 jQuery、Bootstrap等等,SQL 使用 MySQL 服务端实现,PHP 使用Typecho 博客框架(轻量级),并与 HandSome 主题融为一体。

起决定性作用的是 PHP 代码。当代码写到一定程度之后,你只会发现代码结构和规律都差不多。由于Java和python比较占用内存,我们没有采用。按照平均一个PHP文件大约500行代码计算,58个文件大概写了 29000 行代码,是的就是上两万行代码。当然,PHP代码文件里面嵌入了非常多的HTML标签和JavaScript代码。

体验优化

在定稿之初,我们就决定使用 Pjax 无刷新技术,也就是每次点击一个本站的网页,只有不同组件的版块才会被刷新,头部和尾部以及侧边栏这些变化很小的组件会保留原来的数据,不会刷新,这保证了网站的打开速度,也让网站更像一个应用App。后期,我们加入了大量的动画。这些酷似PowerPoint的动画其实并不简单,所有的动画样式以及动画持续时间都需要用代码严格控制。

服务优化

很多人往往忽略一些细节性功能,比如自动补全。在一个没有搜索提示的输入框输入内容是非常痛苦的,我们支持动态补全,你想输的信息,我们为你备好了。很多人还觉得,既然是个偏向视频类网站,那就做好对接就好了,于是我们变成了为了看视频而看视频,加上视频介绍不是更好吗?为了营造这种氛围,我们在搜索和播放处都加了非常多的影视信息,并且不单调。以往靠模糊搜索的视频,虽然源很多,但是也很散。目前,视频播放列表已经支持,你甚至可以在技术解析上体验聚合的友好。

iOS

如果这个世界没有iOS,那么艺术长廊的代码可能要少1/3。非常难受的是,iOS系统不支持 webm 视频格式,然而 1080P的画质却往往需要特殊的压缩格式。我们使用了最传统的mp4格式来兼容iOS。而这一做,就是一份文件中的一半代码。iOS的的确确是很高大上了,毕竟让我无数次地感到绝望。

缓存与数据库

之前说过,这里面很多资源需要用到接口。为了节省谷歌提供的接口(这些接口都是有次数限制的),我们使用了缓存技术,采用数据库缓存,大大将接口使用次数降低甚至到0。在主要面板上和第一步搜索里面,所有的数据都是缓存。对于新数据,我们也提供接口获取。

可持续化

数据并非一天都可获得,是靠长久的积累。所以,你的每一次搜索和使用,都会影响数据库数据的很多属性,甚至会扩充数据库。一些过期的视频则通过bug反馈量评估,它们会逐渐消失在数据库里。有增有减,才是真正的可持续。

自动化

自从设计授权系统,我就一直渴望用代码实现自动化,自动为您推荐,自动纠正,自动分类,自动识别是否应该展示。现在的艺术长廊,除非是扩展功能的需要,在内容上面,已都实现自动化。首页的头图和时下流行,它们每一天都会彻底更新。轮播图下面的新闻资讯,也都能自动保证到较新的状态。一些恶意的搜索,我们自动屏蔽。一些显示的错误,我们启动脚本自动纠正。一切的运作,都是无人参与。艺术长廊,它就这样悄悄地变化着。

安全保护

网络攻击无处不在,CC攻击最为频繁。网站已经开启了防盗链和防火墙,对于恶意解析的IP我们会自动封闭。我们也严格防御爬虫蜘蛛前来获取资料。

图片设计

不写了吧,太多太多了,希望你能来感受一下,从审美角度和功能角度,都可以。感谢支持 6zgm.com !

最后修改:2020 年 01 月 10 日 02 : 53 PM
如果觉得我的文章对你有用,请随意赞赏,感谢您支持6zgm.com !