V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
stardustedstand
V2EX  ›  分享创造

我用 100 行代码干掉了价值 100 万的社交产品设计 - 一个程序员的反击

  •  
  •   stardustedstand ·
    kmfb · 1 天前 · 4664 次点击

    一个顶级社交产品请一个产品经理的年薪至少 50 万,请一个交互设计师至少 30 万,他们花费数月时间精心设计的'无限滚动'机制,却被我一个下午写的 100 多行代码完全瓦解...

    以下是浏览器插件(下载解压-开发者模式安装即可): 项目地址

    简单总结社交产品"无限滚动"设计背后的核心商业逻辑:

    1. 产品设计的核心套路

    • 无限滚动就像一个永不见底的幸运盒子
    • 每次下拉都给你一个"惊喜"的可能
    • 你永远不知道下一条内容是什么,但就是想接着看
    • 没有明确的终点,让你失去时间概念

    2. 背后的心理学原理

    • 期待与奖励:像赌场里的老虎机
    • 害怕错过:总觉得再划一下可能有更好的内容
    • 沉没成本:"都刷了这么久了,再看一会吧"

    3. 我的破解方案

    // 其实只需要这么简单,就能打破这个精心设计的套路
    if (scrollY >= limit) {
        stop();    // 给用户一个明确的终点
        notify();  // 提醒用户该休息了
    }
    

    4. 为什么有效?

    • 产品设计靠的是让你迷失
    • 而我们只是加了个"到站提醒"
    • 就像在赌场装了个闹钟,到点就提醒你该回家了

    这不是技术的胜利,而是清醒的胜利。

    5. 技术实现

    • 核心代码仅 100 多行
    • 开发时间:1 小时
    • 开发成本:16 元一杯星巴克蒸汽奶(别问为什么,问就是最低成本获取一个最佳环境)
    • 维护成本:几乎为 0

    4. 效果对比

    • 产品团队投入:

      • 产品经理月薪:4 万+
      • 交互设计师月薪:2.5 万+
      • 开发团队成本:10 万+
      • 产品迭代周期:3-6 个月
      • 总成本:约 100 万
    • 我的方案:

      • 开发时间:1 小时
      • 代码量:100 多 行
      • 开发成本:16 元
      • 维护成本:几乎为 0
      • 效果:完全抵消原产品设计效果

    5. 支持的平台

    // 一次开发,多平台覆盖
    "matches": [
      "*://*.facebook.com/*",
      "*://*.twitter.com/*",
      "*://*.weibo.com/*",
      "*://*.zhihu.com/*",
      "*://*.xiaohongshu.com/*",
      "*://*.bilibili.com/*"
      // ... 更多主流平台
    ]
    

    也许我就像堂吉诃德一样可笑 —— 用简陋的代码对抗精密的商业设计。但正如堂吉诃德教会我们的:疯狂和理想主义,有时候比精明更有力量。

    这不是一场胜利,而是一次浪漫的抗争。

    35 条回复    2024-10-31 13:53:58 +08:00
    BadReese
        1
    BadReese  
       1 天前   ❤️ 6
    “也许我就像堂吉诃德一样可笑” - 堂吉诃德听了都要做噩梦
    yaytohkay
        2
    yaytohkay  
       1 天前
    写 README 是个好习惯
    stardustedstand
        3
    stardustedstand  
    OP
       1 天前
    @BadReese 哈哈,claude ai 写的,我只是提供个思路。
    stardustedstand
        4
    stardustedstand  
    OP
       1 天前
    @yaytohkay v2exer 们要开始上班摸鱼了,来不及写了。赶紧给大伙提供点消遣。😂
    heyjim75111
        5
    heyjim75111  
       1 天前
    我只要一个动作就可以干掉,按下电源键
    stardustedstand
        6
    stardustedstand  
    OP
       1 天前
    @heyjim75111 可以的,核爆按钮👍。
    magicZ
        7
    magicZ  
       1 天前
    感动了,op 是个有趣的人
    liuchao719
        8
    liuchao719  
       1 天前   ❤️ 1
    抖音没有睡觉提醒吗?不是的,每晚我都能刷到好几次护眼计划 + 睡觉提醒。正如你叫不醒一个装睡的人,只要想刷我还是会继续刷下去。让我放弃继续刷下去的理由只有一个,算法推给我的内容都是那几类内容,看的都不想再看了,今天的抖音也就结束了。
    stardustedstand
        9
    stardustedstand  
    OP
       1 天前
    @magicZ 多谢,v2exer 都挺有趣的,我只是其中普通的一员,还要多多学习才是。😂
    cander0815
        10
    cander0815  
       1 天前
    然而我每次都是一屏幕看完 就直接下拉刷新。不去看下面的 😂。分页不存在的
    stardustedstand
        11
    stardustedstand  
    OP
       1 天前
    @liuchao719 官方的睡觉提醒和护眼计划应该没有打断无限刷新流。所以大部分人才会继续下去。
    FireKey
        12
    FireKey  
       1 天前
    提醒没用,要强制执行才有效果
    InDom
        13
    InDom  
       1 天前
    感谢楼主分享,感谢 ChatGPT , 现在可以通过油猴脚本加载了。

    https://gist.github.com/imdong/334dba764152c82b4bc62ece9db33eaf

    https://greasyfork.org/zh-CN/scripts/514953-scroll-limiter
    stardustedstand
        14
    stardustedstand  
    OP
       1 天前
    @cander0815 那是移动端 app 的吧,pc 端大部分没有这种机制。这又要涉及另外一个问题了,是否在设计思想上,PC 是无导航的自行车,手机是自动驾驶的汽车。或者说 PC 是塞尔达荒野之息,手机是自动寻路的页游。
    stardustedstand
        15
    stardustedstand  
    OP
       1 天前
    @InDom 油猴也可以的👍
    liu731
        16
    liu731  
       1 天前
    有种上学时洗澡水卡余额不足的感觉~
    stardustedstand
        17
    stardustedstand  
    OP
       1 天前
    @FireKey 已经强制执行了,滑到 limitY 坐标会禁止再向下滑动。
    stardustedstand
        18
    stardustedstand  
    OP
       1 天前
    @liu731 洗热水澡多爽啊,现代社会唯一能脱离信息流的温室。余额拉满就是。社交媒体就不一样了,对大部分人来讲,是深不见底的泥潭。
    Tamamopoi
        19
    Tamamopoi  
       1 天前
    星巴克蒸汽奶为什么 16 块,我看中杯原味得 22 了
    stardustedstand
        20
    stardustedstand  
    OP
       1 天前   ❤️ 1
    @Tamamopoi 使用淘宝大法,用资本主义击败资本主义。
    20015jjw
        21
    20015jjw  
       1 天前 via iPhone
    蛮好 合理对抗 doom scrolling
    z1829909
        22
    z1829909  
       1 天前
    我也写过一个类似的插件, 不过我是直接屏蔽.
    检测页面发起的请求, 如果有 recommend, rcmd, flow 之类的直接 block.
    zgsi
        23
    zgsi  
       1 天前
    把百度加上,谢谢
    stardustedstand
        24
    stardustedstand  
    OP
       1 天前 via iPhone
    @20015jjw 还有 rabbit hole 等等。。。
    stardustedstand
        25
    stardustedstand  
    OP
       1 天前 via iPhone
    @z1829909 好思路👍
    stardustedstand
        26
    stardustedstand  
    OP
       1 天前 via iPhone
    @zgsi 😂
    mcfog
        27
    mcfog  
       1 天前   ❤️ 2
    笑死

    苹果市值 250 亿,我用三秒抠鼻屎决定不买苹果产品,抵消了苹果的商业价值,成本是一团鼻屎
    handsome50
        28
    handsome50  
       1 天前
    ios 的 artstation 似乎就有这种机制,刷久了丫直接闪退🤪
    stardustedstand
        29
    stardustedstand  
    OP
       1 天前 via iPhone
    @mcfog 能供君一笑,也是这段代码和文章的造化了😄
    stardustedstand
        30
    stardustedstand  
    OP
       23 小时 59 分钟前 via iPhone
    @handsome50 那可能是内存泄露了😄
    MarginK
        31
    MarginK  
       23 小时 12 分钟前
    感觉什么都没说,limit 怎么取的呢? notify 就是提醒一下自己?感觉太简单了,标题党了感觉
    MarginK
        32
    MarginK  
       23 小时 11 分钟前
    @MarginK 有点精神胜利感觉是
    stardustedstand
        33
    stardustedstand  
    OP
       22 小时 47 分钟前 via iPhone
    @MarginK 代码里面有的,默认取 8000px 的限制,超过了就禁止滑动了 ,另外用户可以自定义 limit ,在插件弹出窗里。notify 在每次达到限制的时候都会触发一个简单的提示。
    stardustedstand
        34
    stardustedstand  
    OP
       22 小时 45 分钟前 via iPhone
    @MarginK 最后一句已经说了,这不是胜利,这只是一点点小小的抗争。
    zhmouV2
        35
    zhmouV2  
       21 小时 40 分钟前
    题外话,也不是所有人都喜欢无限滚动,或者也不是所有的东西都适合无限滚动。我记得谷歌搜索页就搞过 Infinite Scroll ,后来估计是被投诉太多取消了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5641 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 03:34 · PVG 11:34 · LAX 20:34 · JFK 23:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.