You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
最近较多地使用 AI 编程,谈谈感受。如果是开发维护一个现有的软件,如果我对其使用的技术栈很熟,它对我的全天工作效率的提升大概是30%~40%,算上其他它不能替代工作任务,它平均对我每天提升我的效率大概是20%不到。如果我对该软件使用的技术栈和不熟悉,它对我提升的效率大概80%~100%。对于不熟悉的技术栈,AI 能让迅速我成为该领域的初级工程师,然而我们大部分工作是处理熟悉的技术栈。开发者每天处理最多的时间其实是梳理需求、编写技术方案,而不是编码,当 AI 能高效理解需求,并且从产品需求到开发测试一条龙开发完成上线,这时才有可能冲击开发者。只要还没一条龙自动化,其永远是程序员提升效率的工具,而不会取代程序员。越难理解的需求,AI 越处理不好,例如较复杂的后端。越初级越不触及核心业务的岗位,例如管理后台的前端开发,AI 对其冲击越大。如果前端只是薄薄展示一层,AI 应该很快就会替代前端很多岗位。总之,AI 对前端的冲击还是比较大的,前端开发者未来的护城河将会是全栈架构师或全栈个体,能快速理解需求并实现全链路开发。
The text was updated successfully, but these errors were encountered:
toPromise
方法,虽然有lastValueFrom,但是一点也不函数式,除非JS的管道操作符能上Stage 3。prettier
的换行是真的难用,难怪antfu专门写了一篇文章吐槽。src
文件夹里面,脚本自动生成的代码或拉取的代码,则放在src同一级的文件夹内(比如gen
/idl
)。verbatimModuleSyntax
对CJS项目不友好,但是对于ESM项目开启这个选项就很香。期待以后所有项目都是ESM
。Proposal: deprecateimportsNotUsedAsValues
andpreserveValueImports
in favor of single flag microsoft/TypeScript#51479 (comment)airbnb
的风格影响,强制要求每个函数声明都要写上返回值。后来思考清楚后,其实这不是最佳实践。好的TS代码应该像写JS一样顺滑,同时类型能自动推断。声明太多的类型,不管是手动写的type或interface,还是函数的返回值,都有种画靶子然后打靶子的感觉。而且,函数要求声明返回值在函数返回的类型是外部库的类型时,还需要导入一遍,不仅麻烦,而且外部库可能不一定把类型暴露出来。总的来说,虽然我们写函数可以不声明返回值,但是作为开发,应该尽量避免返回复杂的字面量对象,比如return {a:1,b:'1',c:{d:true,e:['1',1]}}
,这样ts的类型推断可能有点问题。并且在某些场景还是应该写明返回的类型,比如返回any
的场景。TCP的三次握手
。但是有些问题和生产息息相关,经常用到,那就不是八股文,比如浏览器跨域相关的头大概有哪些、cookie的属性大概有哪些、HTTPS和HTTP的区别
等。你不真正理解系统,也就不会感到自己是代码的主人
,这对有追求的技术人来说是个不小的打击。相对于有主人翁的感觉和意识,没有主人翁的感觉和意识的工作效率和热情减半不止。num.toString()
和String(num)
。这些糟粕和实现细节,初学者(甚至是用js工作了一两年的开发者)是不一定能体会到其中的弊端。这种情况下,有经验的资深JS工程师,通过ESLint配置,将不好的实现和糟粕的用法禁止掉,这对任何项目都非常有利。在支撑业务的前提下对技术精益求精
。npm install
时,npm默认会自动执行node_modules里面的npm包中的postinstall等script,这真不是好的设计。npm包的开发者应该尽量不往包的scripts里面写postinstall等语句,因为这些scripts这对使用者来说真tm不好用。https://blog.typicode.com/posts/husky-git-hooks-autoinstall/lodash
对于现代 TS 项目来说是弊大于利的。有3个最大的弊端,首先是类型安全,这种库诞生于 TS 之前,对类型安全的支持不是很好,很多函数的入参和返回都是 any,即使不是 any,类型也不太准确。其次是提升代码的黑盒性,使得代码不容易预测,如果使用 es6 的特性,比如 map、reduce、展开符等,能比较直观知道这个功能是什么,也比较好预测代码的结果,但是 lodash 的部分函数不容易让人理解结果表现,比如 defaultsDeep 函数是否会合并数组类型,这个文档也没给出清晰的描述。第三是增加项目体积。最大问题是类型安全,与其用 lodash 的函数,不如找找有没有相同功能但是类型更加健壮,且更加易于预测的函数 npm 包,否则建议使用各种 es 新特性手写。The text was updated successfully, but these errors were encountered: