cbm*_*eks 3 javascript design-patterns server-side client-side
我最近在不同的客户端JavaScript库/框架上来回反复蹦蹦跳跳.我喜欢Backbone.不是ExtJs的粉丝.等等.
无论如何,他们似乎都有一个巨大的问题,我必须在服务器端(Rails 3)和客户端定义验证逻辑.另外,我必须对我的模型定义(AR Objects和`JS Objects')做同样的事情.然后我必须在两个地方定义业务规则.
好像我总是开发两个并发应用程序.
我知道这是一个主观的问题,但对于我们这些小型的单人团队来说,他们无法负担专门的JS人员和专门的Ruby人员,我的解决方案是什么?
我正在绞尽脑汁,也许我错过了一些东西,但我找不到解决这个问题的方法.
我想过编写一个可以生成本地JS对象的Ruby gem.所以至少我的业务对象是一样的.但这听起来很吓人.特别是因为我可能不希望客户端的所有属性.
你对这个问题有什么看法?我只需忍受它吗?
我认为这是你必须忍受的事情.如果您考虑问题的性质,以及为什么我们同时进行客户端和服务器数据验证,您可以得出结论,目前没有解决方法而不降低用户体验或使您的应用程序面临风险.
想想就像你在火车上发送一批货物到全国各地.在源位置,有人检查日志以确保订单中的所有内容都已包含在列车中,并且没有任何货物损坏.在目的地,另一个人检查他们已经收到他们在装运中订购的所有东西,并且没有任何损坏.
如果您跳过其中一个验证步骤,会发生什么?如果没有"服务器"端验证,您可能会发送不完整的货件.如果没有验证另一端的进货,如果有人要劫持火车并换掉一堆假货,那么在货物售完并警察到你家门口之前你就不会发现它.
火车从一个地方到另一个地方所需的时间(和费用)激励了验证进出货物,这仅仅是因为任何一方的错误都需要发送另一列火车.
不可否认,这个比喻有点延伸,但希望你能得到这样的结论.我们需要两端验证.