当前位置: 首页 > Web前端 > HTML

小型的编程项目有哪些值得推荐?这本神书写了 22 个,个个了不得

时间:2023-04-02 20:22:04 HTML

对于小型编程项目有哪些建议?这本书有22篇神作,个个都精彩绝伦。原文地址:https://mp.weixin.qq.com/s/Ob...今天猫哥给大家推荐一本非常有名的开源书籍:《500 Lines or Less》。在开始正题之前,先介绍一下它所属的系列。该系列名为AOSA,是“TheArchitectureofOpenSourceApplications”的缩写,即“开源程序的架构”。目前有四本书,本期主角是最新一本(2016.7.12发布)。本系列的初衷是:研究那些优秀的开源项目,从中吸取实践经验的精髓。前三本书的研究对象多达50个,其中不乏大名鼎鼎的Eclipse、Selenium、Git、matplotlib、nginx、Puppet、Pypy、SQLAlchemy和Twisted等,每一章的作者都是核心参与者在开源软件中,介绍项目是如何设计的,为什么要这样设计,主要有哪些组件,各个模块如何交互,在开发中有哪些突出的成就……这些书拆解了开源项目中的明星项目开源世界,通过阅读,你可以了解开源作者的思维方式,了解各种疑难问题的解决方案,学会使用现成的轮子。所谓见多识广,吸取经验,有望“站在巨人的肩膀上”。然而,这些书主要侧重于建筑和工程。项目代码量基本都在几万行,对于初级程序员来说实用性不够,理解透彻难度太大。针对这个问题,该系列的新书《500 Lines or Less》专注于500行代码以下的小项目。专注于您在编写代码时所做的设计决策和权衡:为什么要使用接口将应用程序分成不同的模块?为什么这里用继承,别处用封装?如何预测程序的扩展,如何方便其他程序员?简而言之,本书关注一些相对较小但具有代表性的主题,并用不到500行代码实现了它们。书中写了22个项目,一一介绍如下:1.Blockcode:Avisualprogrammingtoolkit(可视化编程工具包)使用语言:HTML,CSS,JavaScript本项目基于开源Waterbear工具,提供可视化操作界面。并以直观的交互方式实现图形化编程。2.AContinuousIntegrationSystem(持续集成系统)语言:Python2CI是软件开发中重要的持续集成系统,保证了新功能的稳定实现。这个项目介绍了CI系统是如何工作的,并尝试构建你自己的CI系统,实现监听器、测试调度器和测试运行器。3.ClusteringbyConsensus(分布式系统)语言:Python探索如何实现可靠分布式计算的网络协议。为了解决共识问题,使用了Paxos算法的衍生物Multi-Paxos。通过研究这个项目,你可以接触到很多分布式的知识。4.然:AFullyDynamicBuildSystem(动态构建系统)语言:Python构建系统(buildsystem)用于将源代码生成为用户可用的目标(如库、可执行文件、脚本等),以及常见的有GNUMake、CMake、ApacheAnt等。Python中的PyInstaller也是一种构建系统。该项目实现了一个构建系统,并试图提出解决“动态交叉引用”问题的方法。5.AWebCrawlerWithasyncioCoroutines(使用协程实现的爬虫)语言:Python的作者之一是Python之父(GuidovanRossum),他使用标准库asyncio来实现异步网络爬虫。(学习爬虫的必读)6.Dagoba:anin-memorygraphdatabase(内存中的图数据库)使用语言:JavaScript图数据库是NoSQL数据库的一种,利用图论来存储实体之间的关系。本项目介绍图数据库要解决的几个问题,然后实现。7、DBDB:DogBedDatabase(狗床数据库)语言:Python用Python实现一个简单的键值对存储数据库(key/valuedatabase),其特点是即使电脑死机或程序跑路也能保证数据安全错误的。安全。通过学习本项目,您可以掌握数据库的一些核心特性,如原子性、一致性、隔离性和持久性。8.AnEvent-DrivenWebFramework(事件驱动的Web框架)语言:CommonLisp构建一个事件驱动的Web框架,使用HTTP作为通信协议。9.AFlowShopScheduler(流水车间调度器)语言:Python2流水车间调度问题是一类寻找最优解的问题。本项目实现了基于局部搜索方法的流水车间调度器。10.AnArchaeology-InspiredDatabase(考古学启发数据库)语言:Clojure的主流数据库是面向地方编程(place-orientedprogramming),即在更新数据时,新数据会占据旧数据的空间。这个项目开辟了一个脑洞,从考古学家的角度设计了数据库,记录了数据的所有变化,更新数据的时候没有删除旧数据。最终的实现代码只有360行,作者称这个数据库为CircleDB。11.制作您自己的图像过滤器语言:JavaProcessing是一个用Java构建的开发环境。本项目介绍了它的特点和配置,最终实现了自己的滤镜APP。功能比较简单,但是实现过程涉及到很多图像处理。12.APythonInterpreterWritteninPython(Python解释器)语言:Python与CPython解释器有相似的结构,作者将其命名为Byterun。解释器的工作原理在文章中有详细的解释,跟着读起来会很有帮助。13.A3DModeller(3D建模)语言:Python3D图形编程,使用OpenGL渲染图形。14.ASimpleObjectModel(对象模型)语言:Python当今最主流的编程范式仍然是面向对象编程,其核心是对象模型。编写一些简单的对象模型可以让你更好地理解现有语言的内部工作原理,以及洞察面向对象语言的设计哲学。15.OpticalCharacterRecognition(光学字符识别,opticalcharacterrecognition)语言:Python,JavaScript,HTML设计了一个基于人工神经网络(ANNs)的简单OCR系统,以及一个web客户端。16.LanguageusedinAPedometerintheRealWorld:Ruby计步器的设计依据是什么,如何在现实世界中实现?本文回答了这个问题,同时也设计了一个友好的网页界面。17.同源策略(Same-OriginPolicy)语言:Alloy同源策略(SOP)是当今浏览器中安全机制的重要组成部分,用于控制浏览器中脚本之间的通信。在本文中,Alloy是一种用于建模和分析软件设计的语言,用于构建可执行的SOP模型。18.ARejectionSampler(采样器)语言:Python“采样”指的是从一些概率分布中生成随机数。本文介绍如何从非标准概率分布中抽样,以及如何计算样本在分布中对应的值。可能性。19、WebSpreadsheet(Web电子表格)语言:HTML、CSS、JSSpreadsheet是办公软件必备,我们最熟悉的就是MicrosoftExcel。本文使用AngularJS框架实现了一个简单的Web电子表格,只有99行代码。效果可以在这里查看:https://audreyt.github.io/500lines/spreadsheet20,StaticAnalysis(静态分析)使用的语言:Julia“静态分析”是指在不运行代码的情况下检查代码(类型,格式),编码标准等),这项工作通常由各种IDE编辑器来完成。本项目使用Julia实现了一些基本的静态分析功能。21.ATemplateEngine(模板引擎)语言:Python“模板引擎”是Web开发中非常重要的一个东西。它支持用户界面和实际业务数据的分离,可以通过它生成标准的HTML文档。本文使用的模板引擎语法基于Django,总代码量仅为262行。22.ASimpleWebServer(Web服务器)使用语言:Python和HTML实现一个简单的Web服务器,主要使用标准库中的BaseHTTPServer。此外,它还引入了CGI(CommonGatewayInterface)协议,使服务器能够运行外部程序。所有项目介绍。可以看出,22个项目中有13个使用了Python,占比60%。难怪网上有些不明真相的同学称它为“一本Python书”。有些项目乍一看,你很难想象不到500行代码就可以实现,但经过必要的问题剪裁,并使用合适的现成轮子(开源库、工具、框架等),可以得到简单的结果。相比之下,不要认为500行以下的项目很容易。每个项目的作者都有很多背景(连Python之父都亲身参战过),文中写的技术背景、实现原理、设计思路都值得仔细研究(很多不一定可以理解)。本书是开源的,可以在官网免费阅读。还自带Github仓库,里面存放了完整的项目代码,目前已经获得超过20000个star。Github上有它的中文翻译计划,但是翻译者很少,只翻译了十几篇,翻译质量不敢恭维。不管怎么说,如此优质有诚意的开源书籍,强烈推荐!也很适合作为我们Python猫推荐系列的第八期。最后,附上本书的开篇寄语:我们希望本书作者的经历能帮助你在自己的编程实践中走出舒适区。我们希望本书作者的经验可以帮助您进行自己的编程实践。在编程实践中成长。相关链接:本书官网:http://aosabook.org/en/index.htmlGithub英文版:https://github.com/aosabook/500linesGithub中版:https://github.com/HT524/500LineorLess_CN回顾往期推荐books:Phase1:《编写高质量代码改善 Python 程序的 91 个建议》Phase2:《Python最佳实践指南》Phase3:《黑客与画家》Phase4:《Python源码剖析》Phase5:《Python高性能编程》Phase6:《深度学习》Phase7:一次性收藏40本Python入门书籍公众号【Python猫】,本号连载系列精品文章,包括猫哲学系列、Python进阶系列、好书推荐系列、技术写作、优质英文推荐与翻译等,欢迎关注。