• 很多技术 just 工具而已,非高科技的程序员是工具人。

    各个互联网公司用制造业的手法,将流程强化、动作固化、标准细化,追求高效率、低成本。

    人只是运转机器中的螺丝和零部件,各个职业经理人做的事情就两件: 1.搭建机器 2.让各个部件能更容易被替换。

    其实纵观整个行业,除了极高水平的科技外(这个能改造规则), 对公司价值最高的都是: 销售&营销。

    IT 部门算个啥呢,本来就是底层的执行层,被告知要干啥干啥,产品经理把逻辑和图都给你准备好了。

    知道要做啥&为什么要做&如何选择优先级,远比执行本身更有价值。

  • 从 LRU 到 LIRS at 2020年01月18日

    感谢你的反馈

  • 一起学习,感谢你的回复

  • 直播 (上) -- 底层逻辑浅析 at 2019年10月29日

    在有直播业务的公司搬砖。 其实直播那套眼花缭乱的业务都是很 “成熟” 的技术应用,一般技术团队都能搞,稳定性就看公司的基础设施建设了。 核心的是,音视频采集、加工、传输、分发这套工业流程体系,就是传说中的推拉流。 这里面有无数的算法技术智慧结晶,稍微了解了一下膜拜不已。

  • 这个不存在优化问题,表结构已经很简洁了,也许可以考虑如何缓存供货关系,不要一直查 DB。等数据量大到一定程度,你应该会选择按照 [供货商 ID] 分库分表了。

  • 我的透明创业实验 at 2019年05月20日

    程序员的正确姿势

  • 如何看待 996.ICU at 2019年04月28日

    996.icu 是社会对劳动密集型、可替代性强、年龄敏感、壁垒不高等等强应用型职业面临的严峻挑战的一种善意提醒。

    这种职业状态是很大一部分程序员职业发展可能的最终状态。

    世上大部分抗议都是效果不大的,只有尽可能想办法避开。

    以上说给我自己听的。

  • 两千多个挺正常的,你 nginx 和 puma 是跑在同一台机器上的,nginx 每次转发请求实际上都会创建新的 TCP 连接,连接没有被复用后面就 timewait 了。如果并发量高的话确实会出问题,upstream 就会连不上,sourceIP:Port -> DesIp:Port 耗尽了。

    一般有几个解决方案:

    • 把可用随机端口调大 net.ipv4.ip_local_port_range
    • 后端多搞几个 upstream
    • Nginx 在 upstream 中用长连接
    • 开 tcp_tw_reuse 和时间戳 并且限制 timewait 的总数量,当触发上限时就会剔除旧的
    • nginx 和 puma 在同一台机器上时可以用 unix socket 避开 tcp 协议栈
  • 关于散列表的一些思考 at 2019年03月13日

    棒!

    可以继续解释一下哈希如何存放不同类型的 key 和 value

  • 18 年三月份刚来上海面的第一家就是薄荷,宝贵的经历啊。

    由于当时经验不足,也没有” 证据 “证明自己是谁 (底气很虚),然后被问了两个简单的工程应用问题,仓皇之下答的一塌糊涂。回去了解了一下就是简单的乐观锁应用和 feed 流的知识,听到 vincent 叹息了声” 时间过的好快 “(面试时),当时就意识到没戏了。面试前准备了许久了数据结构/算法/redis 底层/tcp/LB 等知识完全没被问到,当时也不太懂要引导面试官往自己熟悉的方向走,或者争取机会在其他方面证明自己。

    vincent 当时出于礼貌 (自己感觉当时该立即埋头出门的),带我逛了一下薄荷,个人感觉薄荷还是不错的!

    在经历了一系列类似的场景后,让我蓄积了大量动力去尝试写技术文章。认识到构建个人对外的沟通界面真是太重要了。

    还在路上的菜鸟在此表示感谢!

无产阶级革命家