"500行或更少"

"What I cannot create, I do not understand."

-- Richard Feynman

《500行或更少》--开源应用架构系列第四版的源码。

项目的目的在于给阅读者更广的视野,让阅读者理解软件设计者的想法。

项目地址: https://github.com/aosabook/500lines

这个项目里的每个文件夹基本都是一个独立的项目。试图用500行左右或者更少的代码完成某种特定的需求。在阅读时不应该过分关注某种语言的特性或某个算法的细节,而应该揣摩软件架构师们在设计软件时如何决定和权衡。

工程名称 作者 从属机构 简要描述 实现环境与语言 行数
blockcode Dethe Elza Mozilla 简单的可视化编程工具包 JS,Html,CSS 551
catechism Sarah Mei Sarah Mei 小型Ruby测试框架 Ruby 459
ci Malini Das Mozilla 简化的分布式持续集成系统 Posix,Python2.7+,Git 627
cluster Dustin J. Mitchell Mozilla 简单的复制状态机的实现,基于Paxos算法 Python 1254
crawler Guido van Rossum Dropbox 爬虫 Python 3.4, or 3.3 + asyncio 731
data-store Taavi Burns Points.com (DogBed DataBase)类BDB或SQLite的键值对存储 Python 778
flow-shop Christian Muise University of Melbourne 流水作业调度问题的基本实现 Python 423
functionalDB Yoav Rubin Microsoft 基于内存的nosql功能性数据库 Clojure 576
graph-layout Julia Evans   图表样式引擎,还没做    
image-filters Cate Huston   图片过滤器 Java1.6+ 846
modeller Erick Dransch Upverter 极小3D建模工具 Python 2.7,Unix 1083
objmodel Carl Friedrich Bolz   简单的面向对象的对象模型实现 Python 2.7 or 3.3 2292
ocr Marina Samuel Mozilla 图片识别 Python,html,js 394
pedometer Dessy Daskalov Nudge Rewards 计步器 Ruby 1417
rasterizer     把任意形状转换为光栅(就是矩形像素表) Python 685
sampler Jessica B. Hamrick UC Berkeley 抽样方法 Python 307
spreadsheet Audrey Tang g0v.tw, Socialtext, Apple 在线电子表格 JS(ES6),HTML5,CSS3,AngularJS 1265
TypeCheck Leah Hanson Google Julia语言的类型静态分析 Julia 590
template-engine Ned Batchelder edX 简单模板引擎 Python 574
torrent_client Kresten Krab Thorup Trifork 简单的torrent客户端 Erlang 1731
web-server Greg Wilson Mozilla 简单的web服务器 Python 954

注:行数统计只作为参考,和真实情况会有出入

500lines项目简介的更多相关文章

  1. 【转】GitHub 排名前 100 的安卓、iOS项目简介

    GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...

  2. 2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)

    排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者 ...

  3. 64.GitHub 排名前100的android项目简介

    GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...

  4. Android小项目练习之一 项目简介

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  5. apache基金会开源项目简介

    apache基金会开源项目简介   项目名称 描述 HTTP Server 互联网上首屈一指的HTTP服务器 Abdera Apache  Abdera项目的目标是建立一个功能完备,高效能的IETF ...

  6. Faces人脸识别项目简介

    Faces人脸识别 分为两个模块,Faces文件夹下存放人脸识别算法的代码,Web文件夹下存放网站搭建的代码 详情请查看各个模块下的readme文档 项目简介 核心算法 一款基于Dlib.opencv ...

  7. 前端开发工程师 - 06.Mini项目实战 - 项目简介

    第6章--Mini项目实战 项目简介 Mini项目简介-Ego社区开发 回顾: 页面制作 页面架构 JavaScript程序设计 DOM编程艺术 产品前端架构 实践课Mini项目--Ego: 主题:漫 ...

  8. OpenStack Magnum项目简介

    1 项目简介 Magnum是OpenStack中一个提供容器集群部署的服务. Magnum是一个Pass层的OpenStack项目. Magnum使用Heat部署一个包含Docker和Kubernet ...

  9. OpenStack Smaug项目简介

    1 项目简介 Smaug是一个OpenStack中提供应用数据保护服务的项目. 2 项目使命 在OpenStack中建立应用数据保护的标准和规范. 保护OpenStack中的任何资源以及资源的依赖项. ...

随机推荐

  1. Codeforces Round #172 (Div. 2)

    A. Word Capitalization 模拟. B. Nearest Fraction 枚举. C. Rectangle Puzzle 求出两个矩形的点,套简单多边形的面积交板子. D. Max ...

  2. lvs+keeplived笔录

    关于keeplived配置文件的详细描述如下 链接:http://blog.csdn.net/jibcy/article/details/7826158 实验环境: 主Keepalived 172.1 ...

  3. zend studio 配置 apache服务器事宜

    安装好 zend studio后,配置 apache服务器时,设置 configuration directory时,需选中 xampp\apache里面的 conf 文件夹,即完整的路径为: *\x ...

  4. 将.war文件解压到指定目录

    jar命令无法将.jar解压到指定目录,因为-C参数只在创建或更新包的时候可用 要将.jar文件解压到指定目录可以用unzip命令 unzip命令在windows下自带就有,不用另外下载安装 下面是将 ...

  5. intelliJ idea debug模式下启动慢的原因

    今天在idea上以debug方式启动项目的时候,特别慢,启动半天启动不起来,一直以为是数据库连接的原因,但重启mysql服务后也不好使,特别郁闷... 最后发现原来是之前调试的时候加的断点还在,导致启 ...

  6. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

  7. 浅入浅出EmguCv(二)EmguCv打开指定图片

    从这篇文章开始,会介绍一些通过EmguCv实现的一些简单的功能,这个内容的更新会跟我学习OpenCv的进度有关,最近在看一本关于OpenCv的书——<学习OpenCv>,主要例子还是通过这 ...

  8. C#获取json字符串指定的值

    Newtonsoft.Json在json和对象之间转化是一个非常强大的工具. 对象转化json字符串 Newtonsoft.Json.JsonConvert.SerializeObject() jso ...

  9. 【MySQL】悲观锁&乐观锁

    悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念.本文将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍. 悲观锁(Pessimistic Lock) 悲观锁的 ...

  10. sql sever笔记 日期时间

     SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置. SET DATEFORMAT 将覆盖 SET LANGUAGE 的隐式日期格式设置. 该设置仅用在将字符串转换为日期值 ...