其他
文末赠书大家好,我是童欧巴。喜迎新年,给堂友们搞几波送书福利,在此感谢博文视点大力支持,具体送书规则请移步文末。最近一年,互联网裁员现象愈演愈烈,很多大厂裁员的消息冲上了微博热搜,这不禁让很多程序员心中焦虑。我也时常在想,什么样的人能够抵御这场互联网寒冬,抑或不怕重走一遍求职路呢?答案其实很简单,就是那些在无意义的“重复造轮子”内卷中依然能够修炼技术水平,具备真正的技术实力的人!对于前端开发工程师而言,很多人在日复一日的“写页面”中慢慢弱化了自身的技术实力,当意识到这一点时,又希望能够扭转这种局面,提升技术功力。但这又带了一个新的问题:通过什么来提升技术功力呢?我认为,开发JavaScript库是一个很好的途径。回首过去十年,我一直致力于开源库的开发和维护,一路走来,我也从这个领域的“小白”慢慢成长为“专家”。这十年,支撑我坚持在库开发领域耕耘的是热爱分享,我特别希望能把自己做的东西分享给别人,分享的内容既可以是课程、博客文章,也可以是代码。在我看来,一份分享出去的代码片段,就是一个开源库。十年来,前端技术推陈出新,新的开源库如雨后春笋般涌现,相信大部分读者都曾从这些开源库中受益。平日里,我们更多关注的是库的使用,很少关注库开发技术。其实,JavaScript库开发技术在这十年中也经历了快速发展,其中基于新的技术标准开发而成的库,我将其称为“现代JavaScript库”。由于前端技术发展迅速,如今开发一个现代JavaScript库并不容易,其中涉及非常多的知识、工具和经验。比如,库如何兼容日益复杂的前端环境,库如何使用打包工具,库的单元测试如何做,等等。正因为这种复杂性,目前npm上的开源库并不都是现代JavaScript库,很多开源库还在使用十几年前相对比较原始的技术。除了依赖开发技术,将一个库开源还需要很多准备工作。一个库开源后的运营和维护也涉及很多知识。由于缺乏经验,很多库开源后并没有被推广开来。有人可能会问,为什么要学习JavaScript库开发技术呢?学会开发JavaScript库有什么好处呢?其实,开发JavaScript库能够带来非常多的好处。就像我前面提到的,从开发JavaScript库开始,修炼自己的技术水平,对于求职、转型、技术进阶,都大有裨益。我现身说法,开发和开源库不仅可以帮助他人解决问题,也能给自己带来很多成长。开发库的特殊要求,极大提升了我的技术深度;开发库涉及的技术非常多,极大拓宽了我的知识面;开源库使我融入了开源社区,在那里获得了很多技术之外的东西。总之,开发和开源现代JavaScript库可以带来非常大的收获,我希望每一个前端开发者都不要错过这个机会。其实,我有一个愿望,那就是,人人都可以开发自己的JavaScript库。再小的个体也应该有机会在社区中发声,社区不应该只要月亮的光辉,漫天繁星同样是美好世界的重要组成,只要我们愿意,每个人都可以开发属于自己的JavaScript库。每一个前端开发者都身处两个世界,即业务世界和开源世界。大部分人熟悉业务世界,但对开源世界了解不多。所谓“技多不压身”,多了解开源世界,融入开源世界,你一定会有更多收获。当然,开发和开源一个现代JavaScript库并非易事,上述困难阻碍了很多读者开发自己的JavaScript库,我也曾被这些困难深深折磨过。经过十年的摸爬滚打,我不禁想:如果能有一个师傅手把手教我该多好,那我当初能少走多少弯路!基于此,我终于下定决心写一本现代JavaScript库开发领域的图书,将自己十年的经验总结沉淀,希望能够手把手教各位读者快速掌握现代JavaScript库开发技术,于是便有了《现代JavaScript库开发:原理、技术与实战》一书。本书内容本书主要涵盖三部分内容,可以满足读者不同阶段的学习诉求。第1~5章介绍如何开发和开源一个现代JavaScript库,这部分内容可以帮助读者快速达成库开发目标。第6~7章介绍现代JavaScript库的设计最佳实践和安全最佳实践,这部分内容可以极大提高读者开发JavaScript库的质量。第8~11章为实战部分,本书精选了9个典型库作为案例,带领读者了解不同类型的JavaScript库的开发要点。专家书评每个前端工程师都想开发自己的框架或库,然而大部分开发者在繁杂的业务代码中都在使用别人的框架或库。本书教你如何从零开始创建自己的库,如何突破技术瓶颈。——Deno核心代码贡献者、vscode-deno作者