掘友等级
获得徽章 0
#挑战每日一条沸点# IO 同步、异步、 阻塞、非阻塞的区别:
同步or异步:等待返回结果是同步,不等待是异步。
阻塞or非阻塞:等待数据处理完成才返回为阻塞,不管数据是否处理完都返回为非阻塞。
bio(同步阻塞)和nio(同步非阻塞)例子:
bio:排队拿餐,等到制作完成就取餐
nio:取餐号在显示屏(channel通道)上,查看显示屏就能马上看到是否制作完成
异步:直接不管,让他发消息通知我取餐再去拿
命运,是一个很缥缈的东西,有人相信命运,走到了塔顶,或者坠落到崖底。有人想逆天改命,但成功几率,与中彩一样,但有了毅力,终有那么一天,前方,不再是灰色的雾。
#挑战每日一条沸点# 不应该过度过度工程化
1.增加了复杂度,工程化的主要价值在——规范化开发,自动化流程,提高质量
2.不必完全 Toolkit/Framework 化,可以采取适合轻量工程化方案,适合的最好
3.目前有一些新思路,比如 Vite 和 Remix 等。后端和全栈的工程化经验也应该借鉴。
4.重要的是解决真正的痛点,不要过度工程化
Logic will get you from A to B. Imagination will take you everywhere
逻辑会带你从A点到达B点,想象力将把你带到任何地方
#挑战每日一条沸点#
命名方法区分:
【假设】定义用户信息变量
驼峰:userInfo (普通的变量)
帕斯卡:UserInfo (多见于类,接口声明)
匈牙利:oUserInfo (前缀为变量类型,此处为object类型变量)
蛇形(下划线):user_info
串形:user-info
#挑战每日一条沸点# 浏览器会根据 Content-Type 来决定如何处理http返回的内容(在浏览器中展示 / 当做文件下载),与文件后缀名关系不大。
#挑战每日一条沸点# 使用submit方法提交到线程池的异步任务,异常会被吞掉的,在日常发现中,如果会有可预见的异常,可以采取这几种方案处理:
* 1.在任务代码try/catch捕获异常
* 2.通过Future对象的get方法接收抛出的异常,再处理
* 3.为工作者线程设置UncaughtExceptionHandler,在uncaughtException方法中处理异常
* 4.重写ThreadPoolExecutor的afterExecute方法,处理传递的异常引用
关于命名的大多数规范核心在于考虑上下文,人们在阅读理解代码的时候也可以看成是计算机运行程序,好的命名能让人把关注点留在主流程上,清晰地理解程序的功能,避免频繁切换到分支细节,增加理解成本
当捷径上人满为患的时候,不妨绕点弯路,也许能更快的到达目的地。一个人只要努力去做他能够做的事,他的能力就能达到惊人的地步,如果你在压力之下,应该做到不顾困难,利用这种压力去使你做得更好
职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
下一页