获得徽章 0
不要羡慕那些大厂的员工,他们的生活节奏严重违背了人类原始的幸福感。
工作日加班严重,周末就报复性的消费、吃喝、熬夜睡懒觉。
生活节奏大起大落,一边是劳累导致的阴郁,一边是刺激导致的兴奋。
就像吃一口热菜喝一口冷饮,时间久了人肯定会出问题。
另,现在早已过了互联网红利期,大厂业务固化甚至内卷,去了也没有太好的晋升机会。
所以,进大厂的年轻人,努力奋斗体验生活,争取多攒点钱。进不去的人也别太向往,贼是吃肉,但贼也挨打。
展开
评论
别动不动就想着读源码,想着手撕各种源码……
开源发展这么多年,现在优秀的开源产品的源码体量已经不是一个人可以业余时间慢慢读的了。
不再像当年 jQuery lodash 一样只有几千行代码了。而且,除了少数产品创始人,其他产品代码贡献者也只是熟悉自己贡献的模块而已。
所以,看源码、学原理应该分模块的看。不求看全,但求看一部分,其他的了解原理、知道全流程即可。
展开
2
最近在做一个关于“模拟面试”的课程,邀请了我之前课程里的几位学员参与在线面试。
为了照顾该课程的大部分受众,我出的面试题大部分是基础题(不是上来就手撕算法的那种),偶尔两三个有难度的,但面试的结果出乎我的意料。

1. 前端基础知识普遍较差,计算机基础更差;2. 简历依然有很多明显的问题,虽之前经过我 邮件 review ;3. 项目介绍很多都是个人项目,重点难点总结不出来;4. 没有认真准备,好多必考题都临场忘了。

这件事儿让我意识到:其实只看一些视频教程效果真的有限,看是看了,但记住了吗?可能大部分都记不住。简历我通过邮件回复几条建议,可能也不知道该怎么改,无从下手。

认真思考下原因:学习不仅需要输入,还需要输出和反馈。只看视频教程仅仅是输入,只动脑不动手是不行的。输出,就是要写出来,讲出来,实际参与到一个项目中。反馈就是要模拟面试,要被别人问到,才能发现自己的不足。

接下来我打算对在线教学模式做一些探索和突破,不仅讲视频看输入,还要看输出、看结果,并在过程中给予足够的反馈。为结果负责。
展开
2
开源软件不好做商业化,特别是国内的环境。
其实不仅仅是开源软件,而是所有的开发环境的工具,都不太好搞商业化、收费。包括代码编辑器、编程框架、编程小插件、开发工具等。
根本原因,这些开发环境的软件、工具的直接受众是程序员,而在一个公司里,很少有给程序员、研发部门购买其他软件产品的预算,特别是中小型公司。
程序员手里没预算没钱,想要买个什么东西还得去跟老板申请,老板如果不懂技术肯定会驳回,让你重新选择一款产品,开源软件、开发工具还是有很多可选择性的。
所以,想让程序员花钱买个东西很难,想让老板为程序员花钱买软件更难。

再对比一下运维部门,他们每年手里都有大量的预算,买服务器、买运营商网络、买数据库等大型软件。这些本身就是要花钱的,老板也知道,给预算,财务也知道,各种流程都比较顺畅。
展开
5
技术总是服务于业务的,代码总是服务于产品和运营的。
你上班,写代码,没有领工资,这些钱是怎么来的?是代码做出的产品,产品又去销售,这样得来的前。没有人会直接为你的代码付费。
一个合格的程序员,应该去理解公司产品的业务,根据业务来写代码,很少有需要你技术驱动的工作场景。
评论
写代码,正确性是第一位的,可读性是第二位的,性能是最末位的。
首先要保证功能正确,测试完备。其次要保证代码可读,别过两周连自己都看不懂了。最后才是性能优化,而且要按需优化,不能为了优化而优化,不能为了优化而扰乱可读性、正确性。
在我们实际工作中,需要极致性能优化的场景是非常少里的。即便 IO 请求多花费几十毫秒、CPU 执行多花费几毫秒,有怎样呢?只要没有明显的性能瓶颈、算法时间复杂度能在可控范围之内就可以了。
另外,软件工程、互联网这么多年,真正解决性能问题的是摩尔定律,是硬件和网络环境的提升,软件能做的优化是比较少的。
展开
评论
Software 是一个复合词,意思是”灵活的产品“。后来中文翻译为”软件“,词义非常好,软嘛,就可以随意的捏一捏变形,橡皮泥一样。软件产品存在的理由就是让人们能轻易的改变计算机硬件的行为,而达到不同的使用途径。因此,软件产品的灵活性、扩展性、配置性、可维护性,是其最重要的目标。
1
张鑫旭在写小说 juejin.cn ,我业余正在写《水浒传》解读。
张鑫旭文中这段话我是非常认同的:

大约在20年底,《CSS新世界》写完之后,我有几个月的堕落期。
就是有空就去看动漫,看漫画,甚至看无脑爽文漫画,基本上从国庆后看到春节过年。
得到的是什么呢?
空虚,乏味。
回头一看,纯粹就是时间的浪费。
对这个世界并没有任何的影响,对自己也没有什么影响,也就当时快乐了一下,然后呢……还是和之前一样。
展开
4
记录一下 React18 的主要更新:

1. 使用 ReactDOM.createRoot 注册根组件,这是唯一需要用户必须改动的地方,其他都是非必须。
2. Concurrent Mode 并发模式。组件更新时会准备多个版本的 VDOM ,先更新优先级高的,再更新优先级低的,后者可能会被前者打断。例如你正在家看电影,可以中断去拿快递。该过程 React 内部调度处理,无序使用者关心,类似于 OS 的进程调度。
3. startTransition 开始过度。CM 只提供了更新调度的能力,React 分不出你组件更新的优先级高低(默认都是高优先级),所以要用 startTransition 来告诉 React 哪个是低优先级任务。还可以使用 useTransition 获取 pending 状态,以方便切换 loading 组件。
4. Automatic Batching 自动批处理。React18 之前,只有 React 内部事件才支持批处理,即合并 state 一次性异步更新,而用户自定义的事件(DOM 事件、setTimeout、ajax 回调等)无法批处理。React18 开始,无论什么情况下,都支持批处理。用户使用无感知。不过,如果想强制使用同步更新,可使用 flushSync 。
5. Suspense 可用于 SSR 。React18 之前,SSR 必须渲染网页的全部内容,可能会因为某个组件而导致整个页面卡顿。React18 开始可以在 SSR 中使用 Suspense ,这样服务端可以分批返回内容 —— 流式渲染(其实也是老概念了)
6. useDeferredValue 让 state 延迟生效,当前无紧急任务时,才会更新 state 。和 startTransition 一个用意。

总结:React18 是一次重要更新,而且用户升级成本极低。从 React 16 引领大家写函数组件和 Hooks ,到现在升级了内核和更新算法,React 依然是前端框架界的天花板。
展开
3
下一页
个人成就
文章被点赞2,502
文章被阅读169,898
掘力值4,203
收藏集
0
关注标签
25
加入于