#44 楼 @jean 没用过 Qt,但是听说不错。不过具体问题具体分析,
优点:跨平台,开源 缺点:我不熟悉,非 WindowsGUI 开发的主流技术
优点:主流开发技术,学习资料丰富,.net 功能当大。 缺点:非开源,基本不跨平台(无视 mono 的存在)
即能缩短开发周期, 又能得到后续强大的技术力量支持-MSDN, 还有一个世界上最好的 IDE-Visual Studio。
几个月后,写个 Python+QT 的开发实践总结, 分享一些你的学习和开发经历,以供后人学习。
通常情况下,产品经理主导模式比 工程师主导好的多。
忘记说了。seed 和 factory 我们都考虑过,但是,就我们的情况而言都不是最好的解决方案。
ruby 的语法并不要要求两格缩进,是程序员都好这口,且不仅仅是 ruby 程序员。
#32 楼 @aNdReW_Qx 我觉得这个的方法非常好
楼主如果想开发跨平台的应用,又想降低时间成本,最好的方案是,用 Rails+JQuery 开发 Web 应用。
楼主的问题撞到枪口上了,我用过多年的 VC Delphi C#.net, 我可以很负责的告诉你,就目前而言,开发 windows 桌面应用最好的选择是 C# + winform.net。 关于 VC,已经不能再用 VC 开发 windows 桌面应用程序啦,微软从 1999 起,就没再更新过 MFC。 关于 Delphi,已经结束了,无论他曾经是多么优秀的开发工具,那都是过去的事情啦。 此时此刻 Window 上的桌面应用开发的第一选择,绝对是 C# + winform.net。 如果让界面超级酷,并且不怕折磨自己的话可以玩玩 WPF。
#2 楼 @iwinux 通过阅读 ActionDispatch::Routing::Mapper::Resources
源码,的确可以知道 posts_path 是怎么定义的。但是时间成本颇高,而且这个解决方案不具备通用性,比如通过Mapper::Resources
源码你依然不知道 Customers.find_by_name 的函数体是如何实现的。
我的主要目的是 通过查看动态生成的函数的源码,更好的理解函数的使用。
这里所说的函数的源码,不是指生成动态函数的源码,而是指被动态生成的函数的源码,比如posts_path
的源码如下:
proc { |*args|
options = hash_for_posts_path(args.extract_options!)
if args.any? then
options[:_positional_args] = args
options[:_positional_keys] = [:format]
end
url_for(options)
}
#3 楼 @camel 谢谢你的建议,
不过,使用edit-method ApplicationController#posts_path
将定位到以下位置:
和Method#source_location
的效果是一样的,
估计pry
的edit-method
就是用Method#source_location
实现的。
~/.rvm/gems/ruby-1.9.3-p0@ab/gems/actionpack-3.2.1/lib/action_dispatch/routing
182 # Create a url helper allowing ordered parameters to be associated
183 # with corresponding dynamic segments, so you can do:
184 #
185 # foo_url(bar, baz, bang)
186 #
187 # Instead of:
188 #
189 # foo_url(:bar => bar, :baz => baz, :bang => bang)
190 #
191 # Also allow options hash, so you can do:
192 #
193 # foo_url(bar, baz, bang, :sort_by => 'baz')
194 #
195 def define_url_helper(route, name, kind, options)
196 selector = url_helper_name(name, kind)
197 hash_access_method = hash_access_name(name, kind)
198
199 @module.module_eval <<-END_EVAL, __FILE__, __LINE__ + 1
200 remove_possible_method :#{selector}
201 def #{selector}(*args)
202 url_for(#{hash_access_method}(*args))
203 end
204 END_EVAL
205 helpers << selector
206 end
这种效果实现了定位到有关代码,但是没有展示出动态代码的函数内容,
没有达到类似与Passtree
的效果。
coffee 不错
哦,这样子啊
对键盘要求不太高,反而对鼠标有点要求。
@post
是实例变量,
@post = Post.find(params[:id])
的确是@post赋值
ruby 有函数级的作用域。
关于 ruby 变量的用法的文章,google 一下一大把。
没理解 你最后的问题“比如更好的搭配视图?”
@camel 我非常想知道,在 ubuntuz 中,rubymine 使用时候的反映速度怎么样? 流畅吗?会不会一顿一顿的?
@lgn21st 建议关于这个问题,事后可以建立一个 wiki
7 楼 @camel 这个图太逼真了,我在显示器上按了半天。
active record 就是一个 ORM 的工具,与众不同的是,active records 是基于 ruby 语言的,ruby 语言有动态特性,可以动态的创建函数,所以,ruby 通过动态分析数据库结构,在运行期间创建你需要的 ORM 代码,而不用你自己手动编写代码实现 ORM 的绑定。
现在已经很少有人使用 RJS 啦
我们团队完全依赖 rvm 的 gemset, 我们的项目使用统一的 gemset 命名, 比如 rvm 1.9,3p0@awesome, 所以没有任何问题。 我不喜欢 bundle exec rake,不如 rake 简单。
关注!
puts "i like this"
#2 楼 @zhangjingqiang 有道理
曾经我也想过这个问题, 当时我是个 c++ 桌面应用的程序员, 和 web ruby 的世界丝毫不沾边, 当时如果我要做 ruby on rails 全职必须降薪才行, 因为不想降薪, 于是我就做了几年业余的, 积累了点经验, 两年前开始了 ruby on rails 全职生涯。
在 windows 上折腾, 没尽早使用 rvm, 没尽早使用 git