{"id":17929476,"url":"https://github.com/azl397985856/automate-everything","last_synced_at":"2026-01-25T07:37:17.191Z","repository":{"id":48875842,"uuid":"110325486","full_name":"azl397985856/automate-everything","owner":"azl397985856","description":"这是我准备写的第一本书，其实早些时候已经打算开始写书了，只是苦于没有写书经验，无从下手。写书不同于博客，写书需要将知识，经验等系统化地讲述出来，而我现在恰巧缺乏这种表现能力。因此我决定在这里将项目中零散的东西记录下来，然后后期润色一下，写成一本书。","archived":false,"fork":false,"pushed_at":"2021-12-03T15:13:37.000Z","size":3330,"stargazers_count":551,"open_issues_count":2,"forks_count":48,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-04-03T11:15:38.710Z","etag":null,"topics":["automation","components","front-end-development","modules","performance"],"latest_commit_sha":null,"homepage":null,"language":"Roff","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azl397985856.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-11T07:00:42.000Z","updated_at":"2025-03-31T13:23:20.000Z","dependencies_parsed_at":"2022-09-18T06:04:24.398Z","dependency_job_id":null,"html_url":"https://github.com/azl397985856/automate-everything","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/azl397985856/automate-everything","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fautomate-everything","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fautomate-everything/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fautomate-everything/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fautomate-everything/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azl397985856","download_url":"https://codeload.github.com/azl397985856/automate-everything/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azl397985856%2Fautomate-everything/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28747718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T05:12:38.112Z","status":"ssl_error","status_checked_at":"2026-01-25T05:04:50.338Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","components","front-end-development","modules","performance"],"created_at":"2024-10-28T21:09:24.359Z","updated_at":"2026-01-25T07:37:17.177Z","avatar_url":"https://github.com/azl397985856.png","language":"Roff","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 我的第一本书\n\n为了获得更好的阅读体验，您可以访问[在线版本](https://lucifer.ren/automate-everything/)\n\n## 关于我\n\n我是一个对技术充满兴趣的程序员, 擅长前端工程化，前端性能优化，前端标准化等。\n\n做过.net， 搞过Java，现在是一名前端工程师。\n\n除了我的本职工作外，我会在开源社区进行一些输出和分享，比较受欢迎的有[leetcode题解](https://github.com/azl397985856/leetcode)\n和[前端面试宝典 - 图解前端](https://github.com/azl397985856/fe-interview)\n\n如果大家需要内推的可以找我，我这里有包括阿里，腾讯，头条，网易等很多公司的朋友。\n有需要可以直接群里联系我，或者发送到我的个人邮箱 [azl397985856@gmail.com]。\n\n## 我为什么要写这本书（序）\n\n写这本书的目的很简单，就是审视自己。我喜欢用写作来总结自己的生活，因为花在这上面的时间是复时间，就像复利一样。我喜欢一个人散步，因为散步可以将思维释放，我认为做太多重复没有创造性的东西对我来说没有什么价值，我更喜欢将散步当做身心的一种放松，而且我很多好的想法都是在散步中得到的，它不仅能使你身体得到放松，而且可以让你工作效率翻倍。如果读书是知识的输入的话，那么写书就是对知识的输出。通过读书掌握的通常很少，据研究表面通常不到书内容的 10%。但是通过合适的输出，可以将这一比例上升到 32%。输出的方式不仅仅有写作，还有复述，讲给别人等等。\n\n\u003e 编程是一种技艺，一种需要用心学习的技艺\n\n同时我想借这个机会认识一些志同道合的人，就是打算在这一行干点事，留下点东西的人。与人交流其实也是一种复利，通过思维的碰撞，可以将彼此的能量和创新得到有效的释放，同时也是审视自己的绝佳时机。\n\n## 前言\n\n这是我准备写的第一本书，其实早些时候已经打算开始写书了，只是苦于没有写书经验，无从下手。写书不同于博客，写书需要将知识，经验等系统化地讲述出来，而我现在恰巧缺乏这种表现能力。因此我决定在这里将项目中零散的东西记录下来，然后后期润色一下，写成一本书。\n\n软件工程之所以叫工程是因为其中运用了很多工程化的方法。软件的构造应该是工程学科，早期的各种瀑布模型，UML 建模语言，以及近期的 SCRUM，他们中充斥着各种工程化的工具和方法。 知乎是这么描述软件工程的：软件工程 \\(Software Engineering\\) 是一门研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件，以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。 想一想中世纪的大教堂，每一座都跨越数千人数年的努力，它们相信个人的力量支撑了整个项目：\n\n\u003e 我们，采集的只是石头，却必须时刻展望未来的大教堂。\n\n本书主要分为四个部分来讲述软件开发的工程化。\n\n- 第一部分讲述前后端如何分离，旨在通过任务分工，拆解，提高单个成员的开发效率，并通过减少前后端沟通进而提高项目整体成员的开发效率。这一章主要讲述为什么要前后端分离的历史，为什么要前后端分离，如何做到前后端分离，以及前后端分离能够带来哪些好处。\n- 第二部分讲述模块化与组件化。高级语言有很多模块化的思想。比如高级语言中的类和实例，各种第三方库，前端的 web-components 等等。可以说模块化和组件化无处不在，那为什么还要花时间去讲述这些东西呢？记得大学时候学习 C\\#的时候老师讲过面向对象的四个基本特性是抽象，继承，封装和多态。其实面向对象正是软件开发早期对模块化和组件化的一种探索，是人类智慧的结晶。其实模块化和组件化是一种**将复杂系统分解为更好的可管理模块**的方式。这一章主要讲述模块化的发展，模块化在不同领域的表现，模块化给我们带来了什么，以及如何实现模块化。\n- 第三部分讲流程自动化。自动化的流程无疑可以减少人力成本，可以提高效率，降低失误率。自动化可以将人们从繁琐的无味的重复劳动中解脱出来。有人说程序员是懒惰的，因为它们经常编写一些可以减少日常工作的工具，从而达到”偷懒“ 的目的。这一章主要讲述流程自动化是一种什么样的感受，如何实现自动化，这一章主要分享我在实际工作中遇到的问题，以及自己在自动化方面作出的思考。\n- 第四部门主要讲述页面加载性能优化。 性能优化一直是一个非常古老，并且非常深奥的问题。说他古老是因为，我们的产品是让用户使用的，良好的用户体验是抓住用户内心的根本，因此性能优化方面，业界做了非常多的探索。说他非常深奥是因为没有任何一种优化手段可以 cover 全部， 这就需要你能够靠你的经验和眼界分辨现实情况，采取合适的优化方法和时机（不要过早优化）。这部分主要讲述 web 性能优化，从用户输入 URL 到页面加载出来，用户进行交互着手分析可以优化的点，并讲述如何发现**系统性能的短板。** 建立性能监控平台也是非常重要的一环，本章也会带你一步步拆解，讲述如何设计并开发一个性能监控平台。\n\n[第一章 前后端分离](https://github.com/azl397985856/automate-everything/blob/master/docs/chapter1.md)\n\n[第二章 模块化与组件化](https://github.com/azl397985856/automate-everything/blob/master/docs/chapter2.md)\n\n[第三章 流程自动化](https://github.com/azl397985856/automate-everything/blob/master/docs/chapter3.md)\n\n[第四章 页面加载性能优化](https://github.com/azl397985856/automate-everything/blob/master/docs/chapter4.md)\n\n[第五章 前端调试](https://github.com/azl397985856/automate-everything/blob/master/docs/chapter5.md)\n\n[第六章 到处都是测试](https://github.com/azl397985856/automate-everything/blob/master/docs/chapter6.md)\n\n[附录一 自动化小脚本](https://github.com/azl397985856/automate-everything/blob/master/docs/appendix1.md)\n\n[附录二 参考文献](https://github.com/azl397985856/automate-everything/blob/master/docs/appendix2.md)\n\n## 关注我\n\n我重新整理了下自己的公众号，并且我还给它换了一个名字`脑洞前端`，它是一个帮助你打开大前端新世界大门的钥匙 🔑，在这里你可以听到新奇的观点，看到一些技术尝新，还会收到系统性总结和思考。\n\n在这里我会尽量通过图的形式来阐述一些概念和逻辑，帮助大家快速理解，图解是我的目标。\n\n之后我的文章会同步到微信公众号 `脑洞前端` ，你可以关注获取最新的文章，并和我进行交流。\n\n另外你可以回复大前端进大前端微信交流群， 回复 leetcode 拉你进 leetcode 微信群，如果想加入 qq 群，请回复 qq。\n\n\u003cimg src=\"https://github.com/azl397985856/fe-interview/raw/master/docs/assets/imgs/gongzhonghao.jpeg\" width = \"50%\" height = \"50%\" alt=\"gongzhonghao\" align=center /\u003e\n\n大家也可以加我微信好友进行交流！\n\n![](https://tva1.sinaimg.cn/large/008i3skNly1gx11szd02ej30e80e8dg3.jpg)\n\n## 交流群\n\n现在还是初级阶段，需要大家的意见和反馈，为了减少沟通成本，我组建了交流群。大家可以扫码进入\n\n### QQ 群\n\n![qq-group-chat](https://github.com/azl397985856/fe-interview/raw/master/docs/assets/imgs/qq-group-chat.png)\n\n### 微信群\n\n\u003cimg src=\"https://github.com/azl397985856/fe-interview/raw/master/docs/assets/imgs/wechat-group-chat.jpeg\" width = \"50%\" height = \"50%\" alt=\"JavaScript\" align=center /\u003e\n\n(由于微信的限制，100个人以上只能邀请加入， 你可以添加我的机器人回复“大前端”拉你进群)\n\n## License\n\n[Apache-2.0](./LICENSE.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazl397985856%2Fautomate-everything","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazl397985856%2Fautomate-everything","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazl397985856%2Fautomate-everything/lists"}