![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2024年程序员学习
文章平均质量分 86
普通网友
这个作者很懒,什么都没留下…
展开
-
LeetCode 993(1)
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。,使用两个队列,队列中一个存放的是节点,一个存放的是节点的值。原创 2024-05-17 00:17:51 · 295 阅读 · 0 评论 -
LeetCode 987
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。,但其实没有什么难度,做这题我最先想到的就是。列,那么他的左子节点就是第。原创 2024-05-17 00:17:17 · 603 阅读 · 0 评论 -
Hydra密码爆破工具使用教程图文教程(超详细)(2)
在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。原创 2024-05-16 18:38:55 · 368 阅读 · 0 评论 -
Hydra密码爆破工具使用教程图文教程(超详细)(1)
需要完整版PDF学习资源Hydra也叫九头蛇,是一款开源的暴力PJ工具,集成在kali当中。原创 2024-05-16 18:38:20 · 364 阅读 · 0 评论 -
Hydra post登录框爆破
可以看到错误时都是1523,将该值替换到 if content_size!= 1523: #如果登录成功。然后开启print(len(response.text))获取错误登录时的长度。然后准备一个python脚本,将路径和ip替换到相应位置,如下所示。同时注释print(len(response.text))提取其中的POST路径:/dvwa/login.php。提取ip:192.168.180.2。可以看到顺利爆破出了用户名密码。抓包可以看到存在token。需要完整版PDF学习资源。原创 2024-05-16 18:37:46 · 304 阅读 · 0 评论 -
Hydra post登录框爆破(1)
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。然后开启print(len(response.text))获取错误登录时的长度。原创 2024-05-16 18:37:09 · 268 阅读 · 0 评论 -
CTFShow web1-7——CTF秀WEB模块解题思路_ctfshow web题目解析
日志注入是文件包含漏洞的一种利用方式, web服务器的日志文件会保存网站的访问记录, 包括请求的源地址, 时间, 请求方式, User-Agent, Referer等HTTP请求头, 如果在这些请求头中插入代码, 则代码会被保存在web服务器的日志文件中, 当我们访问日志文件的时候, 文件中的代码则会被执行。解题过程中用到了两种文件包含漏洞的利用方式, 一种MD5加密的绕过方式, 一种SQL注入漏洞的绕过方式, 接下来, 针对这几种方式的实现原理解释一下。原创 2024-05-16 10:16:19 · 339 阅读 · 0 评论 -
CTFshow web(php文件上传155-158)_ctfshow155
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。原创 2024-05-16 10:15:10 · 332 阅读 · 0 评论 -
CTFshow web(php文件上传155-158)_ctfshow155(1)
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。原创 2024-05-16 10:14:34 · 304 阅读 · 0 评论 -
2023年十大最佳黑客工具!_黑客的设备
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!【完整版领取方式在文末!!内容实在太多,不一一截图了。原创 2024-05-16 01:43:41 · 716 阅读 · 0 评论 -
2023年全网最详细入门(转行)网络安全教程,收藏这个就够了_2023黑客书籍推荐
为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓👉CSDN大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享**(安全链接,放心点击)**👈。原创 2024-05-16 01:43:07 · 908 阅读 · 0 评论 -
2023年全网最详细入门(转行)网络安全教程,收藏这个就够了_2023黑客书籍推荐(2)
为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓👉CSDN大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享**(安全链接,放心点击)**👈。原创 2024-05-16 01:42:32 · 897 阅读 · 0 评论 -
2023年全网最详细入门(转行)网络安全教程,收藏这个就够了_2023黑客书籍推荐(1)
为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓👉CSDN大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享**(安全链接,放心点击)**👈。原创 2024-05-16 01:41:56 · 546 阅读 · 0 评论 -
在CentOS7上部署OpenStack 步骤详解_openstack中centos虚拟机配置静态地址
解释:在虚拟机上部署两台CentOS7如图1-1,一台暂时叫做controller,另外一台叫compute。同时分别给controller和compute上部署两个网卡如图1-2。打开第二个网卡#vi /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME。因为给每台机器配置了两个网卡,先只需将controller和compute的第一个接口变成网络接口,如图1-3。解释:此为CentOS7.3安装步骤中应该注意的,可详见CentOS7.3安装。原创 2024-04-19 05:39:25 · 1296 阅读 · 0 评论 -
在Centos 7搭建Docker环境_centos docker 部署 tar,最新软件测试开发面试解答
3、安装Docker:yum install docker-engine-1.12.6 docker-engine-selinux-1.12.6 -y。在 docker 命令中我们使用了 “-i 捕获标准输入输出”和 “-t 分配一个终端或控制台”选项。坑:有一次部署想先装ssh,再装Docker,导致ssh死活连不上,报User Deny.只要关闭selinux就可以了。5、安装Docker:yum install -y docker。3、运行一个Docker容器:docker run -it。原创 2024-04-19 05:38:53 · 116 阅读 · 0 评论 -
企业监控服务器Cacti、nagios服务器_nagios+cacti 服务器流量监控
Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。原创 2024-04-19 00:32:38 · 344 阅读 · 0 评论 -
企业微信 API 接口调用教程:深入解析企业微信 API 的用法_企业微信对接接口api
使用 Apifox 发送 GET 请求即可得到 access_token(请把截图中的 corpid、corpsecret 换为自己的 corpid(企业 ID)、应用 secret)。可以发送文本、图片、视频等多种类型的应用消息,这里以最简单的文本消息为例:(注意修改 touser、agentid 为自己想要的接收者 userid 列表、应用 id)在“管理后台”->“应用管理”->“应用”,点进某个应用,即可看到 agentid。企业微信的应用支持推送文本、图片、视频、文件、图文等类型。原创 2024-04-19 00:32:08 · 928 阅读 · 0 评论 -
【VxWorks5,详细的Golang学习指南
这就是因为C++编译器对函数名的处理了,在main.cpp文件中,我们通过头文件包含的add函数没有参数,因此C++编译器将其处理成符号名 add ,而在add.c 文件中,add函数是有参数的,因此C++编译器会把add函数处理成符号为 add_int_int之类的符号名,当然在他们单独编译时是可能正常的,但到链接时,add函数的两个符号名不能匹配起来,因此会造成错误;可以看到MSG_Q是结构体的名称,MSG_Q_ID是结构体的指针(指针也可以看成是结构体的ID)。原创 2024-04-18 19:25:14 · 718 阅读 · 0 评论 -
【VxWorks5(3),2024年最新一次违反常规的Golang大厂面试经历
(img-lAfHfn7X-1713439470950)]继续看rngLib.c。原创 2024-04-18 19:24:43 · 792 阅读 · 0 评论 -
vscode所有快捷键 mac_mac中vscode自动补齐代码快捷键,2024疫情期间八家大厂的Golang面试经历和真题整理
Command + K Command + Shift + Right 右移编辑器。Command + K Command + Shift + Left 左移编辑器。Command + Shift + Option + Down 列选择 向下。(img-9pbSrQkB-1713423001195)]Command + K Command + Right 切换到下一分组。Command + K Command + Left 切换到上一分组。Command + K Command + F 格式化选中内容。原创 2024-04-18 14:50:19 · 380 阅读 · 0 评论 -
vscode所有快捷键 mac_mac中vscode自动补齐代码快捷键(1)
Command + K Command + Shift + Right 右移编辑器。Command + K Command + Shift + Left 左移编辑器。Command + K Command + Left 切换到上一分组。Command + K Command + [ 折叠全部子代码块。Command + K Command + ] 展开全部子代码块。Command + K Command + 0 折叠全部代码块。Command + K Command + J 展开全部代码块。原创 2024-04-18 14:49:48 · 391 阅读 · 0 评论 -
PostgreSQL查看默认权限_pg查看用户权限,高级软件测试开发必看
一个pg_default_acl项展示了要分配给属于一个指定用户的对象的初始权限。当前有两类项:defaclnamespace = 0的"全局"项和引用一个特殊模式的"每模式"项。一个每模式项如果存在,表示权限将被加入到全局或hard-wired默认权限中。当我们对Postgresql的某个用户授予默认权限时, pg_default_acl表存储要被分配给新创建对象的初始权限。授权完成,通过pg_default_acl表查看默认权限。// 查看当前schema的所有者,相当于\du元命令。原创 2024-04-17 16:48:44 · 1488 阅读 · 0 评论 -
PostgreSQL日常基本命令_pgsql查看数据库同步状态,2024年最新最新“美团+字节+腾讯”三面问题
public 在所有用户创建时都会默认创建该 public 命名空间 ,指定任何一个用户在没有指定schema 时,查询、修改、删除等操作都会在该命名空间下执行。表示:为所有用户分配在 public 表空间下连接 的权限,默认用户在public 下可进行。配置默认创建的对象或者表放在默认的表空间下,在postgresql.conf中配置。在这我们省略了$user ,即我们访问表数据时 schema 没有命名空间的约束。在pg中系统表默认都是以pg_ 开头的,以至于不会与我们自己新建的表名称冲突。原创 2024-04-17 16:48:14 · 643 阅读 · 0 评论 -
LeetCode算法题 - 好数对的数目(简单)(1),三年经验月薪50k我是怎么做到的
链接:https://leetcode.cn/problems/number-of-good-pairs/solutions/2049138/by-yingzai-oshb/不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!// 利用 hash 表计算每个元素出现的次数。来源:力扣(LeetCode)// 接收相同的对数。原创 2024-04-17 13:02:30 · 349 阅读 · 0 评论 -
LeetCode - Medium - 1448,三年Golang开发
(img-U0DZY7kp-1713330108988)]方法一:递归版DFS。方法二:迭代版DFS。原创 2024-04-17 13:02:00 · 724 阅读 · 0 评论 -
grafana 利用api批量修改datasource信息_grafana 如何修改datasource_uid参数
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面原创 2024-04-17 09:28:49 · 1007 阅读 · 0 评论 -
grafana + influxdb + telegraf , 构建性能监控平台_inputs
配置好后运行telegraf , 就可以开始搜集系统信息了 , [注] : 所有的inputs节点里的属性 , 其实都可以不用显示的配置 , 什么都不写则表示全部开启。telegraf用于收集信息写入到influxdb(或其他数据源) , 所以需要配置相关信息 , 这里例举cpu与内存的配置 , 相关文档。具体的安装教程网上很多 , 我是在linux下安装的这三个软件 , 印象中telegraf是有windows版本的。1).登陆grafana , 左上角菜单新建数据源 , 并配置好相关信息。原创 2024-04-17 09:28:19 · 695 阅读 · 1 评论 -
Git恢复之前版本的两种方法reset、revert(图文详解)_git回退到某个版本
如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。而且要git add 文件名。原创 2024-04-17 05:40:50 · 2096 阅读 · 0 评论 -
Git恢复之前版本的两种方法reset、revert(图文详解)_git回退到某个版本(1)
如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。而且要git add 文件名。原创 2024-04-17 05:40:19 · 2891 阅读 · 0 评论 -
CentOS 7下Gitlab安装和迁移_gitlab-rake activerecord statementinvalid pg un
默认的用户名是 root,密码是 5iveL!#安装完成之后会出现complete,并提示你配置gitlab。安装对应的 postfix服务同样设置开机启动和启动服务。#使用rpm 源安装,gitlab omnibus安装包。#设置服务器的防火墙允许http,和ssh服务。#填写你指定的绑定域名和端口,默认是80端口。#浏览器,打开绑定的域名及端口,访问。#cent7 对应的安装包 rpm。#安装对应的 openssh服务。#安装完成之后,配置gitlab。#给gitlab服务绑定域名。原创 2024-04-17 01:44:41 · 391 阅读 · 0 评论 -
CentOS 7下Gitlab安装和迁移_gitlab-rake activerecord statementinvalid pg un(2)
一定要注意-v0.3.16,如果后续报错(Could not find mysql2-0.3.16 in any of the sources),就是这里的版本弄错了。首先把之前备份的数据放置到/var/opt/gitlab/backups目录下。耐心的等待各个仓库的导出,成功后即可用之前的用户名和密码登录。这里一定要是成功的,如果不成功,看看那个依赖没有安装。#填写你指定的绑定域名和端口,默认是80端口。#浏览器,打开绑定的域名及端口,访问。#安装完成之后,配置gitlab。原创 2024-04-17 01:44:11 · 302 阅读 · 0 评论 -
高频面试题|接口自动化在什么场景下做?_什么项目适合做接口自动化
2、需要快速迭代和快速反馈:接口自动化测试可以帮助测试团队快速执行测试,发现问题,并提供及时的反馈,以支持开发团队快速迭代和解决问题。5、多平台、多浏览器测试:接口自动化测试可以跨平台、跨浏览器执行测试,支持测试人员在不同的系统、浏览器、移动设备等多种环境下进行测试。3、需要频繁执行的测试:接口自动化测试可以帮助测试人员快速执行回归测试,以确保新的代码变更不会对系统的稳定性产生负面影响。4、重复性测试:接口自动化测试可以帮助测试团队执行重复性测试,从而提高测试效率和准确性。原创 2024-04-16 16:33:04 · 325 阅读 · 0 评论 -
高频Robot Framework软件测试面试题_robotframework面试
不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!Settings表,测试套件的全局配置表,可以用来说明测试套件要使用的测试库和资源文件,进行测试套件的环境初始化和清除,还可以用来打标签。通过命令行的方式执行测试用例,并加上命令行参数 --include 标签名。Variable表,定义测试套件的全局变量表。Testcase表,定义测试套件的测试用例。Keyword表,定义测试套件的用户关键字。原创 2024-04-16 16:32:33 · 235 阅读 · 0 评论 -
程序人生——Java数组和集合使用建议(2),2024年最新最新2024年软件测试大厂面试经验
Java进阶(4)——结合类加载JVM的过程理解创建对象的几种方式:new,反射Class,克隆clone(拷贝),序列化反序列化。原创 2024-04-16 10:50:43 · 521 阅读 · 0 评论 -
性能测试 —— Jmeter 命令行详细_jmeter -n -t 指定执行机
其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。-G:作用和用法和-D类似,区别在于,如果使用分布式测试,则必须使用-G例子:jmeter -n -t php论坛.jmx -l result/t2.jtl -Dthread.num=6 -Dloop.num=6 -e -o result/h1。原创 2024-04-16 05:56:00 · 769 阅读 · 0 评论 -
性能测试 —— Jmeter TCP接口测试 - 实例,2024年最新最新阿里+头条+腾讯大厂软件测试笔试真题
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!先调试脚本,查看响应的最后返回的字符,然后对照ascii码,转换成10进制的字节数。③添加接口请求结束的标识符。原创 2024-04-16 05:55:29 · 293 阅读 · 0 评论 -
揭秘 Kubernetes Secret:安全存储敏感信息的秘密武器,成功入职头条月薪35K
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!【完整版领取方式在文末!!原创 2024-04-11 20:57:22 · 862 阅读 · 0 评论 -
怎么用docker打包发布java项目_java项目打包成docker,2024年最新被腾讯辞退的高级网络安全工程师现在怎么了
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。需要完整版PDF学习资源私我。原创 2024-04-11 20:11:02 · 214 阅读 · 0 评论