#21 楼 @happypeter 谢谢反馈意见。我想是因为页面布局没有做好,我们开始的时候想试试 Liquid Layout 但感觉并不是很理想,准备换成 Responsive 的。看起来页面就没那么空了。
#19 楼 @happypeter 欢迎欢迎!
你的付费已经处理好了。我们的付费过程用的是 Stripe, 我认为是所有现在 payment gateway 里面做的最好的。有什么觉得不太对的么?
还有,确认 email 收到了吧?
#17 楼 @happypeter 太客气了,我也是想认识些国内的同行,有机会合作就最好了,可以多交流。认识国内作开发的不多,以前在北京见过几个做 Ruby 的,但好像都不在这儿。
怎么是亲和力?这个是给机器读得,不是给人读得
不玩大菠萝 省下的钱可以直接买 iMac 了!省下的时间可以 xxx 了!
话说我也是大菠萝上线第一天就买的,然后一下冲到了 Inferno。钱倒是小事,回头想想这时间还真不如做别的事情了
正在打算做一个能站着工作的桌子 社区里有人做过么
感谢分享,加油!
说来有趣,说到融合进一些函数式的东西来做 Ruby,今天就有人博客了这个
http://weblog.therealadam.com/2012/09/10/designing-for-concurrency/
首先要看你学技术的动机是什么?是从学习中本身得到快乐,还是技术只是你能进行创造的手段?你是对成为顶级程序员/技术高手无比向往,还是希望来学会技术作项目,创业?
如果你对技术本身非常热爱,那么建议好好搭好基础,多读一些经典的文献。很多看上去是新的技术,其实都早就存在了。大的看比如 Erlang, Prolog 这些早就出现了,Lisp 更是历史久远的不行,只是近期 Internet,并行计算和 big data 兴起让 Erlang, Prolog 这些技术再次受关注。小的看 Web 和 Rails 社区近期的变化 - 客户端到服务器到客户端,J2EE 到 Rails 的精简框架到 Object Design 再次受关注,都已经在软件历史上来来回回几次了。如果你去读些老文献,会发现我们只不过在从新解决前人解决过的问题而已
如果你的目的是创找和创业,那么答案更简单,立刻开始搭建你的产品。精通 能让你快速开发的工具,速度决定一切因为你的前十个产品估计九个或更多会失败的。迅速找到有前景的项目压倒一切。一旦市场被证明而你的应用开始成长,你自然会面对一个一个的技术挑战,那时候在有的放矢会提升更快,或者扔钱砸向技术狂。硅谷的互联网小公司里面十有八九个是 Ruby/Rails, 就是这个原因。
#59 楼 @poshboytl 这个用的怎么样
不矛盾。编程模式比语言重要。我不一定要改变语言来改变编程模式,Ruby, C, Java 甚至 BASIC 都可以做函数式的编程,只是越新的语言越是鼓励这一点。
作者确实说的很好,语言是很重要。但是开发效率,工具,生态系统,平台完备,团队技能等等都很重要,开发一个项目的时候多要考虑。比如 Web 项目的开发,Ruby 系统有很大的优势,而我完全可以在实现上放弃面向对象而用函数式的开发模式来实现 immutability 和复杂的数据类型来鼓励行为至上。
软件工程的一个重要原则是推迟大风险的决定,所以在实践项目中非主流语言的引入很少出现在项目初期 -非主流数据库的选择也往往是这样。
讲的很好,但是感觉过于学术些。真正做起项目来开发的效率是非常重要的,而这里语言,框架以及其周边的生态系统是非常重要的考虑。
比如,做 Web 相关的项目,Rails 就是非常好的 DSL 而且有成熟的生态系统。函数式的 Clojure 也可以做而且有很多强大的功能,但是成熟性相对差些。Haskell 就更是这样。可以用 Rails 迅速 build prototypes 并加功能。而当项目趋向成熟的时候可以考虑加入其他语言为特定的功能服务。
还有,与其纠结与语言,其实更重要的是编程的模式。面向对象,函数式这些并不是语言的特性,而是编程的模式。最近的多模式编程语言比如 Clojure, Scala 的兴起就是这个的体现。Ruby 也可以用做函数式语言来用,只是没有 Ocaml 那么自如和方便
sudo !!
如果用 bundler 而且本地有 paperclip
bundle outdated
我也正在要买
有人用过 Matias Tactile Pro 么
这个顶下
如果你用 vim + tmux, 看这个
http://joshuadavey.com/2012/01/10/faster-tdd-feedback-with-tmux-tslime-vim-and-turbux/
可以直接看视频先
或者打开 Mail::Message,自己做一个过滤器
class Mail::Message
def deliver_with_filtering
unless Rails.env.production?
self.to = scrub_emails(to)
self.cc = scrub_emails(cc)
self.bcc = scrub_emails(bcc)
end
deliver_without_filtering if deliverable?
end
alias_method_chain :deliver, :filtering
private
def deliverable?
to.present? || cc.present? || bcc.present?
end
def scrub_emails(emails)
Array.wrap(emails).select { |email| email[/pragmatic.ly|[email protected]/] }
end
end
》》我的意思是:找出几种特殊的情况下,我们明确表示需要添加测试。
假设你现在你系统没有明显的错误和漏洞 - 如果有就没什么说的先堵漏洞 - 那么增加测试的过程就是减少风险的过程,所以要看系统里面哪些地方需要防范风险,或者风险较大。减少风险的结果就是象@fsword 说的,对系统的质量放心。
一些我能想到的供你参考,重要性按顺序
涉及到付费的 - 有钱出现的地方不仅要测试而且要大量测试。从 Unit 到 Functional 到 端到端 的 Integration。不仅要保证正面情况的工作性,而且要对所有可能发生的错误情形进行合适处理;能想到的边角情况都要测试。
核心业务逻辑 - 这些的变化往往会波及系统的多个部分。一定要用测试包裹,来及早应对处理
和第三方集成的 - 主要目的是回归,因为你无法控制别人接口的可能变化
系统里面容易变化的地方 - 你们应该有感觉哪些部分的代码相对稳定,哪些部分总需要改变。对变化大的地方及其周边加强测试
系统里有多个 object 协作的地方 - objects 状态的变化很容易在这地方造成出错。当然,这些地方也是你最需要重构的地方。
代码晦涩,难以理解,没人敢碰的地方 - 晦涩的代码往往因为程序员经验不足没有选择正确的 abstraction. 增加测试是重构这些地方的第一步
很多 conditional 的地方 - 很多的 if, case, 等等;这是复杂逻辑的体现
多行连续的地方 - 如果有 conditional, 往往表明需要进一步得掰开;即使已有测试也往往覆盖不足
在增加测试的过程中,你往往会发现测试会给你明确的重构信号,有了测试覆盖后就大胆出手把。
最后,新写的代码会象@xds2000 说的测试先行对吧
Enjoy.
现在用 Ruby Motion 主要是可以用 Ruby 的语法来写一些 Object C 的东西,但还是要用到 Cocoa Touch 的东西。Ruby Motion 作者的计划是通过写 wrapper 来逐渐把 Coca 推向地层,来实现完全的 Ruby 开发经历。很看好。
如果要写一般的 Null Object 是要用 method_missing 的,因为需要对任何的 call 返回 self
http://en.wikipedia.org/wiki/Null_Object_pattern http://devblog.avdi.org/2011/05/30/null-objects-and-falsiness/