500lines项目简介
"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 | 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项目简介的更多相关文章
- 【转】GitHub 排名前 100 的安卓、iOS项目简介
GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...
- 2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)
排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者 ...
- 64.GitHub 排名前100的android项目简介
GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...
- Android小项目练习之一 项目简介
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- apache基金会开源项目简介
apache基金会开源项目简介 项目名称 描述 HTTP Server 互联网上首屈一指的HTTP服务器 Abdera Apache Abdera项目的目标是建立一个功能完备,高效能的IETF ...
- Faces人脸识别项目简介
Faces人脸识别 分为两个模块,Faces文件夹下存放人脸识别算法的代码,Web文件夹下存放网站搭建的代码 详情请查看各个模块下的readme文档 项目简介 核心算法 一款基于Dlib.opencv ...
- 前端开发工程师 - 06.Mini项目实战 - 项目简介
第6章--Mini项目实战 项目简介 Mini项目简介-Ego社区开发 回顾: 页面制作 页面架构 JavaScript程序设计 DOM编程艺术 产品前端架构 实践课Mini项目--Ego: 主题:漫 ...
- OpenStack Magnum项目简介
1 项目简介 Magnum是OpenStack中一个提供容器集群部署的服务. Magnum是一个Pass层的OpenStack项目. Magnum使用Heat部署一个包含Docker和Kubernet ...
- OpenStack Smaug项目简介
1 项目简介 Smaug是一个OpenStack中提供应用数据保护服务的项目. 2 项目使命 在OpenStack中建立应用数据保护的标准和规范. 保护OpenStack中的任何资源以及资源的依赖项. ...
随机推荐
- [NOIP2013] 火柴排队(归并排序)
题目描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为: ∑(ai-bi)^2 其中 ai 表示 ...
- 常用的shell命令
作为一名有10年以上使用年龄的Linux/MacOSX用户来说,键盘的作用往往要远大于鼠标.而且,作为一个黑客文化的追随者,我也希望越来越多的用户能认识到命令行的潜在价值,不要把它视为只是计算机专家们 ...
- matchesSelector 匹配选择器表达式sizzle的实现
Sizzle.matchesSelector = function( node, expr ) { return Sizzle( expr, null, null, [node] ).leng ...
- 怎样用vs 2008 编译C程序
在大学里都习惯了vc6.0,但是它的集成度并不好,刚试着用vs2008,简单说一下用vs2008编译c的方法吧 首先,在file中新建工程project ,确定之后,会出现新工程(new projec ...
- 如何搭建 node,react 开发环境
项目相关内容:Sublime + Node + React --注意:在 windows 操作系统中,如果把 node 安装在系统盘(一般是C盘),会导致 node 没有操作文件的权限的问题,如无法新 ...
- 如何在一个网站或者页面写js
如何在一个网站或者页面写js: 1. JS的分层(功能):jquery(tools) 组件(ui) 应用(app).mvc(backboneJS) 2. JS的规划(管理):避免全局变量和方法(命 ...
- 关于电信cdma基站nid,sid,bid的解释
通过cdma的基站代码确定该基站的经纬度位置,必须知道Sid.Nid.Bid这三个基站数据,缺一不可. SID 是系统识别码,每个地级市只有一个sid,是唯一的. NID是网络识别码,由各本地网管理, ...
- windows系统下在dos命令行kill掉被占用的pid (转)
原文出自:http://www.2cto.com/os/201304/203771.html windows系统下在dos命令行kill掉被占用的pid 1.开始-->运行-->c ...
- Xcode 各个版本下载地址
从Xcode8开始不支持uiautomation了,需要下载老版本的xcode Xcode 的各种版本的下载地址 https://developer.apple.com/download/more/
- selenium浏览器操作
在元素定位中xpath使用的还算比较多,介绍一下常见的firfox和chrome浏览器插件安装 一.浏览器定位工具安装 1.firfox firfox比较简单,主要浏览器自带的定位功能也比较强大国内也 ...