普通视图

发现新文章,点击刷新页面。
昨天以前颜海镜

《现代JavaScript库开发》一年回顾:收获与反思

2024年3月18日 08:00

从2013年至今,我陆续创作了多个库,关于如何开发JavaScript库,我也做了一些总结和分享,借这个机会,下面做个简要回顾。

2015年,我发布了zepto.fullpage,一款轻量级的全屏滚动插件。

2016年,我发布了前端模板template.js。

2018年是一个里程碑,我给公司搭建了Util.js,同时开源了jslib-base v1,并撰写了《如何写一个现代的JavaScript库》一文,开始将自己的经验分享给大家。

2019年,我一边搭建jsmini,一边开始着手撰写《现代JavaScript库开发:原理、技术与实战》

2021年,我给公司搭建了jssdk,作为Util.js的升级版。

2023年1月,《现代JavaScript库开发:原理、技术与实战》正式出版。

2023年10月,jslib-base 发布了v2版本,带来重要升级。

时光飞逝,《现代JavaScript库开发:原理、技术与实战》已经出版一年了,本文主要内容包括,书籍影响回顾,读者问题答疑和我自己的一些总结和感悟。

书籍影响回顾

初稿完成后,我就发给很多朋友试读,也收获了很多前端专家的推荐语,这些都记录在书籍开头了,这里不再展开,再次感谢为本书出版带来帮助的所有朋友。

自本书出版以来,就受到广大读者们的欢迎,下面我从三个方面梳理记录下:

1. 销量:

自书籍面世以来,它迅速登上了京东新书榜首,并在飙升榜上一马当先。

在当当网,它也荣登销量榜首位,显示出它在读者中的受欢迎程度。

这些成绩不仅反映了市场对本书的认可,也证明了JavaScript库开发领域的热度和重要性,当然也要非常感谢出版社运营老师,真的非常专业。

2. 奖项:

在个人荣誉方面,我有幸连续两年(2022年和2023年)被评为“优秀作者”,这是对我多年来在技术写作和开源贡献上不懈努力的认可。

2023年,我还被授予“技术领路人”称号,这不仅是对我的个人成就的肯定,也是对本书影响力的一个证明。

3. 评价:

在读者评价方面,本书在豆瓣、京东以及微信读书等平台上都收获了极高的评价。读者们赞赏书中对JavaScript库开发的深入剖析和实用指导,认为它不仅适合初学者入门,也适合资深开发者深入研究。这些正面的反馈是对我的工作最好的鼓励,也激励我继续在技术领域探索和创新。

豆瓣评分一直稳定在8.5分上下,节选如下:

京东好评率95%,这是读者真金白银给出的评分,节选如下:

微信读书好评如潮,节选如下:

本书目前也出版了繁体版,你觉得哪个设计更好看呢。

问题答疑

一本书籍让所有人都满意,显然是不太现实的,毕竟重口难调,我认真汇总并分析了网友的意见反馈,最主要的问题是一些网友反馈指出书中所用工具的版本较为陈旧。这个问题的产生主要是因为写作过程跨越了四年的时间,而技术领域的发展日新月异。

对此,我想说明几点:

首先,书中所写的工具和技术都是我在实际开发过程中所使用和验证过的。在我的众多开源库中,都是用的这一版,它们虽然可能不是最新版本,但都是经过实战检验的成熟方案。

其次,书中对于工具的版本选择是有意为之。我在书中固定了版本号,目的是为了避免因工具升级带来的不一致问题。这样可以确保读者在跟随书中示例学习时,能够获得和我当初写作时相同的体验和结果。

最后,我也意识到技术的更新换代是不可避免的。因此,我在近期对jslib进行了升级,推出了jslib v2,其中包含了对工具和库的最新版本更新。这样一来,读者可以在学习书中的基础原理的同时,也能接触到更现代的工具和技术。

总之,我希望读者能够理解书中的内容是基于当时的技术环境所编写的。虽然具体的工具和版本可能会有所变化,但书中所讲述的原理和思想是恒久不变的。同时,我也会继续关注技术发展,不断更新和完善自己的工作,以便为读者提供最新的学习资源。

我的收获

在本书的写作过程中,我收获了许多宝贵的经验和深刻的感悟。

首先,在写作初期,我采用了自己开发的gitbook-boilerplate,这让我能够使用熟悉的Markdown进行写作,并利用Git来管理版本。整个过程中,我提交了273个commit,这个数字见证了我对每一个细节的不懈追求。交稿后,书籍经历了三审三校的严格把关,主要借助WPS的审阅功能,期间我做了超过2万次的细节修改,这个过程虽然漫长且辛苦,但也是提升书籍质量的关键步骤。

在写书的过程中,有些人喜欢在一个主题下不断地添加内容,进行“加法”。而我则倾向于“减法”,即在JavaScript库开发这个主题上,我努力将内容精简到不能再减少。这种做法让书籍更加聚焦和精炼,是我在写作过程中学到的一个重要道理。

关于写书,最关键的是要确定一个清晰的大纲,这通常是通过对主题进行深入思考和反复推敲来实现的。一旦大纲确立,接下来的工作就是按照小节、篇章去填充内容。每一小节的写作量大致相当于撰写一篇博文,因此,坚持下去是成功的关键。如果你也有写书的梦想,欢迎联系我交流经验。

最后,我还学到了一个重要的道理:在写书的同时,也要兼顾好工作和家庭。写书最大的挑战之一是时间管理。我通常给自己设定一些小目标,比如每次只写300字或者一段话。你会发现,一旦开始坐下来写,成果往往会超出预期。

总之,写书是一段充满挑战但也极具成就感的旅程。通过这次经历,我不仅提升了自己的技术和写作能力,也收获了对生活和工作的新认识。

未来展望

在未来的JavaScript库开发领域,我预见到几个重要的趋势和期望:

  • 构建工具Rust化:随着Web应用的复杂度不断增加,对性能的要求也越来越高,前端构建打包lint工具,都在经历Rust重写,知识目前阶段还不成熟。

  • TypeScript的普及: 随着TypeScript的普及,越来越多的JavaScript库将支持或直接使用TypeScript进行开发,以提高代码的可靠性和开发效率。

  • 新技术的融合:我们将看到更多的JavaScript库整合新兴技术,如WebAssembly等,以拓展其应用范围和性能极限。

针对这些趋势,我最近发布了jslib-base 2.0,旨在支持旧仓库的一键升级,并引入了一系列改进,包括:

  • 升级全部工具到最新版
  • TypeScript库接入Babel工具
  • 添加Prettier、Commitlint和Husky
  • 添加一个本地server
  • 支持Node exports condition
  • 迁移Travis到GitHub Action

按照本书内容新建的库,可以支持一键升级,也算解决了网友反馈的书中工具版本陈旧问题。

我相信,通过这些更新和改进,jslib-base 2.0将为JavaScript库开发提供更强大、更灵活的基础设施,帮助开发者更高效地构建和维护他们的项目。

结语

在过去的五年里,我倾注了无数的心血和热情于《现代JavaScript库开发:原理、技术与实战》这本书的打磨和关注中。四年的写作,加上一年的出版后维护,每一步都凝聚了我的努力和对技术的热爱。这本书的每一个字、每一个例子,都是我对JavaScript库开发领域的深刻理解和实践经验的体现。

我非常感激每一位读者的支持和鼓励,是你们的肯定让这本书能够发光发热,也是你们的反馈和建议让我不断进步。这篇文章,我献给所有支持我的人,也献给我自己,作为这五年旅程的一个总结和纪念。

现在,是时候展望未来了。JavaScript库开发领域仍然充满了挑战和机遇,我期待着能够继续在这个领域探索和前进。如果有机会,我愿意撰写这本书的第二版,以分享更多的经验、技术和思考。

再次感谢大家的支持,让我们一起期待未来的可能性!

资源汇总

  • zepto.fullpage,专注于移动端的fullPage.js。
  • template.js,一款 javascript 模板引擎,简单,好用。
  • jslib-base,最好用的 JS|TS 第三方库脚手架,10 秒快速搭建一个新库的基础框架。
  • jsmini,Simple and beautifu library for JavaScript.
  • gitbook-boilerplate,一个基于gitbook快速写电子书的模版。

《现代JavaScript库开发:原理、技术与实战》狼叔推荐序

2023年1月1日 08:00

2023年1月,我和侯策老师共同打磨的书籍《现代JavaScript库开发:原理、技术与实战》终于正式出版了!

在书籍定稿之际,我把底稿寄给了狼叔,感谢狼叔在百忙之中抽时间阅读了底稿,并为我写了推荐序,一下是推荐序的内容。

狼叔推荐序

我和海镜、侯策认识很久了,他们之前写的那本《React状态管理与同构实战》是新手入门React的好书,我非常喜欢。

海镜不仅是大厂工程师、技术博主,还是开源爱好者。他开源了很多JavaScript库,如zepto.fullpage、template.js等。他搞的jsmini可圈可点,尤其难能可贵的是,他还编写了jslib-base——一个可以帮助开发者编写JavaScript库的工具库,这个库的特性涵盖了库开发的各个方面,非常实用。

我对海镜很熟悉,对他做的事也比较熟悉,所以当我得知他正在写这本书的时候,我是非常开心且放心的。开心是因为,目前前端领域和Node.js领域都缺少这样的专精内容,我在《狼书》里是写过如何开发JavaScript库的,但限于篇幅未能深入介绍,这本书弥补了我的遗憾。放心是因为,他一直是一线的、热爱开源的前端专家,无论是能力、眼界、判断力还是协作能力,都非常不错,鉴于他之前所写的那本《React状态管理与同构实战》的情况,我相信他能够将JavaScript库开发技术讲清楚。

事实上,本书的初稿也确实和我想的一样,章节分布清楚,内容详略得当,基本覆盖了所有读者想要看到的知识点,甚至还有扩展。

很多人在学习编写代码时都很迷茫,对此,我给的建议是:每天看10个npm模块(JavaScript库)。对于学习大前端(含Node.js)相关技术时感到迷茫的人来说,学习JavaScript库是消除迷茫的最好方式。当你不知道如何做时,可以通过学习JavaScript库积累对以后实际开发有益处的技能。与其不知道学什么,不如先通过学习JavaScript库每天积累几个技巧。只要坚持每天积累几个库开发技巧,并累计学习一万小时,你的个人编程能力一定会有质的飞跃。

当你掌握了很多开发技巧后,就会慢慢地想要自己去实现JavaScript库,这是一个创造的过程,也是一个自我实现的过程,这个过程非常容易带给人成就感。你编写的JavaScript库,可能是React这样的大框架或Vite这样的大型构建工具,也可能是is-number、debug这样的小模块。对于个人成长来说,无论模块大小,都能使人进步。当然,如果你编写的JavaScript库能够获得更多开发者和使用者的认可,那将是更值得开心的事。

以上就是我对开发和开源JavaScript库的简单理解,其实,我个人也是这样一步一步走过来的。

海镜和侯策写的这本书从多个维度介绍了JavaScript库开发和开源的技巧及注意事项,并列举了几个非常典型的库辅以实战,内容非常实用。希望大家能够通过这本书掌握更多的JavaScript库开发技巧,并通过刻意练习自我提高,成为自己想成为的人——技术大牛!

——Node.js布道者、《狼书》系列图书作者
桑世龙(狼叔)

总结

本书主要涵盖三部分内容,可以满足读者不同阶段的学习诉求。

  • 第1~5章 介绍如何开发和开源一个现代JavaScript库,这部分内容可以帮助读者快速达成库开发目标。
  • 第6~7章 介绍现代JavaScript库的设计最佳实践和安全最佳实践,这部分内容可以极大提高读者开发JavaScript库的质量。
  • 第8~11章 为实战部分,本书精选了9个典型库作为案例,带领读者了解不同类型的JavaScript库的开发要点。

如今,本书已全面上线,如果你也想开发属于自己的JavaScript库,提升开发技能,精进自身开发技术,一定不可以错过本书哦~~

有兴趣的读者可以点击下面的链接购买,再次感谢各位的支持与鼓励!恳请各位批评指正!

我还给大家准备了签名版,免费赠送直播课和周边,想要签名版的可以通过微信公众号联系我:颜海镜

京东:https://u.jd.com/7QlXVqN

当当:http://product.dangdang.com/29494845.html

十年磨一剑(我的新书自序)

2023年1月1日 08:00

2023年1月,我和侯策老师共同打磨的书籍《现代JavaScript库开发:原理、技术与实战》终于正式出版了!

在书籍定稿之际,有太多话想和大家说一下,思绪万千,不知从何说起。最终决定写一篇自序,记录一下这本书的由来,以及我在写作过程中的一些感悟。

十年磨一剑

十年,弹指一挥间。

回首过去十年,我一直致力于开源库的开发和维护,一路走来,我也从这个领域的“小白”慢慢成长为“专家”。这十年,支撑我坚持在库开发领域耕耘的原因是热爱分享,我特别希望能把自己做的东西分享给别人,分享的内容既可以是课程、博客文章,也可以是代码。在我看来,一份分享出去的代码片段,就是一个开源库。

十年来,前端技术推陈出新,新的开源库如雨后春笋般涌现,相信大部分读者都曾从这些开源库中受益。平日里,我们更多关注的是库的使用,很少关注库开发技术。其实,JavaScript库开发技术在这十年中也经历了快速发展,其中基于新的技术标准开发而成的库,我将其称为“现代JavaScript库”。

由于前端技术发展迅速,如今开发一个现代JavaScript库并不容易,其中涉及非常多的知识、工具和经验。比如,库如何兼容日益复杂的前端环境,库如何使用打包工具,库的单元测试如何做,等等。正因为这种复杂性,目前npm上的开源库并不都是现代JavaScript库,很多开源库还在使用十几年前的相对比较原始的技术。

除了依赖开发技术,将一个库开源还需要很多准备工作。一个库开源后的运营和维护也涉及很多知识。由于缺乏经验,很多库开源后并没有被推广开来。

总之,开发和开源一个现代JavaScript库并非易事,上述困难阻碍了很多读者开发自己的JavaScript库,我也曾被这些困难深深折磨过。经过十年的摸爬滚打,我不禁想:如果能有一个师傅手把手教我该多好,那我当初能少走多少弯路!基于此,我终于下定决心写一本现代JavaScript库开发领域的图书,将自己十年的经验总结沉淀,希望能够手把手教各位读者快速掌握现代JavaScript库开发技术。

人人都可以开发自己的JavaScript库

有人可能会问,为什么要学习JavaScript库开发技术呢?学会开发JavaScript库有什么好处呢?其实,开发JavaScript库能够带来非常多的好处。

我现身说法,开发和开源库不仅可以帮助他人解决问题,也能给自己带来很多成长。开发库的特殊要求,极大提升了我的技术深度;开发库涉及的技术非常多,极大拓宽了我的知识面;开源库使我融入了开源社区,在那里获得了很多技术之外的东西。总之,开发和开源现代JavaScript库可以带来非常大的收获,我希望每一个前端开发者都不要错过这个机会。

其实,我有一个愿望,那就是,人人都可以开发自己的JavaScript库。

再小的个体也应该有机会在社区中发声,社区不应该只要月亮的光辉,漫天繁星同样是美好世界的重要组成,只要我们愿意,每个人都可以开发属于自己的JavaScript库。

每一个前端开发者都身处两个世界,即业务世界和开源世界。大部分人熟悉业务世界,但对开源世界了解不多。所谓“技多不压身”,多了解开源世界,融入开源世界,你一定会有更多收获。

总结

本书主要涵盖三部分内容,可以满足读者不同阶段的学习诉求。

  • 第1~5章 介绍如何开发和开源一个现代JavaScript库,这部分内容可以帮助读者快速达成库开发目标。
  • 第6~7章 介绍现代JavaScript库的设计最佳实践和安全最佳实践,这部分内容可以极大提高读者开发JavaScript库的质量。
  • 第8~11章 为实战部分,本书精选了9个典型库作为案例,带领读者了解不同类型的JavaScript库的开发要点。

如今,本书已全面上线,如果你也想开发属于自己的JavaScript库,提升开发技能,精进自身开发技术,一定不可以错过本书哦~~

有兴趣的读者可以点击下面的链接购买,再次感谢各位的支持与鼓励!恳请各位批评指正!

我还给大家准备了签名版,免费赠送直播课和周边,想要签名版的可以通过微信公众号联系我:颜海镜

京东:https://u.jd.com/7QlXVqN

当当:http://product.dangdang.com/29494845.html

❌
❌