为了学习目的,在Erlang中要解决哪些有趣的项目?

Ste*_*idt 27 concurrency erlang distributed

我最近发现了Erlang,现在我正在通过几个教程.到现在为止,我很期待将某些东西作为一个爱好项目来实现.我对另一个聊天服务器并不感兴趣.我想编写更有趣的东西(是的,我知道这是一个相当模糊的术语),这也是可以管理的,所以我可以在业余时间完成它.

有什么建议?

编辑:项目应该优先突出Erlang的优势(并发,分布式).

小智 19

  1. 构建一个分布式系统,实时搜索Twitter提要,并允许任何人从Web前端执行搜索.

  2. 构建分布式文件系统.实现分布式B*树或B +树作为此文件系统的基础.在erlang中做.

  3. 在步骤2中构建的分布式文件系统之上构建分布式键值存储.

  4. 在密钥值存储之上构建分布式Web索引(由分布式Web搜索引擎使用).

  5. 构建分布式链接器.高级构建自动化为分布式构建和/或分布式处理提供远程代理处理.

  6. 构建一个MMORPG后端,依赖于游戏/玩家状态的分布式存储和用户请求的分布式处理.


Cha*_*tin 14

对于自己的东西,考虑编写一个简单的服务器; 例如,服务日期/时间请求或者 - 有点发烧友 - 一种仅为静态内容提供服务的HTTP守护进程.

Erlang最好的部分是它处理并发的方式; 锻炼那个.

  • 那是我正在寻找的那种项目.突出Erlang强度(并发,分布式)的东西. (2认同)
  • Joe Armstrong的"编程Erlang"包括如何编程这些服务器的示例.强烈推荐.http://pragprog.com/book/jaerlang/programming-erlang (2认同)

Dav*_*ant 10

项目欧拉,当然.

  • 当然,它们是很好的问题,但你可以用任何语言解决它们,而且大多数都比Erlang更适合.对于Erlang,你想要的是需要/利用分布式解决方案的问题,因为这是Erlang的优势所在.AFAIK,Euler项目并非[必然]. (11认同)

arc*_*lus 10

我丰富的待办事项列表中的一些内容既是良好的学习练习,也有助于整个erlang社区:

  • 描述所有可用的Key/Value商店:

    • 编写一个库,用于测试各种K/V存储的插入,查找,删除,搜索时间
    • 创建人们可以运行的基准测试套件
    • 使它与ets,dets,proplists,gb_trees,dict,orddict,redblack trees,bdb,tokyocabinet,...
    • 制作漂亮的图表
    • 让您可以轻松更新,贡献并运行任何人的计算机
  • 编写一个使用命名参数的新io_lib:format例程:

    • io_lib:nformat("你好〜{name} s~n.",[{name,"Bob"}]).
    • 如果格式字符串的语言发生变化时参数的位置发生变化,这对国际化非常有用.
  • 扩展erl -make(make.erl)

    • 允许添加代码路径(这样您就不需要执行erl -pa LibraryPath -make)
    • 在实现这些行为的模块之前编译/加载行为模块
    • 正确处理分层模块(特别是输出路径)


Wil*_*del 7

这并不完全回答你的问题,但是如果你正在寻找一个用Erlang编写的有趣的免费开源项目,你一定要查看CouchDB.来自网站:

Apache CouchDB是一个分布式,容错且无架构的面向文档的数据库,可通过RESTful HTTP/JSON API访问.除了其他功能之外,它还提供了具有双向冲突检测和解析功能的强大的增量复制,并且可以使用面向表的视图引擎进行查询和索引,其中JavaScript充当默认视图定义语言.

CouchDB是用Erlang编写的,但可以从提供HTTP请求的任何环境轻松访问.有许多第三方客户端库可以使各种编程语言和环境更加容易.

CouchDB的网站有更多的细节.快乐的编码!