【发布时间】:2010-09-27 20:36:24
【问题描述】:
我最近发现了 Erlang,现在正在学习一些教程。到目前为止,我期待着将一些东西作为一个爱好项目来实际实施。我对另一个聊天服务器并不感兴趣。我想编写一些更有趣的代码(是的,我知道这是一个相当模糊的术语),这也是易于管理的,所以我可以在业余时间完成它。
有什么建议吗?
编辑:该项目最好突出 Erlang 的优势(并发性、分布式)。
【问题讨论】:
标签: erlang distributed concurrency
我最近发现了 Erlang,现在正在学习一些教程。到目前为止,我期待着将一些东西作为一个爱好项目来实际实施。我对另一个聊天服务器并不感兴趣。我想编写一些更有趣的代码(是的,我知道这是一个相当模糊的术语),这也是易于管理的,所以我可以在业余时间完成它。
有什么建议吗?
编辑:该项目最好突出 Erlang 的优势(并发性、分布式)。
【问题讨论】:
标签: erlang distributed concurrency
构建一个分布式系统,实时搜索 Twitter 提要并允许任何人从 Web 前端执行搜索。
构建分布式文件系统。实现分布式 B*Trees 或 B+Trees 作为此文件系统的基础。用 erlang 做。
在步骤 2 中构建的分布式文件系统之上构建分布式键值存储。
在键值存储之上构建分布式网络索引(供分布式网络搜索引擎使用)。
构建分布式链接器。高级构建自动化为distributed builds 和/或分布式处理提供远程代理处理。
构建一个 MMORPG 后端,该后端依赖于游戏/玩家状态的分布式存储和用户请求的分布式处理。
【讨论】:
对于自己的东西,考虑编写一个简单的服务器;例如,服务日期/时间请求的东西,或者 - 有点花哨 - 只提供静态内容的 HTTP 守护程序。
Erlang 最好的部分是它处理并发的方式;锻炼一下。
【讨论】:
找到你理解和喜欢的 erlang 没有的东西。我用 etap https://github.com/ngerakines/etap/ 做到了,现在 nick 已经接管了管理,它在 EA 游戏内部使用。制作它很有趣,就像以前的海报一样,它是真实的,所以我学会了解决现实世界的问题。
【讨论】:
文件索引/搜索系统。这将通过介绍项目进行,但我已经切换到其他内容。
一旦你得到它的工作,你可以将索引移动到 mnesia,然后将东西分散到其他节点上,以获得一个完整的网络索引。
【讨论】:
我丰富的 ToDo 列表中的一些东西既是很好的学习练习,又对整个 erlang 社区有帮助:
分析所有可用的键/值存储:
编写一个使用命名参数的新 io_lib:format 例程:
扩展 erl -make (make.erl)
【讨论】:
Project Euler,当然。
【讨论】:
这并不能完全回答您的问题,但是如果您正在寻找一个有趣的、用 Erlang 编写的免费开源项目,那么您绝对应该查看 CouchDB。来自网站:
Apache CouchDB 是一个分布式的, 容错和无模式 可访问的面向文档的数据库 通过 RESTful HTTP/JSON API。之中 其他功能,它提供了强大的, 增量复制 双向冲突检测和 分辨率,并且是可查询的 使用面向表的视图可索引 以 JavaScript 为引擎的 默认视图定义语言。
CouchDB 是用 Erlang 编写的,但可以 可以很容易地从任何 提供手段的环境 发出 HTTP 请求。有一个 众多第三方客户端 使这变得更容易的库 适用于多种编程语言 和环境。
CouchDB website 有更多详细信息。编码愉快!
【讨论】: