- 浏览: 52082 次
文章列表
Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或者叫召唤兽。
并发系统常使用reactor模式,代替常用的多线程的处理方式,节省系统的资源,提高系统的吞吐量。
先用比较直观的方式来介绍一下这种方式的优点,通过和常用的多线程方式比较一下,可能更好理解。
以一个餐饮为例,每一个人来就餐就是一个事件,他会先看一下菜单,然后点餐。就像一个网站会有很多的请求,要求服务器做一些事情。处理这些就餐事件的就需要我们的服务人员了。
...
Step1
gem 'rack-mini-profiler'
Step2
测量某一段代码
Rack::MiniProfiler.step("User Auth") do
@users = User.all
end
Reference:
http://railscasts.com/episodes/368-miniprofiler
http://samsaffron.com/archive/2012/07/12/miniprofiler-ruby-edition
#count方法总是会产生count(*)的SQL语句去查询数据库,而#length方法总是取查询出的集合的个数,它总是不会产生count(*)的查询,#size方法就比较好了,如果目标集合还没有取出来,它会像#count方法一样,产生count(*)的查询,如果记录已经取出来了,它就像#length方法一样,直接读取集合的个数了。
source:http://qichunren.iteye.com/blog/208002
ruby $: 含义
- 博客分类:
- Ruby
http://kenbeit.com/posts/98/ruby小技巧之$:
一直能看到一些gem里面会有这样一句代码:
Tell, don't ask 原则
- 博客分类:
- Ruby
Tell, don't ask 原则 Source: http://www.aqee.net/tell-dont-ask/
前些时间我曾经翻译过一篇叫做《这里我说了算!》的文章,里面作者讲述了关于“命令,不要去询问(Tell, Don’t Ask)”原则:
我看到的最多被违反的原则是“命令,不要去询问(Tell, Don’t Ask)”原则。这个原则讲的是,一个对象应该命令其它对象该做什么,而不是去查询其它对象的状态来决定做什么(查询其它对象的状态来决定做什么也被称作‘功能嫉妒(Feature Envy)’)。
这篇文章里有个很生动的例子,我至今记忆犹新:
...
总结:
1 数据库需要Validation,也就是给migration添加(t.integer "user_id", :null =>false),以保证即使在代码有错误的情况下,数据库也不被污染
2 写面向对象的程序,而不仅仅是面向MVC的程序
3 使用Content_tag helper method,让html更加干净
4 使用 find_each 代替 each [find_each uses find_in_batches to pull in 1000 records at a time, dramatically lowering th ...
Tableview 数据异步加载
- 博客分类:
- iOS
1 LazyTableImages
2 http://nsscreencast.com/episodes/6-afnetworking
AFNetworking 中的方法:
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];
3 异步网络请求
- (void)fetchForKeyword: ...
- (void)importcsvintoCoreData
{
//注意:文本内容需为UTF-8格式
//获取文件路径和文件内容
NSString *filePath = [[NSBundlemainBundle] pathForResource:@"Data"ofType:@"csv"];
NSLog( @"filePath: %@", filePath );
NSString* Data = [NSStringstringWithContentsOfFile:file ...
Crontab的使用方法
- 博客分类:
- Linux
3种方式
1 crobtab -e 当前用户环境下运行的cron
2 sudo vi /etc/crontab 在系统环境下运行的cron,所有用户都可以使用
3 /etc/cron.d/ 将文件放在该目录下,系统则会自动运行
利用系统crontab来定时执行备份文件,按日期对备 ...
shell之“>/dev/null 2>&1”
- 博客分类:
- shell
http://ppp1013.blog.51cto.com/927700/271043
今天在自己的一个技术群中又被问道了这么一个问题,于是又通俗的解释了一下,做个记录,大家看看解释是否清楚!
shell中可能经常能看到:>/dev/null 2>&1
命令的结果可以通过%>的形式来定义输出
分解这个组合:“>/dev/null 2>&1” 为五部分。
1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt2:/dev/null 代表空设备文件3:2> 表示stderr标 ...
Rails form text_field
- 博客分类:
- Ruby
<%= f.text_field :email , :value => session[:user_email], :readonly => true %>
可在params中传递email
<%= f.text_field :email , :value => session[:user_email], :disabled=>true %>
不可在params中传递email
来源:http://blog.sina.com.cn/s/blog_796ffec50100y5ac.html
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 100, 100)];
CATiledLayer *tiled=(CATiledLayer *)[view layer];
tiled.borderColor = [UIColor whiteColor].CGColor;
tiled.borderWidth = 3.0;
tiled.shouldRa ...
http://stackoverflow.com/questions/6813270/uiscrollview-custom-paging-size
http://stackoverflow.com/questions/1220354/uiscrollview-horizontal-paging-like-mobile-safari-tabs/1373096#1373096
Start with ios http://www.appcoda.com/ios-programming-course/
Tableview中插入一行:
http://blog.csdn.net/zhangkongzhongyun/article/details/7937062 在UITableView中动态的插入或删除行(或者节)
处理相机相片自动旋转问题
http://stackoverflow.com/questions/5427656/ios-uiimagepickercontroller-result-image-orientation-after- ...