"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. swift开源项目精选

    Swift 开源项目精选-v1.0 2016-03-07 22:11 542人阅读 评论(0) 收藏 举报  分类: iOS(55)   Swift(4)    目录(?)[+]   转自 http: ...

  2. java通过反射取得一个类的完整结构

    首先我们在person包中新建一个Person.java: package person; import sex.Sex; public class Person{ private String na ...

  3. Web性能测试的简介

    一.术语 1.并发用户:并发一般分两种.1)严格意义上的并发,即所有的用户在同一时刻做同一件事情或操作,这种操作一般指做同一类型的业务:2)广义范围的并发,与前者主要区别,尽管多个用户对系统发出了请求 ...

  4. 激!GSS系列

    #include <cstdio> ; ; inline int max(int, int); inline int getint(); inline void putint(int); ...

  5. 终极解决maya渲染层丢材质,变线框等问题

    终极解决maya渲染层丢材质,变线框等问题 相信有很多同志在使用maya做灯光渲染的时候,经常能遇到渲染层的模型丢材质.变线框等问题,特别恶心.我也经常遇到,所以和大家分享一下我的解决或尽量避免的方法 ...

  6. el表达式无法获取springmvc的model封装好的数据之解决方法

    近日碰到奇怪的问题,应该挺好解决的,可是就是卡住我两天 下面我来描述一下问题 用的是springmvc,自然需要controller,假设我现在所有的配置都是对的. controller代码 @Req ...

  7. linux修改mysql密码

    以root为列. 查看文件安装路径whereis mysql   查询运行文件所在路径(文件夹地址) which mysql /usr/bin/mysqld_safe: line 178: 5930 ...

  8. HelloWorld[Java]

    public class HelloWorld{ public static void main(String args[]){ System.out.println("HelloWorld ...

  9. linux 删除进程的多种方法

    kill pid kill -9 pid kill -15 pid pkill -f *.php kill -s 9 pid

  10. [转]PHP Session的一个警告

    警告全文如下: PHP Warning: Unknown: Your script possibly relies on a session side-effect which existed unt ...