小编xu *_*nze的帖子

什么会导致向后兼容不可能?

我们有一个平台组件(用Java编写),现在应该向后兼容一段时间,例如3年.是否有可能实现新功能或修复错误必须要求平台中的接口更改?

一个具体的例子是,假设在平台中定义了某种监听器接口,客户端代码将实现监听器.稍后在监听器中需要一个新方法来引入一个新功能,但我们不能这样做,因为它会破坏接口,以便某些客户端无法编译.

创建一个使用新方法扩展原始界面的新界面是一个好主意吗?需要此新功能的客户端现在将实现新接口,并且不需要更改其他客户端代码.当然,平台中的调用现在应检查侦听器的类型,如果它是新方法的新接口,则将调用新方法,或者不执行任何操作.

这种改变可能会使代码看起来不那么简单,但我想它仍然有效.是否有必要在平台上更改接口?

java api-design backwards-compatibility

6
推荐指数
1
解决办法
872
查看次数

在Django中自定义Json序列化程序的格式?

序列化django模型对象时,格式如下:

{
    "pk":1,
    "model":"book",
    "fields":{
       "name":"BookName",
       "price":"48",
Run Code Online (Sandbox Code Playgroud)

如果它是这样的话会更直接吗?

{
    "id":1,
    "name":"BookName",
    "price":"48",
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有一种简单的方法可以做到这一点?Json数据将被发送到iPhone等移动设备,客户端对模型名称不感兴趣,或者表中有哪些字段.

类似的帖子Django:自定义序列化选项?建议使用模板,但这是否意味着我需要为所有模型创建模板?

还有一个问题是完全序列化,这与Django的内置序列化器相反,后者仅返回相关字段的主键值.我知道DjangoFullSerializers可以做到这一点,但是可以做到这两点(自定义格式和完整序列化)吗?

django format customization json serializer

3
推荐指数
1
解决办法
1904
查看次数