No Magic Guideline

Sun 30 September 2012
By KJ

In python.

NoMagic 是一套基于 MySQL 的数据库设计规范+代码库

参考了大神 Bret Tyalor 的文章 backchannel.org/blog/friendfeed-schemaless-mysql, 实现的也非常简单粗暴: 全部都是函数, 非常易于阅读.

简单的讲一些特点:

  • NoMagic 涉及数据的存储和索引, 不涉及冗余. 通俗的说, MySQL 的热备份还是要自己做.
  • NoMagic 不涉及数据的计算, 愿意用粗暴的方法得到结果, 还是习惯用 MapReduce 提高性能, 是你自己的选择.
  • NoMagic 的非核心函数库, 提供了一些常规应用的快速bootstrap. 比如在数据库里创建个用户, 修改个密码, 还有SNS的一些功能比如like, comment之类的, 只是为了帮助大家减少重新发明轮子的行为.
  • NoMagic 鼓励大家阅读代码, fork代码, 修改代码, 扩展代码. 就如起名叫NoMagic, 这个框架没有魔术, 只是帮助大家在创建一个网站的时候, 能够面向未来做好可扩展的准备, 同时也不用在写代码的第一天就给自己的电脑上安装一大堆 mongodb + redis + memcached 这样的服务. Python + MySQL应付早期已经足够, 不要过度优化.

我曾经不想以 "大数据框架" 来定义 NoMagic, 但是鉴于整个市场对于大数据的吹捧, 当我尝试用另外一个谦虚的名字来解释 NoMagic 的时候, 人们往往会浪费太多时间问不必要的问题. 于是为了理清思路:

  • NoMagic 能不能用于大数据处理? YES.
  • NoMagic 是不是处理大数据的最优方法? UNKNOWN.
  • NoMagic 是否涉及大数据计算? NO.
  • NoMagic 是不是大数据框架? ALMOST.

blogroll

social