前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这些感想都太特么有价值了!

这些感想都太特么有价值了!

作者头像
kunge
发布2022-05-17 12:09:55
5490
发布2022-05-17 12:09:55
举报
文章被收录于专栏:码海码海

大家好,我是坤哥

不少读者私下对我说我的朋友圈很有价值,对他们的帮助很大,所以想了一下把一些有价值的思考提炼出来分享出来,希望对大家能有些帮助,也欢迎大家扫码加我好友,围观朋友圈,共同进步^_^

编程思维

  • 「分析源码第一步,先看一下单元测试用例。因为,一般单元测试中,每一个用例就是测试代码中的一个局部或者说是一个小流程。那对于一些比较完善的开源软件,它们的单元测试覆盖率都非常高,很容易找到我们关心的那个流程所对应的测试用例。我们的源码分析,就可以从这些测试用例入手,一步一步跟踪其方法调用链路,理清实现过程。」摘自极客时间,说得不错l
  • JAVA 网络,看到一个比喻挺不错的(有一些瑕疵,不过不影响整体理解),分享给大家: 例子:有一个养鸡的农场,里面养着来自各个农户(Thread)的鸡(Socket),每家农户都在农场中建立了自己的鸡舍(SocketChannel) 1、BIO:Block IO,每个农户盯着自己的鸡舍,一旦有鸡下蛋,就去做捡蛋处理; 2、NIO:No-Block IO-单Selector,农户们花钱请了一个饲养员(Selector),并告诉饲养员(register)如果哪家的鸡有任何情况(下蛋)均要向这家农户报告(select keys); 3、NIO:No-Block IO-多Selector,当农场中的鸡舍逐渐增多时,一个饲养员巡视(轮询)一次所需时间就会不断地加长,这样农户知道自己家的鸡有下蛋的情况就会发生较大的延迟。怎么解决呢?没错,多请几个饲养员(多Selector),每个饲养员分配管理鸡舍,这样就可以减轻一个饲养员的工作量,同时农户们可以更快地知晓自己家的鸡是否下蛋了; 4、Epoll模式:如果采用Epoll方式,农场问题应该如何改进呢?其实就是饲养员不需要再巡视鸡舍,而是听到哪间鸡舍的鸡打鸣了(活跃连接),就知道哪家农户的鸡下蛋了; 5、AIO:Asynchronous I/O, 鸡下蛋后,以前的NIO方式要求饲养员通知农户去取蛋,AIO模式出现以后,事情变得更加简单了,取蛋工作由饲养员自己负责,然后取完后,直接通知农户来拿即可,而不需要农户自己到鸡舍去取蛋。
  • 在看 ConcurrentHashMap 源码,看到 helpTransfer 的方法时,被一个地方卡住了,联系上下文,想了半天,总感觉这里有问题

于是打开 https://bugs.java.com/bugdatabase/view_bug.do 搜了一下,果然是 bug!比较坑爹的是这个 bug 在 JDK 12 才解决,顺便感叹一句,搜了不少靠前的文章,都讲到这一段,但都没有发现这是 bug,怀疑还是很重要的,即便这是 Doug Lea 写的。源码要看,但要细看,指不定你哪天也在这上面提一下 bug,简历上可以增添一句:我是给 bugs.java.com 提过 bug 的男人,简历瞬间熠熠生辉😃

  • 看了一篇被誉为是"程序员史诗般必读文章"的论文,同时也是 Kafka 的起源论文,大受震憾,中文版:https://www.kancloud.cn/kancloud/log-real-time-datas-unifying/58711
  • 接手了一个很复杂的 PHP 转 Java 的工作,评估了一下工作量,如果硬转,估计一天都搞不定,这个功能其实用的很少,于是想到 Java 可以执行 shell,这样直接在 Java 里调用执行 php 脚本的命令(php xxx.php)就可拿到结果,处理后,10 分钟搞定,先思考再动手,结果会大不一样[Smirk]
  • 极客时间李智慧的《高并发架构实战课》确实给力!不管是秒杀还是短链设计虽然我之前我都写过,但这门课在这两节中依然给出了让我眼前一亮的思路,每一章节信息量都很大,比如短链设计中提到居然可以将 144 亿条 86.4GB 的短链提前生成保存在一个 HDFS 文件中!短链过期后还可以重复利用(过个一两年其实这些短链也就过期了),而我们之前短链的设计是连续递增,使用openrestry 等方案来实现高性能,看完这门课之后最大的感叹是原来高性能还可以用这些相对简单的技术来实现,设计思路都挺巧妙的/::,@
  • 美团的这篇垃圾回收写得太棒了!不过文章略长,2万多字,记笔记都记了好久,慢用 https://tech.meituan.com/2020/11/12/java-9-cms-gc.html
  • 发现一本神作《Inside Java Virtual Machine》,虽然是2000年出版的,但关于JVM的知识点讲得很细,不少东西依然不过时,是对《深入理解Java虚拟机》很好的补充
  • 非常好的一篇线上问题复盘文章,信息量很大,GET 到很多新技能,比如
  1. 可以使用 OQL(类 SQL)来查找容量大于 xx 的对象
  2. 在 FullGC 后新老年代都占用 700 M 的空间下,JVM 却依然持续进行 full GC,原因居然是 Vector 扩容引起的 最后的解决方案也是挺巧妙的,推荐看看 https://tech.ebayinc.com/engineering/sre-case-study-triage-a-non-heap-jvm-out-of-memory-issue/
  • 最近看了一些秒杀方面的东西,收获颇丰,推荐几个很有技术含量的秒杀项目或文章,希望对大家有帮助
  1. 极客时间的《手把手带你搭建秒杀系统》从 0 到 1 带你打造一个百万 QPS 的秒杀项目,关于秒杀理论讲解得很到位
  2. 秒杀系统实战总结:https://mp.weixin.qq.com/s/yWn_2OQV31zn5wJKKejGug,一位技术总监关于秒杀的总结,实战性非常强
  3. github 上的 2.2w 秒杀项目:https://github.com/qiurunze123/miaosha
  • 最近面试了不少前端,其中一位让我印象深刻,他在简历上写了一个可以演示的项目(计时展示一个皮卡丘的绘制过程,并且源码滚动展示),整体聊下来感觉非常好,其实说实话谁也不想问那些枯燥的八股文,如果有项目经验,顺着项目问相关知识点最舒服,如果可以演示就更棒了
  • 提起IO多路复用,我们第一感觉是复用一个线程去处理大量的 Socket 连接,今天看到一个观点很受启发,复用更多的是指系统调用的复用,「因为在非阻塞 IO 时,就已经可以实现一个线程处理多个网络连接了,这个是由于其非阻塞而决定的(下图为非阻塞IO)多路复用主要复用的是通过有限次的系统调用来实现管理多个网络连接。最简单来说,我目前有 10 个连接,我可以通过一次系统调用将这 10 个连接都丢给内核,让内核告诉我,哪些连接上面数据准备好了,然后我再去读取每个就绪的连接上的数据。因此,IO 多路复用,复用的是系统调用。通过有限次系统调用判断海量连接是否数据准备好了」

推荐一门比较系统的计算机科学概览课程,在油管上非常火爆的计算机科学入门课程,累积千万播放,能够帮助我们在脑海中建立完整的计算机学科体系 很贴心的是,这个课程被一些计算机博主看到了之后,自发的组织起来,翻译了中文字幕,并将视频上传到了 B 站上,也建立了相应的 Github 项目,目前在 B 站的播放也有百万量级了。 Github:https://github.com/1c7/Crash-Course-Computer-Science-Chinese Bilibili:https://www.bilibili.com/video/av21376839 每天在地铁上看几集,进步一点点[Smirk] 网上不少博客说 disruptor 的 ringbuffer 满了之后会阻塞业务线程,差点我就信了,但转念一想 log4j2 用的也是 ringbuffer,它又是个如此常见的日志组件,这样的话岂不是打日志都得悠着点,看了一下源码,发现它有个 AsyncQueueFullPolicy 的选项,可以选择 discard 模式,这个 discard 模式用的是 disruptor 的 tryPublishEvent 的方法,用这个方法投递的话在 ringbuffer 满了之后并不会阻塞,而是会直接返回 false,而用 publishEvent 来投递的话则在 ringbuffer 满时会发生阻塞 1 纳秒现象。尽信书不如无书,确实要多探索一下,多读下源码,毕竟:源码之下无秘密! 前端迟迟未招到合适的人,小程序的需求又特别多,于是这两周客串了一把前端,主要时间其实是花在界面的调整上,今天看需求准备开始搭页面时突然想到我们的 UI 稿是用 sketch 标的 html 页面,每个元素都有 css 等样式,是否可以写个脚本把这些 html 页面转成小程序代码,一搜居然还真有,阿里的 imgcook已经实现了,可以导出多端代码,试用了一下非常给力!导出的 css 还原度 100%!开发在导出的代码里稍作修改即可,大大减少了开发量和视觉走查成本,多思考,减少重复无效的工作,生活会更美好/:,@P

商业思维

  1. 近期看到几例创业卖房或者抵押房子最后失败的案例,实在让人唏嘘,余世维曾经说过一句话我觉得每一个创业者都应该谨记:我在外面打拼不管结局如何,但我始终不会动用留给家里的这栋房产。这就是底线思维,创业者应该要做最坏的打算,留有最基本的底线(不影响家人体面的生活),当然说来容易做来难,毕竟公司就像自己的孩子一样,很难接受它半路胎死腹中,所以说大部分人都不适合创业,要承受极高的压力和极有可能一无所有的窘境,别没事想着创业,做一夜暴富的美梦,如果一定要创业,建议做轻资产创业,比如做自媒体等,这样成本就只有一台电脑还有个人时间,后果也可以承受
  2. 晚上打车回家,1.2 公里等了 15 分钟,本来挺恼火的,上车一问为什么这么久,司机说他注册了好多个平台,没留意到接单通知,并且补充说现在每天的接单收入都不及油钱,主要是因为疫情,大家都不敢出来消费了,而且现在出现大量的工厂倒闭潮,大量的服装厂,做外贸的等倒闭了,大家都不好过,他因为有不少人脉,帮了不少老板介绍了工作,所以比较了解这这些,他自己则准备再干一周也转行。想起王兴 2019 年所说的那句话:今年是未来十年最好的一年,现在仔细一想,确实有先见之明,时刻准备着过冬
  3. 年初亦仁说今天应该全力发力抖音,深以为然,这两个月我们在抖音直播带货取得了挺大的突破,这个月预计可以提前完成单品牌单月百万 GMV 的目标,为什么很多商家现在都布局抖音了呢,因为阿里电商遭遇了比较大的挑战,和我们合作的某 TOP 3 品牌也反馈他们在淘宝,天猫的销量下滑了30%~40%,而抖音的电商数据一直在稳步增长,抖音毫无疑问是个不容忽视的巨大的金矿!
  4. 好几位读者反映公司在裁员中,最近确实是裁员滚滚,资本趋冷,加入有稳定现金流的公司太重要了,存量博杀的时代,活着才是王道
  5. 上个月为某品牌带货卖了两万多,品牌方觉得有点少,于是他们自己播了一场,结果只卖了 80,终于明白了我们的直播相对专业,于是毫无保留的把最新款式等他们觉得比较有用的款式以及其他一些商品信息同步给了我们/:,@P,这一方面说明了把一些看似简单的事情做到极致也是很强的竞争力,另一方面我觉得更重要得是让客户觉得我们做这事是专业,有壁垒的/::,@

其他

  • 今日的乌克兰与当年的国民政府何其相似,民众都处在悲惨的境地,都沦为大国博弈的棋子,都有一个将自己命运寄托于其他大国的“领袖”,如此焉能不败!天幸中国有润之!
  • 磁盘空间满了,准备删些文件,发现 QQ 居然占了好几个 G,于是手起刀落,直接卸载,这玩意貌似一年多没用了,以后估计也不会再怎么用了,重要的人和事都保存在微信里,这就够了。顺便推荐一款清理 mac 很好用的工具 omniDiskSweeper,使用 GUI 的形式能帮你按容量大小列出本机上的所有文件并删除,体验很不错
  • 晚上第一次看话剧,《最后晚餐》,确实精彩,两个演员撑起了一场一个半小时的戏,很有感染力,听到现场挺多人的啜泣声,记得有一篇文章说看一个演员的水平高低没有什么统一的标准,但如果长时间经历过话剧表演的演员表演功力一般很深厚,原因很简单,话剧是现场表演,到某段台词需要哭,那你就得立马哭,不像电影那样可以后期剪辑或者使用催泪剂来达成效果,建议大家有机会看看话剧,感受下现场表演的魅力
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码海 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编程思维
  • 商业思维
  • 其他
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档