个人博客【留言功能】生命历程

2024-04-16 15:48

本文主要是介绍个人博客【留言功能】生命历程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章优先发布在个人博客,后续修改可能忘记同步到CSDN,给你带来不便抱歉
个人博客本篇文章地址:https://www.xdx97.com/article?bamId=672122394537623552

每次做完一个功能,后面回想起来,好像没啥呢?不都是CURD嘛?我做了?我好像啥也没做呢
这次重构这个留言板,想记录一下它的生命历程。


1、该做一个怎样的 留言板

其实很早就打算把留言板重做了理由如下:

    1、登录是一个很重的操作不适合个人博客这样的留言

    2、QQ互联登录垃圾

自己也思索了很久,最后打算做成下面这种的

在这里插入图片描述


2020年1月29日终于下定决心去重写,但是发现了一种更好的模式。

在这里插入图片描述
考虑留言是及时显示,还是做个验证的时候,女朋友说可以每个留言都以邮件的形式通知我。

这个想法简直完美。1、给用户很好的体验问题,2、还可以让我第一时间查看留言的内容,防止垃圾内容。

然后通过一下午的时间,把页面模板写好了,如下:

在这里插入图片描述


2、怎么解决用户疯狂点击【发布】按钮

问题描述:
    上面说了,为了用户体验,留言实时显示,不做验证,但是可能有人恶意留言,疯狂点击发布。可能把服务器给玩崩溃了,也会带来很多垃圾的留言。

问题解决:

    使用定时器,每次留言成功后,过60s之后才能继续留言。

在这里插入图片描述

3、支持MarkDown 语法

1、支持MarkDown语法是我必须要的一个功能,基本上用过MarkDown就再也回不去了

2、这次我使用 showdown 来支持MarkDown。 showdown的使用

3、思路:使用showdown把用户输入的markdown转化成Html


4、解决用户头像问题

1、其实个人博客这东西和用户没有很强的粘性,所有做用户上传图像这个功能简直是鬼扯。

2、这里我建个表,里面存一些头像的地址,然后每次随机选取一个就好了。图片存在 路过图床 上面,这样还节省了空间。

3、本来还以为要一个个去选择头像,后来想想 icon 里面全是啊,哈哈,然后直接下载了20来个,很方便。


5、恢复数据、代码修改

1、之前的数据需要手动恢复

2、这次重构的字段和之前的也不相同,所以代码也需要调整

其实这部分的工作,只是体力活,但是很烦,这种修改的东西是程序员最讨厌做的


6、在留言的时候怎么确定留言者是作者

1、因为我自己留言和别人留言是不同的,要让用户看到那些是作者的回复

2、但是因为去除了登录,所以前台留言全都不知道是谁,但是如果每次去后台修改数据库这太蛋疼了。

3、解决办法:我在昵称输入一个特殊的字符,用来判断是作者


7、后台更新

1、之前后台需要对评论进行审核,现在也不需要了。

2、还有一些字段啊,页面的细微调整


8、整理代码,删掉废弃代码

1、开始做新的评论的时候,旧的代码并没有删掉。怕还有用,实际上也是有用的,有些东西还是可以抄袭一下的。

2、考虑了半天,感觉不可能再回去使用之前的那种评论系统,就把之前的评论的代码删掉,免得冗余了。


9、看一下改版前和改版后

改版前

在这里插入图片描述
改版后

在这里插入图片描述

10、其它

其实很多东西我们的考虑和实际情况是不同的,就比如这个个人博客:

  • 用户头像是否要存储呢?
  • 是否需要对每条留言进行过滤呢?
  • 是否需要对每条留言的状态进行邮件或短信的通知呢?
  • 是否需要登录去确定用户呢?(如果你考虑这个,你到时候又会考虑,是基于QQ、还是微信?还是自己写个注册系统?)
  • 需求真的是要切合实际情况去考虑,个人博客用户的粘性很低,基本上就是一个过客。难道别人去“piaochang”,你还要验证一下人家的身份证嘛?
  • 结合实际再去考虑这个需求要轻松很多。
  • 这次的评论系统只写了一天,之前那个写了一个多星期呢,还写得那么垃圾。



可以关注我的个人微信公众号噢,一起努力成长。
在这里插入图片描述

这篇关于个人博客【留言功能】生命历程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/909220

相关文章

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank&nbsp;正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

PostgreSQL核心功能特性与使用领域及场景分析

PostgreSQL有什么优点? 开源和免费 PostgreSQL是一个开源的数据库管理系统,可以免费使用和修改。这降低了企业的成本,并为开发者提供了一个活跃的社区和丰富的资源。 高度兼容 PostgreSQL支持多种操作系统(如Linux、Windows、macOS等)和编程语言(如C、C++、Java、Python、Ruby等),并提供了多种接口(如JDBC、ODBC、ADO.NET等

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx: