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

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

  •  
  •   stardustedstand ·
    kmfb · 13 天前 · 5345 次点击

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

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

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

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