- 浏览: 336128 次
- 性别:
- 来自: 北京
文章列表
Why ERD
数据库模型是你的应用的核心,描述数据表、数据类型、实体关系和约束,是项目开发阶段最重要的沟通手段。清晰的ERD可以便于团队理解需求,掌握应用的全貌。
应用场景
初创项目
对于初创项目或者新的需求,能 ...
HTTP Link From HTTP Page: http://o84x25gr9.bkt.clouddn.com/a.html
HTTPS Link From HTTP Page: https://o8508s1y5.qnssl.com/a.html
在微薄上看到这样一篇文章竟然被转发近上千次了,并且还是好评如潮............
http://blog.csdn.net/m13666368773/article/details/7177128
上面那篇文章写的根本不在点上呀,实在看不下去了:
引用第一,你这个查询列车信息的querySingleAction.do,能不能不要把这些HTML也传过来呀。你用JS写能死么。
理论上传JSON占用的宽带最少,其实传HTML还是传JSON在服务器端开启gzip压缩的情况下差别不大呀,传HTML比JSON方便多了...........
所以,本质问题不在于传输什么,而在于没有开启压缩..
...
Ruby在很多方面是一个更优雅的Perl,从Perl社区继承了很多文化。其中之一就是:以verbose warning模式运行Ruby。
Ruby是一个非常宽松的语言,她运行你访问一个未定义的实例变量,允许你动态对原有的类的方法进行增删改查操作,甚至允许你给一个常量重新赋值…
但这仅仅是允许,并不代表Ruby支持你这样做。
以warning模式运行你的程序,这样就可以为你发现一些不小心而犯的错误,比如拼写错误和无意的覆盖了别人的方法。
不幸的是,默认情况warning模式是关闭的,你可以在运行Ruby时加上-w参数来开启。
如果你你的代码有一些洁癖,每次运行程序开启warning模式, ...
Active Record 提供 find_each来分批处理大量数据. 但是,当数据量在百万级别或是更多的时候find_each也会变得很慢。
采用像Resque这样的异步处理插件是一个不错的选择:
User.find_each {|user| Resque.enqueue(MyJob, user) }
但是用Resque有时候又有点杀鸡用牛刀的嫌疑,使用forking!
if GC.respond_to?(:copy_on_write_friendly=)
GC.copy_on_write_friendly = true
end
jobs_per_process ...
Draper是一个Ruby gem,它让Rails model方便的应用Decorator模式,解决了传统Rails的两个问题:
传统Rails Helper一点也不OO,它更像过程式的代码
Decorator给model对象添加显示相关的职责,比如,你有一个Article对象,Decorator会重载published_at方法,以格式化后的形式输出给view:
class ArticleDecorator < ApplicationDecorator
decorates :article
def published_at
date = h.conten ...
最近看了一些Erlang,模式匹配是个好东西,简单的sum函数:
sum([]) -> 0;
sum([First|Rest]) -> First + sum(Rest).
突然想起来,其实Ruby里面也可以用模式匹配:
def sum(list)
return 0 if list.empty?
first, *rest = *list
return first + sum(rest)
end
尾递归版本:
def sum(list)
sum_acc(list, 0)
end
def sum_acc(list, s)
...
普通情况下ruby调用系统命令行的过程是堵塞的,无论是用system还是``或是exec。
system命令会在命令执行成功后返回true,失败返回nil
不过如果system调用的命令以&结尾,ruby进程不会被阻塞,不管前面的命令是否执行成功都会立即返回true。
所以,史上最轻量级的ruby后台任务诞生了:
system('echo "Hello" > ./system.log && sleep 5 && echo "Hooopo" > ./system.log 2>&1 & ...
Identity Map是Rails3.1的又一个新特性。
一、什么是Identity Map
引用Identity Map is a design pattern that:
Ensures that each object gets loaded only once by keeping every loaded object in a map. Looks up objects using the map when referring to them.
http://www.martinfowler.com/eaaCatal ...
地址:https://github.com/hooopo/websocket_sinatra_demo
用sinatra在写简单的web demo还是很方便呀
ominioauth太强大了,有这样一个插件可以减少很多重复的轮子了。
先挖个坑,慢慢修改~
method_missing是ruby里面一个非常cool的hook。rails里面很多特性都是基于method missing实现的。
但是method missing也不是那么完美。各种rails性能优化的文章都建议避免使用method missing,原因很简单,method missing的实现机制确实会是增加call ruby stack次数。
使用method missing + define method,调用一次method missing后动态定义方法来减少call ruby stack次数。
class A
def method_missing(method_id ...
像微薄里面用户输入一个@会从服务器取出匹配的用户login name什么的。这种场景用前缀树比较节省空间并且效率高。fast trie——A super fast, efficiently stored Trie for Ruby。据作者说速度是灰常的快。。
地址:https://github.com/tyler/trie
gem in ...
工具:imagemagick + tesseract-ocr
Tesseract-ocr据说辨识程度是世界排名第三,可谓神器啊。
准备工作:
1.安装tesseract-ocr
sudo apt-get install tesseract
2.安装imagemagick
sudo apt-get install imagemagick
3.安装rmagick
sudo apt-get remove --purge librmagick-ruby-doc librmagick-ruby1.8
sudo apt-get install libmagick9-dev ruby1 ...
via:http://firecacada.blog.163.com/blog/static/7074376201122703045807/
很长时间以来,我一直在观察某类行为,最近取了个名字叫“排泄型互动”。
排泄分三级。最重的一级当然是辱骂与下流的留言;次一级是理直气壮的弱智言论,比如抵制家 ...