CSDN博客质量分查询,加分清单经验规则总结

🏵根据资料和经验总结一下CSDN博客质量分提高因素

点此跳转查询CSDN文章质量

关注作者:JuruoAssociation 原创于 CSDN
原创不易,谢绝转载。点击支持原文

写博客时稍加留意即可,我这篇博客按照下文的方法写的,第一版就有97分
在这里插入图片描述

✅加分项检查清单

来源官方博客质量分计算[1]

1. ❄️长度

  • 不能太长。大于1000000 token的在最新5.0版本中将直接判为60分(存疑,超过10^6字的文章,可能是把连载系列专栏整合至一篇博客中了);但根据资料整理,超过万字的文章都可能会损伤可读性,让读者产生理解困难(aka.劝退),而且常被用于制造标题党
  • 也不能太短,一篇技术博客,一两百字就写完是不太合适的。长度专项判分上限1,从0开始计算大约每1000 token得分0.25;一般文字+代码达到至少这样的长度是比较合适的
  • 使用引人注意的软文、套话等等以及引流行为会被打击,CSDN曾经被诟病于此,重拳出击乃意料之中。

2. ❄️标题

正如ccat大佬所说,一篇灌水博客也能刻意命中很多高阶的词汇,一篇好的入门博客也可能只包含领域的基本概念。好的博客应该是名副其实(不包含过大过空关键词或蹭热关键词)、言简意赅(不加废话关键词,把重要关键词提炼再提炼)的。

有热度的
文章重点亮点
文章相关拓展
筛选可能关键词
写的到才写
提炼后放标题
放简介

3.❄️ 图片

尽量少用外链图片,不稳定的可能会影响读者体验,甚至被判定为死链;使用站内图片是比较合适的。夹带私货适量即可。

4. ❄️链接

  • 推荐相关阅读小组件:如果链接违规或者是死链,会倒扣分;链接站内或者自己的文章即可
  • 内容管理列表提示改进质量?很多时候是长度不够,不推荐复制黏贴,有专门算法对抗冗余内容,和代码复杂度检测是一类的

推荐相关阅读
博客分冲榜不用高分,80分以上越多越好
质量分96却并不长的文章
文章太多怎么办?批量查询方案

  • 原创声明小组件。除了常见的审查元素人工转载,部分网站有直接爬虫,爬取含有特定关键词的博文然后直接转载到其网站上,全过程无需人工干预,而且光明正大标注原创。因此添加原文链接大多是可以保留原创出处的。之前写过一篇forest专注森林软件闪退的解决方案,就因为触发了一款同名网络游戏关键词而被自动转载。

关注作者:JuruoAssociation 原创于 CSDN
原创不易,谢绝转载。点击支持原文

  • 参考资料小组件

[1] IDA汇编字符串跟踪

  • 结尾小组件(没啥用,供个人发电用)

首发于 2022.07.24,投喂对象上至各路神仙,下至可爱的麦片和香草虽然他们看不懂 ,若有手糊或不足,亦或改进建议,还请不吝赐教

5. ❄️目录

  • 好习惯无需多言,方便笔者也方便读者。建议设置多级的、层次清晰的标题;若要增强可读性,标题后适当加序号或者emoji是合适的,例如🏵✅💖⚠️▶️➡️🌿🍀🍄🌟⭐❄️
  • 一些特殊技巧例如使用mermaid表格绘制标题,建议全文统一格式,点击查看例子

6. ❄️标准目录

文章开头加入以下markdown语句即可自动添加

@[TOC]

效果图如下
在这里插入图片描述

7. ❄️代码

主要评分标准是代码量得分也就是lines of code,但是有专门算法检测冗余的简单代码,例如把循环展开成顺序代码,或者复制黏贴怪,会被扣分。[3]
ccat的讲解
不过仍然有若干疑问等待探究,例如这是我一个project当中一段前端姿态计算的buffer函数

//特征:注释必要,结构紧实,有必要的分段空行,含有中途输出
function getBuffer(){
    // 取历史记录关键帧buffer的平均值
    const bufferlength = bufferPositions.length;// 所有缓冲区长度是相同的,取第一个长度
    if (bufferlength == 0) {
        return;
    }
    const avgPositions = bufferPositions.reduce((acc, cur) => acc.map((a, i) => ({ x: (a.x + cur[i].x), y: (a.y + cur[i].y)})), new Array(16).fill({ x: 0, y: 0 })).map(a => ({ x: a.x / bufferlength, y: a.y / bufferlength}));
    const avgTime = bufferTime.reduce((acc, cur) => acc + cur, 0) / bufferlength;
    // 如果有半数以上关键帧认为这个关节在运动,那么设置为true
    const avgStates = bufferStates.reduce((acc, cur) => acc.map((a, i) => a + cur[i]), new Array(16).fill(0)).map(a => (a > bufferlength / 2));
    const avgSpeeds = bufferSpeeds.reduce((acc, cur) => acc.map((a, i) => a + cur[i]), new Array(16).fill(0)).map(a => a / bufferlength);
    const avgDirections = bufferDirections.reduce((acc, cur) => acc.map((a, i) => a + cur[i]), new Array(16).fill(0)).map(a => a / bufferlength);
    
    const buffer = {
        positions: avgPositions,
        time: avgTime,
        states: avgStates,
        speeds: avgSpeeds,
        directions: avgDirections
    } 
    // console.log(buffer);
    return buffer;
}

其中对于代码空行是否过多,注释程度,中途输出必要性和集成可读性的判定没有明确。
从极端一点的角度想,注释空行等等过多也不一定恰当,例如使用AI可以为每一行代码生成注释,加上中途输出和空行可以增加到原代码的接近三倍行数,但是如果注释和空行全不算,又违背可读性的初衷。
关于集成度,下面的函数虽然对reduce函数进行了解包,但是并不见得可读性提高,实际上对于有约定俗成的程序样式,集成、紧实一点反而有好处(我还可以叫AI把map都给展开来,对吧)。

// 由AI重写,含有大量AI生成的注释,用奇怪的技巧增加了复杂度,但可读性反而不如前者
// 如果想,甚至可以把map再展开
function getBuffer(){ // 获取历史记录关键帧buffer
    // 取历史记录关键帧buffer的平均值

    const bufferlength = bufferPositions.length;// 所有缓冲区长度是相同的,取第一个长度

    // console.log(bufferlength);
    // console.log(bufferPositions);
    // console.log(bufferTime);
    if (bufferlength == 0) { // 如果没有历史记录,返回空
        return;
    }

    function sumPositions(acc, cur) {   // 计算两个位置数组的和  

        return acc.map((a, i) => ({  // 两个位置数组的和  
            x: a.x + cur[i].x,  
            y: a.y + cur[i].y  
        }));  
    }  
    
    function averagePositions(positions, length) {  // 计算平均位置数组  
        
        const newArray = new Array(16).fill({ x: 0, y: 0 };
        const sum = positions.reduce(sumPositions, newArray));

        return sum.map(a => ({
            x: a.x / length,  
            y: a.y / length  
        }));  
    }  
    
    function sumValues(acc, cur) {  // 计算两个值数组的和  
        return acc.map((a, i) => a + cur[i]);  
    }  
    
    function averageValues(values, length) {  
        const newArray = new Array(16).fill(0);
        const sum = values.reduce(sumValues, newArray);  
        return sum.map(a => a / length);  
    }  
    
    function majorityStates(values, threshold) {  
        return values.map(a => a > threshold);  
    }  
    
    // 使用重构后的函数 

    // 计算平均位置
    const avgPositions = averagePositions(bufferPositions, bufferlength);  
    // 计算平均时间
    const avgTime = bufferTime.reduce((acc, cur) => acc + cur, 0) / bufferlength;  
    
    // 如果有半数以上关键帧认为这个关节在运动,那么设置为true
    const avgStates = majorityStates(averageValues(bufferStates, bufferlength), bufferlength / 2);  
    // 计算平均速度和方向
    const avgSpeeds = averageValues(bufferSpeeds, bufferlength);  
    const avgDirections = averageValues(bufferDirections, bufferlength);
    
    // 构造buffer对象,这样就不用每次都创建新的对象了
    const buffer = {
        positions: avgPositions,
        time: avgTime,
        states: avgStates,
        speeds: avgSpeeds,
        directions: avgDirections
    } 

    // console.log(avgDirections);
    // console.log(buffer);
    return buffer;
}

得出结论:代码这一块算法有待深挖,笔者还需多为读者考虑,合理使用空行、注释和中途输出,合理控制集成度。

空行注释中途输出集成整合
过多分散注意失去重点程序写的不好变成混淆器
过少影响意群划分费时费力这个问题不大汇编语言也不好理解

可能夸张了一点(逃)

8. ❄️投票

可以增强读者互动,虽然个人认为对内容帮助不大,但既然元素多样性的判分打在那里,加个投票甚至是inscode也合情合理。不过这里真的没什么代码运行,改天搬一个姿态解算放到inscode(不是)

9. ⚠️标签

据参考[2],文章标签多样性可以提高质量分,个人感觉是增加流量,因为官方博客中也未曾提到标签。

✅参考资料

[1]. 博客质量分计算5.0版本
[2]. 标签多样性是否会影响质量分
[3]. 内容质量分细节:长度、超链接数、代码复杂度
[4]. 内容质量分细节:标题关键字

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值