小编Ale*_*xey的帖子

"许多功能在很少抽象的基础上运行"原则与OOP相比

Clojure语言的创建者声称 "开放的,大型的函数集在一个开放的,小的,可扩展的抽象集合上运行是算法重用和库互操作性的关键".显然,它与典型的OOP方法相矛盾,在这种方法中,您创建了大量的抽象(类)和一组相对较少的函数.请建议一本书,一本书中的章节,一篇文章或您的个人经历,详细说明这些主题:

  1. 激发OOP中出现的问题的例子以及如何使用"很少抽象的许多函数"来解决这些问题
  2. 如何有效地做MFUFA*设计
  3. 如何重构针对MFUFA的OOP代码
  4. OOP语言的语法如何影响MFUFA

*MFUFA:"很少抽象的功能"

oop functional-programming clojure reusability

15
推荐指数
4
解决办法
1073
查看次数

Ruby:使用Gems体验重复发生的日历事件?

我想为我的项目找到一个ruby gem来处理符合以下要求的reccuring事件:

  • 可以处理"星期二和星期三的每周"或"上周二的每月"等模式
  • 可以计算下一次出现
  • 可以将模式序列化/反序列化为字符串以存储在数据库中
  • 序列化具有稳定的格式(即使升级后也可以加载)
  • 至少使用以下模式组件:时间,星期几,月份日期,每月的第n天;
  • 可以每天,每周,每月或间隔n天,数周或数月重复
  • 可以用自然英语表示一种模式
  • 可以从英语解析模式(可选)
  • 可以导出到一些流行的格式,如iCal(可选)
  • 可以与其他宝石/系统集成以进行日历和任务管理(可选)
  • 支持Active Record - 参数解析,验证(可选)
  • 有足够的测试,几个错误,超过1个用户:)
  • 有合理的表现

我找到了两个相关候选人:

  • 痒 - 好的是它可以解析英语.
  • Ice_Cube(+ Schedule-Attributes) - 好处是它最受欢迎并且可以导出到iCal

你能否提出一个宝石并用它描述积极和消极的经历?

也许你可以添加一些我没有提到的相关标准/要求.

PS Pease某人用1,5K +添加recurring_events标记.谢谢

ruby gem calendar ruby-on-rails recurring-events

14
推荐指数
2
解决办法
6966
查看次数

您在Scala中缺少的动态语言(如Ruby或Clojure)的功能有哪些?

你在实践中失去了什么,当你选择一个静态类型语言,如Scala的(或F#,哈斯克尔,C#),而不是动态类型的人,比如Ruby,Python和Clojure中,Groovy中(其中有宏或运行时元编程能力)?请考虑最好的静态类型语言和最好的(在您看来)动态类型语言,而不是最差的语言.

答案摘要:

与像Scala IMHO这样的静态类型语言相比,像Ruby这样的动态语言的主要优点是:

  • 快速编辑 - 运行周期(JavaRebel是否缩小了差距?)
  • 目前Scala/Lift社区比Ruby/Rails或Python/Django小得多
  • 可以修改类型定义(虽然动机或需要不明确)

ruby language-features scala dynamic-languages clojure

13
推荐指数
2
解决办法
2056
查看次数

在Factory_girl/machinist的Singleton工厂?

在工厂女孩/机械师的工厂中是否有一些配置强制它在测试用例期间只创建一次具有相同工厂名称的对象并且一直返回相同的实例?我知道,我可以这样做:

def singleton name
    @@singletons ||= {}
    @@singletons[name] ||= Factory name
end
...
Factory.define :my_model do |m|
   m.singleton_model { singleton :singleton_model }
end
Run Code Online (Sandbox Code Playgroud)

但也许有更好的方法.

singleton machinist factory-bot

13
推荐指数
2
解决办法
2605
查看次数

Capybara + Selemium:如何在集成测试代码中初始化数据库并使其在Rails应用程序中可见?

配置: 使用RSpec,Capybara,Selemium驱动程序,SQLite数据库对Rails项目进行集成测试.

情况: 我很少与Capybara和默认的rack_test驱动程序进行集成测试.他们直接在数据库中创建用户注册(对于Devise gem).然后他们像用户一样使用Capybara DSL登录并测试场景.

问题: 我尝试将驱动程序更改为Selenium以测试JavaScript代码.现在测试失败,因为应用程序没有看到测试创建的用户注册.

调查: 看起来Selenium驱动程序与转换的工作方式不同,因此在测试中所做的更改在Web应用程序中是不可见的.可能的解决方案包括:

config.use_transactional_fixtures = false 
DatabaseCleaner.strategy = :truncation
Run Code Online (Sandbox Code Playgroud)

database selenium transactions ruby-on-rails capybara

13
推荐指数
1
解决办法
1998
查看次数

使用memcached和像MySQL这样的rdbms时的缓存一致性

本学期我已经学习了数据库类,我们正在研究如何在RDBMS和缓存服务器(如memcached)之间保持缓存一致性.存在竞争条件时会出现一致性问题.例如:

  1. 假设我get(key)从缓存中执行了操作,并且存在缓存未命中.因为我得到了缓存未命中,我从数据库中获取数据,然后put(key,value)进入缓存.
  2. 但是,可能会发生竞争情况,其他一些用户可能会删除我从数据库中获取的数据.此删除可能在我put进入缓存之前发生.

因此,理想情况下put不应该进入缓存,因为数据在数据库中存在的时间更长.

如果缓存条目具有TTL,则缓存中的条目可能会过期.但是,仍有一个窗口,其中缓存中的数据与数据库不一致.

我一直在寻找那些谈论这类问题的文章/研究论文.但是,我找不到任何有用的资源.

memcached caching consistency distributed-computing race-condition

10
推荐指数
1
解决办法
2086
查看次数

从中缀转换为前缀表示法

我最近开始学习Clojure.通常它看起来很有趣,但我不能习惯一些语法上的不便(与之前的Ruby/C#体验相比).

嵌套表达式的前缀表示法.在Ruby中,我习惯于编写复杂的表达式,并将它们从左到右连接起来:some_object.map { some_expression }.select { another_expression }.当您逐步从输入值移动到结果时,它非常方便,您可以专注于单个转换,而无需在键入时移动光标.与在Clojure中编写嵌套表达式时的情况相反,我将内部表达式的代码编写到外部,我必须不断地移动光标.它会减慢并分散注意力.我知道->->>宏,但我注意到它不是惯用语.当你开始在Clojure/Haskell等编码时,你有同样的问题吗?你是怎么解决的?

oop clojure infix-notation prefix

9
推荐指数
2
解决办法
1456
查看次数

如何验证AB回复?

有没有办法确保AB从服务器获得正确的响应?例如:

  • 强制它将单个请求的响应输出到STDOUT OR
  • 要求它检查一些文本片段是否包含在响应正文中

我想确保身份验证正常工作,我正在测量目标页面的响应时间,而不是登录表单.

目前,我只是代替ab -n 100 -c 1 -C "$MY_COOKIE" $MY_REQUESTcurl -b "$MY_COOKIE" $MY_REQUEST | lynx -stdin.

如果不可能,是否有其他更全面的工具可以做到这一点?

apachebench

9
推荐指数
2
解决办法
1万
查看次数

class_eval vs instance_eval

除了工作class_evalinstance_eval工作有什么不同def吗?内部class_evaldef定义了类本身的方法(即实例方法),内部instance_eval def定义了类的本征类的方法(即类方法).据我所知其他所有功能在这两种情况下(例如相同的工作define_method,attr_accessor,class << self; end,定义常量).这是真的吗?

答案是:def,undef并且alias有不同的背景class_evalinstance_eval.

ruby metaprogramming instance-eval class-eval

7
推荐指数
1
解决办法
1297
查看次数

Apache Directory LDAP - 分页搜索

我正在寻找使用Apache Directory API执行分页搜索的信息,但是我没有找到任何关于如何使用正确的PagedResults控件构建SearchRequest然后执行搜索的示例或任何信息.

你们有什么小费吗?或知道在哪里可以找到这样的信息?

或者,也许你应该建议我使用其他一些API,比如unboundid sdk

在此先感谢您的亲切问候.

search ldap apache-directory

7
推荐指数
2
解决办法
2196
查看次数