MENU

「作品总结」墨灵音乐

December 12, 2020 • 技术,原创,作品,生活

(。•ˇˇ•。)我没能给墨灵过上 4 岁生日。
关闭之际,我想回顾这近 1300 天的历程。
墨灵是 mkplayer 开源项目的改进版,也是我作为计算机初学者的第一个练手的项目。诞生之际,我没想过会有这么多人会去用它。
随着墨灵的长大,它的经历越来越丰富,故事越来越多。

技术回顾

非技术回顾(作者感想)

如果你对墨灵音乐所使用的技术不感兴趣,
建议直接点击链接浏览《墨灵音乐给全体用户的一封信》:https://qugeek.com/blog/archives/Work-summary-of-Moling.html#menu_index_20

前端

JS

因为我是菜鸟,所以当时只学会了最基本的 JS,还没接触 Vue 等。没有使用 ES6,因为浏览器兼容(vivo 手机浏览器...)问题。

没用上 worker 、pwa 那些高端玩意。低端玩家,比如我,使用各种小玩意来优化前端性能。不得不叹息一句:WebSQL 普及的真差。

总有人问我,前端 JS 为什么加密?前端加密一定是可解的。接口不希望轻易暴露,加密也只防君子不防小人。事实证明:It worked.

CSS

大量使用动画,使用完善的 Weui 库来支持夜间模式。

我是从 Weui 库的源码中学会如何只使用 CSS 来完成夜间和白天的主题切换。

ff5b00022184b116b636.png

137a000010bff9b1b5d6e.png

异常上报

使用 Sentry、frontjs 平台监控。

主要用来防止更新版本后 bug 爆发。

数据统计(埋点)

依次使用了百度统计、Google Analysis、自建程序,最后回到了百度统计。

因为埋点过多,程序无法处理大量的数据导致跑着自建统计程序的服务器屡次阵亡,最后放弃。百度统计比谷歌统计更加清晰;谷歌统计非常细化,只适用于商业化站点。

www.frontjs.com_app_ac24913a464b1a319f2218b7e6367205 (1).png


后端

PHP:因为我是菜鸟,所以当时我只会 PHP

至今还在疑惑 PHP 为何会 503。现在能说得通是肉鸡扫服务器时提交了垃圾数据,程序没有做异常处理,然后。

无数据库:没有使用任何数据库,不是因为我菜,是因为不需要。程序的缓存和大量小文件数据都存放在高效的文件系统中。

唯一遇到的问题就是数据迁移与备份。硬盘中存储了超过 900 万的缓存。初期未预知到文件这么多,导致硬盘 inode 爆满。

QQ截图20201213002009.png


服务

服务器

为了省钱(穷),各种优惠服务器真是能嫖就嫖。
主站、API、鉴权分别部署在三台主机上。服务器指标:高性能高 IO,稳定可靠。
下载服务器部署在若干主机上。服务器指标:低性能、高上传。

前后大大小小的服务器部署了至少也有 50 台左右了。牢记:快照、先备份再操作。

域名

域名前后换了几个。还是 COM 最香。

DNS

用的 DNSPOD 企业基础版。主要用到的是负载均衡功能。

下载是用的一个域名,根据主机权重在 DNS 层面实现负载均衡。这样最简单,但显然这样的负载均衡不是严格按照权重分配的。

CDN

用的腾讯云全球 CDN。特殊时期: CLoudflare Pro 版本。

阿里 CDN 功能过于细分,不适合。腾讯云 CDN 无攻击减免,下图为被攻击惨况。

QQ 截图 20201212234350.png

运行状态

主机监控:阿里云云监控。用于监控全部主机的 CPU 等核心信息。
外部监控:UptimeRobot PRO(一个国外的平台)。用于监控域名、主机、CDN 的外部可通性和可用性。

QQ截图20201213001418.png

QQ截图20201213001029.png

攻击

这三年,我目睹了:DNS FLOOD 攻击、云服务器 DDOS 攻击、CDN DDOS 攻击、API 接口伪造攻击。
有趣的是,攻击我的人似乎是同一个。没有很好的对付策略,放平心态。

QQ 截图 20201212235630.png

QQ 截图 20201212235813.png

用 PHP 写了一套自己的 IP 评分机制,用来阻止 API 接口攻击。

其他

域名被腾讯封锁:被别人恶意举报,被网友们提交申诉救回来了。是个奇迹,我自己没想到能起死回生。

SSL:因为方便,所以用上了付费证书。因为国内环境,开启了 OCSP。

版本控制

没用上 git 来实现版本控制。
无法追溯 bug 是最头疼的了。

一些数据

跑了:1300 天左右
播放:70 万首歌曲/天(按次、不去重、平均值)
搜索:13 万次/天(按次、不去重、平均值)
Q 群:12 个(后面建不动群了,干脆就把整个群清空再加人)
代码量:除去库,标准格式化后估摸 1 万行吧。感觉没啥意义。

总结

值得被吐槽的地方很多,当然,当时菜鸟的我只能做到这水平了。
如果有机会,肯定会用上最新的技术来写。

每个部分实现起来并不复杂,甚至对于很多大佬来说,too easy 甚至 too low 了。然鹅,完整的跑起来并让它持续地跑是一件相当有挑战的事情。一个人顾及方方面面,确实不易。

维护起来因为平时就很忙所以断断续续的。维护的不连续性也产生了很多麻烦。

现在回看,我觉得最糟糕的是:很多东西没有深入理解或者学习,就用上了。比如 :SSL 原理不懂,就给部署上了。JS、CSS 没系统学,边写边抄是大忌。

下一次的目标

或许有一天我会“卷土重来”。
始终维护旧项目,会让自己的技术落后,一直困在舒适圈里面。
至始至终,代码是一个人在写。所以,都是自己想怎么来就怎么来。
如果有那么一天,我会进行重构。
模块化、组件化、规范化,是下一次的目标。(有感于文章 https://75.team/post/yunpan_refactoring


非技术总结

墨灵音乐后续(2021 年新春)

墨灵音乐会被我重写一遍代码,
然后以全新的形态发布。
功能只增不减,目前计划不公开开放。
在本文章下面认真评论的小伙伴,
届时会收到邀请邮件。(评论时建议填写 QQ 邮箱)
如果你曾经喜欢过墨灵,欢迎留下你的足迹。
新年快乐!

(。・ˇˇ・。) 我没能给墨灵过上 4 岁生日。

关闭之际,我想回顾这近 1300 天的历程。
墨灵是 mkplayer 开源项目的改进版,也是我作为计算机初学者的第一个练手的项目。诞生之际,我没想过会有这么多人会去用它。
随着墨灵的长大,它的经历越来越丰富,故事越来越多。

一、 墨灵刚部署之时
起初,我只是当作一个练手程序去做。所以,我的绝大多数时间都是用在“写新功能”(自娱自乐)上。那个时候,更新墨灵是一件非常简单的事情:写代码 → 推送到服务器 → 完成。


二、 小有名气之时
当墨灵的用户越来越多的时候,问题随之暴露。

1.第一个阶段添加的新功能,未做浏览器兼容测试,未做细节优化,功能只是处于能用的阶段。一个好的程序的功能应该是“易用的”,而不是“能用的”。随着用户提交的反馈越来越多,墨灵开始细化功能,打磨用户的每一次点击。
2.我发现我也不能再像之前一样更新墨灵,因为我的一次隐藏着 bug 的更新会波及到非常多的用户。所以,更新墨灵变成了一件富有挑战的事情:收集用户反馈、确定要更新的内容 → 编写代码 → 本地多次测试 → 凌晨推送更新 → 线上测试 → 决定是否回滚代码 → 完成。 挺累,但挺好。


三、 初具规模
(╯‵□′)╯︵┴─┴ 当墨灵的用户再翻倍的时候,问题又来了。
① 服务器“爆炸”了。服务器其实没有那么神秘,它和你家的电脑、手机没有本质区别。
服务器爆炸 意味着 服务器太忙 ,当然也意味着 加钱。
② 费用“爆炸”了。买服务器要钱,钱包受伤,这个我就不多言了。

③ 我“爆炸“了。其实,服务器满载,我挺开心的,自己的东西能被人用,谁不开心呢?然而,我发现了不善的访客,他们在恶意消耗服务器资源。墨灵一直没有做登录功能,不是我不能,是我不想。对于用户而言,登录是一种麻烦。对于我而言,登录功能意味着把用户进行分类,或者说我可以选择差异对待用户。这不是墨灵的初衷。因此,每一个用户对于我们来说都是匿名访问。然而,这种”匿名“给我们带来了麻烦,不足 0.1% 的恶意用户消耗着我们 80% 的资源。我花了大量的时间,在尽量避免影响正常用户,不加入登录功能的情况下,去解决这个问题。值得开心的是,这个问题被解决了。遗憾的是,1→ 我投入了大量的精力以至于拖延了整体更新进度。 2→ 这会影响极少数网络环境异常但确实是正常用户的访问。我写了这么长的一段来说这个问题,是有原因的:不仅仅是我,任何网站的开发者,在用户量上升的阶段一定会遇到这个问题。开发者们都非常头痛,用户的不理解往往加剧了这个问题。


墨灵教会我的,也是最重要的:一个程序的功能完整是基础,最最最重要的是功能易用。功能上线前的一次次测试,是为了提高功能的易用性。一个程序的某个功能不能正常运作,不应该是告诉用户“开发者预期的操作过程“,而是程序本身应该足够完善,无论用户做了什么动作,用户都能得到它预期的结果。这就好像,一个好的产品,不需要说明书,无论是傻瓜还是精通的人,无论是老人还是年轻人,都能轻易上手。条条大路通罗马,应该是一个程序设计的准则。当然,这也是墨灵每一次测试的准则。


至于,墨灵为什么关闭,有很多原因,可能你很关心,但是我不太想与你分享。

墨灵音乐后续(2021 年新春)

墨灵音乐会被我重写一遍代码,
然后以全新的形态发布。
功能只增不减,目前计划不公开开放。
在本文章下面认真评论的小伙伴,
届时会收到邀请邮件。(评论时建议填写 QQ 邮箱)
如果你曾经喜欢过墨灵,欢迎留下你的足迹。
新年快乐!

此处内容需要评论回复后方可阅读

Last Modified: February 10, 2021
Archives QR Code
QR Code for this page
Tipping QR Code
发表新评论

2544 Comments
  1. AYouxl AYouxl

    还没有机会使用,期待回归可以让我体验一下那么多人喜欢的它,能够给我一个了解墨灵音乐的机会!☺

  2. 周翔宇 周翔宇

    感谢您提供的服务,期待墨灵的回归~

  3. 森

    感谢!

  4. 墨灵nb 墨灵nb

    陈小一是我最喜欢的墨灵客服了,kaka老大好好对他哈。@(呵呵)

  5. 无梦为安。 无梦为安。

    新的一年,新的开始,加油(ง •̀_•́)ง,奥利给

  6. 宏愿 宏愿

    越做越好

  7. 大公仔 大公仔

    希望墨灵尽快回归!@(爱心)

  8. 阿鑫 阿鑫

    或许我不是从墨灵一出来就用上的,但我应该是用到墨灵和我们说再见的时候,还记得高中岁月只能用p3听歌,几乎所有的歌的来源都是墨灵,感谢作者,感谢墨灵陪我度过一个美好的高中!

  9. Qianice404 Qianice404

    希望墨灵越来越好@(彩虹),些许的沉寂后便为破晓,在新的一年扭转乾坤
    “在我熄灭之前,能够照亮你一点,就是我所能做的了”

  10. 张培哲 张培哲

    最爱的墨灵@(哈哈)

  11. 杨元波 杨元波

    其实我也是一名大一软工的菜鸡,2019年不经意间浏览音乐网站,当然也爬过网易云,发现了墨灵音乐这个在线网站让我新奇不已,很佩服网站的开发者,也把大佬视作榜样,希望作者可以继续坚持下去,加油!@(大拇指)

  12. 血色红狼 血色红狼

    从炫猿哪里了解到了墨灵,就决定了要将墨灵当作我的在线播放器来用。
    在线播放器并不少,但像墨灵这样优秀的却不多。看惯了许多软件越做越臃肿,而被使用的核心功能却只有那么一两个,曾有一段时间喜欢将网页转为app来使用,这样就可以使用一个小小的软件来实现许多功能……而墨灵,则是我的那个小软件的三个首选页面(炫猿导航,墨灵音乐,学校网站)之一。
    再后来网站就关闭了。
    再后来,就是今天,点开了墨灵的链接,看到了这里,期待着墨灵的回归。

  13. 音乐味道 音乐味道

    求推荐APP

  14. 无所谓 无所谓

    墨灵吧,是高中还在用mp4听歌的时候发现的,还记得以前听,下周董的歌无限制的年代,但到了初中时,版权大战愈演愈烈,一些喜欢的歌手可能得到各个app去开会员下载,还得转格式,渐渐失去了那种纯粹听歌的快感,还在上高中的我也实在无力负担那么多音乐平台的会员,也是在这是认识了墨灵,简单干净的UI界面,导入歌单的功能,都很不错,虽然还有一些瑕疵,但对我来说也确实是一番净土了,也花了一般网站会员的钱每个月去支持一下,尽一番绵薄之力,渐入高三,用的少了,但每次还是在群里潜水,进网站看看墨灵的新变化,直到现在上了大学,不再用墨灵下歌,但还是待在群里,看看墨灵,和群友的点点滴滴。在我看来,墨灵的开发者和我们并不是客户与商家的关系,反而更像平等的朋友,大家各有各的生活,各有各的原则,各有各的不如意,但在音乐的世界了,我们总能慢慢找到属于自己的那一小片宁静。所以当知道墨灵关站时,我有遗憾也有理解,遗憾于失去了墨灵,但也理解开发者们的选择,毕竟朋友也有远去,走自己的路的那一天。感到欣慰的是,群里许多人并未因此而退群,也仍然在四海八荒通过群一起听歌,也有许多人表达了自己的不舍和怀恋,那时候来评论时,也看了很多评论,真的挺感动地。还是感谢墨灵,不管是关是开,是去是留,我永远支持开发者的选择,支持那陪伴过高中时光的墨灵。

  15. 小鱼 小鱼

    平常电脑办公比较多,
    也一直习惯在墨灵听歌,
    然而今天,
    习惯性的打开网址书签,
    愣是找了半天
    。。。。。
    才发现关了
    其实好难过的,

    但是想想,
    可能蹲下是为了更好的站起,
    新年新开始,

    加油,
    弄好了一定要告诉我

  16. 十七 十七

    “简单却很丰富,纯粹而有内涵”
    这就是我对墨灵的感觉
    今天除夕了
    距离高考还有114天
    本来想给墨灵一个红包
    却意外地发现了您的这封信
    有点失落
    但更多的是期待
    ٩( 'ω' )و
    等你呦~

  17. 游瑞 游瑞

    祝墨灵新年快乐,感谢你陪伴我走过初三这段艰难的时光,希望快快回归

  18. 想养头猪 想养头猪

    我只是想听个歌。不受平台的约束

  19. 武松2507 武松2507

    不知何时在墨灵听歌成了我的生活习惯,界面很简洁清晰,还有丰富的歌曲资源,真的是一个很好的音乐网站,非常喜欢,感谢墨灵带来的便利。后来没什么时间听歌了,墨灵就一直放在收藏夹里,偶尔才会点开看看,再后来,墨灵宣布要关停,急急忙忙点开网站,结果发现墨灵真的没了,当时真的挺失落的,墨灵给了我很多快乐。现在,墨灵能够重新回归,真的超开心,欢迎回来!希望墨灵能够越来越好啊!支持墨灵,加油!最后,新年快乐,大家快乐!@(太开心)

  20. 盖亚奥特曼 盖亚奥特曼

    代表盖亚奥特曼祝墨灵新年快乐!期待新墨灵!@(哈哈)

  21. xZxCx xZxCx

    如果没有墨灵,我就不会这么爱音乐

  22. Ryc Ryc

    很喜欢您做的这个网站,我还把它推荐给我了我身边的好朋友们,但是没想到的是,有一天突然有人跟我说,这个网站不能用了,身为一名高三狗,我们在QQ音乐,网易云,酷狗等里面下不下来的歌,全都在这里面能找得到(存到MP3里面的),希望作者大大可以快快把它重新推出来呀,不然我过了今年就再也不是高三狗了,加油!|´・ω・)ノ加油!
    最后,祝墨灵音乐新年快乐!

  23. 沉忆坊 沉忆坊

    初识墨灵,就爱上了墨灵的简洁与美观,虽然有时候有许多歌都听不到,但能听到的歌我总是选择在墨灵上听,因为心里总觉得墨灵仿佛更具灵性,更有感情。很不希望墨灵就怎么关闭了,也更期待再见墨灵的一日。

  24. 白嫖怪 白嫖怪

    用墨灵不算久,但功能挺强,而且免费!
    怎么说呢…青山不改,绿水长流,江湖再见

  25. 墨染蓬莱 墨染蓬莱

    等了墨灵好几个月了,终于等到了王者归来的一天,2021,也要继续开拓(。•ˇ‸ˇ•。)

  26. 一颗星星 一颗星星

    祝墨灵新年快乐!

  27. 毒辣阿萌 毒辣阿萌

    铁粉了,太人性了,在没有墨灵的日子,实在是煎熬啊,只希望来年越来越好,加油!!!!

  28. 阿喵不吃狗粮 阿喵不吃狗粮

    很高兴,墨灵又回来了。很喜欢墨灵的简洁和曲库的丰富,现在听个歌都要载上三四个音乐播放器,来回跑的时代,当初的墨灵让我回到最初听歌的时候,只是静静地欣赏歌曲本身,而不是天天往返在不同的音乐播放器。

  29. 搞传销 搞传销

    我就知道你会卷土重来的,加油@(呵呵)

  30. 柳叶儿 柳叶儿

    重新打开墨灵官网

  31. 手指艺术家 手指艺术家

    有了记得给我发一份,我还希望能参与开发墨灵音乐,我现在在学这方面的知识。

  32. 一无所有 一无所有

    墨灵曾经陪伴我很长一段时间,带给我很多欢乐,希望墨灵满血归来!

  33. 军子 军子

    一直很感谢作者,让自己能拥有一个无限制下载歌曲的平台。能让喜欢的歌曲,以具体化的形式透过文字分享到公众号。忽然登陆网站发现墨灵不见了,还是有些失落和惋惜。但读完文章后发现作者也是挺不容易的 hhh,也就更期待墨灵重新出现的那一天。新年再见!

  34. 一颗星星 一颗星星

    说实话,用了这么久的墨灵音乐,还是还感动的,因为没有一个音乐会做的这么好,不仅给用户提供免费的音乐,在用户上涨的时候不会恶意收费,真的很良心,很好。(心里话)陪伴了这么久的墨灵,真的不希望他消失,希望他越做越好,一直陪伴在我们身边,不消失。加油,我们的墨灵还会回来的。

  35. y y

    祝墨灵新年快乐

  36. 田园犬 田园犬

    祝墨灵新年快乐

  37. 寂静 寂静

    墨灵,如初恋一般守候。

  38. n n

    molingmoling

  39. 苏漾 苏漾

    愿墨灵浴火重生,满血归来@(哈哈)

  40. 白描 白描

    希望终于来了,加油

  41. 顺子 顺子

    抱着希望重新开始

  42. 日煜晨 日煜晨

    我是去年部长推荐的,非常喜欢墨灵,新年快乐

  43. 千笙 千笙

    偶然之中发现了墨灵,结果发现这真的是个神仙网站啊!界面很简洁清晰,还有丰富的歌曲资源,真的是一个很好的音乐网站,非常喜欢,我还分享给了我的小姐妹,感谢墨灵带来的便利。后来没什么时间听歌了,墨灵就一直放在收藏夹里,偶尔才会点开看看,再后来,墨灵宣布要关停,急急忙忙点开网站,结果发现墨灵真的没了,当时真的挺失落的,墨灵给了我很多快乐。现在,墨灵能够重新回归,真的超开心,欢迎回来!希望墨灵能够越来越好啊!支持墨灵,加油!最后,新年快乐啊!@(爱心)@(爱心)@(爱心)@(爱心)

  44. 啊呀呀呀喂 啊呀呀呀喂

    新春快乐,归来大吉

  45. 浩气 浩气

    感谢你的付出,祝您天天开心,万事顺利。

  46. yuni yuni

    一直很感谢作者,让自己能拥有一个无限制下载歌曲的平台。能让喜欢的歌曲,以具体化的形式透过文字分享到公众号。忽然登陆网站发现墨灵不见了,还是有些失落和惋惜。但读完文章后发现作者也是挺不容易的hhh,也就更期待墨灵重新出现的那一天。新年再见!

  47. turbochen turbochen

    以前不知道做一个网址要这么难,感谢墨灵的辛苦付出,你的努力终将会得到回报,期待墨灵重新王者归来!!!
    墨灵,新年快乐[烟花][烟花][烟花][烟花]

  48. qiluo qiluo

    爷青回,墨灵yyds!

  49. lala lala

    牛年大吉,祝墨灵音乐牛转乾坤。

  50. 玲珑猫 玲珑猫

    重生☺️☺️☺️☺️☺️☺️