自己渐渐发现,目前的Pache,想作为一个 真正[1] 的博客,还有些距离。从目前发现的问题来看,这些距离有:
- tag不够完美
- class的数据库结构有待考验
- 设计有待提升
- 混乱不堪的CSS
- 使用PHP语言开发,然而作者对于PHP的了解很有限
- 后台界面半残不残
下面来分析这几点,希望能找到行之有效的解决方法。
tag不够完美
如果你觉得tag感觉还行的话,可事实上,确实如此。在设计之初我利用自己极其有限的 PHP/MySQL 知识而想到的一种 存储结构[2]。很大程度上成为Pache中技术含量最高的设计,当然,问题在上线一周后也初见端倪:
糟糕的性能问题
这个一时间难以解决了,除非能找到 更好的算法 或者 使用新的 数据结构。目前似乎还没有什么思路(我后端的水平太垃圾了)
Zombie Tag 问题
删除一个文章的时候,并没有清除tag表里相应文章id的tag项目,以至于这些tag项目白白浪费空间,甚至可能还会影响今后设计的标签云模块。 原因是我设计的时候没有考虑到,我的锅。 关于这个问题解决也不难,删除文章的时候执行一个 removeTagItemById
[5] 函数应该就能解决
后台没有专门的管理界面
目前后台里仅仅只能一个个点击文章去 添加/删除
标签项。对的,锅还是我背。
需要更快更好用的tag
作为Pache中最高技术水平的实现,问题如此之多,不免写到这里的作者为接下来的内容汗颜。总结了一下,大概就知道了——更快、更好用
class的数据库结构有待考验
其实Pache另一个看起来似乎很好的设计就是这个。为什么这么说? 因为Pache显示class的时候只集合不同类名的class[6]。问题似乎也很明白——太简单了。
问题所在
虽然我一直认为简单的东西就是美好的,可总觉得有那么些不尽人意。首先,index.php
最顶上的 menu 只能显示类名吗?
当然,能够有其它的链接是因为我在 源代码层面[7] 上的修改,但是这样就能够说是美中不足
了。所以我想到了新的方式——侧边栏[8]
侧边栏
这个侧边栏就把需要在源码上修改的东西放到了这里。自认为这个应该能简化很多。(当然代码量不可避免地增多了)。或者说,连类名也放进去,这样更加简单……
还有一个问题
不仅仅是数据库的问题,其实后台界面也没有单独的模块管理类(关于截图首页的那个类的输入框,纯属虚设……),我认为这个类管理应该有以下功能:
- 遍历指定类的文章,且可以对类批量管理,比如
添加/删除
tag - 重命名类
设计有待提升
迄今我做的界面设计总是会有人吐槽(因为我的观念总是那么奇怪,应该是我偷懒吧)。其中最值得吐槽的一个地方就是前台和后台的界面风格有极大的不同:
(所以我在以后的版本,可能会抉择出其中一种,或者两者一同存在)……
混乱不堪的CSS
通病了,不仅仅混乱,还反而成为我设计界面的时候的累赘(写CSS的成本)。因为,Pache的CSS前台都用同个CSS文件。又是我的锅,sorry。
解决的方法很简单,把index.php
和get.php
独立的部分抽取出来,相同的部分解耦出来,应该能缓解这个问题[9]。同时,一个重要的一点就是,避免无脑CSS
,当然,光是这个概念都够讲一篇文章了,理解成“写CSS需要先想好全部后再来,或者单个组件想好后再来”
使用PHP语言开发,然而作者对于PHP的了解很有限
虽然从第一次接触PHP到现在也有个三年了,但是我的PHP技术并没有精进多少。原因很大一部分就是我没有系统学习PHP以及后端技术。说什么也晚了,希望今后多多学习。。。
同时,咱也有了个新想法。那就是有可能试试 Node.js。因为:
- 对于语言熟悉程度的话JS更熟悉些。
- Node.js曾经也做过一些示例,比如上传文件之类的[10]
- I ❤ JavaScript
后台界面半残不残
唉,说起这个真是……Pache后台似乎重写过一两次,直至最后一次我的耐心被耗完了……也就是现在这个半残不残的界面……而且实现也很不好,非常非常地混乱不堪,所以我已经决定重写了……
重写的后台需要有:
- 文章管理器
- 文章编辑器
- 评论查看器(如果评论不再用多说的话)
- tag管理器
- class管理器
最后
其实问题还只是冰山一角[11],但是简单地[12]归纳了一下后脑子里清晰了很多了,知道自己需要解决的问题了,很好,明天应该就要开始准备了,大概。
闻之听之便知为博客 ↩︎
不过现在看来是很幼稚的吧 ↩︎
之前有测试过的样子,在本地机器(PHP5.6,i5 2435m)测试中,光是以tag搜索就消耗了零点几秒 ↩︎
后台早已经部署好了多标签搜索的函数了(讽刺地说,单标签就是用这个函数来搜索的) ↩︎
当然我还没有写这个 ↩︎
大体上就是给文章设定一个类名,如果找不到这个类名Pache会自动创一个出来(当然,这句话只能说明表象,其实根本没有创建什么) ↩︎
sorry……连这个都提交上去了,当初就没有想到提供个自定义的方式 ↩︎
其实是学习西方的那一套 ↩︎
global.css
有600多行... ↩︎当然,路由也写过,不过并不会 Express 之类的框架 ↩︎
比如 评论系统的大坑、文章权限的巨坑 ↩︎
哦是么,写了好几个小时了 ↩︎