我正在开发一个非常重要的应用程序,我们正在考虑使用GraphQL.在处理模式的初始草案时,我变得有点瘫痪,试图建立随着产品的成熟而扩展的命名约定.我真的很感激任何不得不发展架构并遇到或成功避免死角或不一致的人的一些见解:
在接口名称中保留名称"Interface"通常是有用/惯用的吗?例如,在大型应用程序中是优选Profile
还是ProfileInterface
优先?
interface ProfileInterface {
# fields here...
}
type UserProfile implements ProfileInterface {
# implemented fields here...
}
Run Code Online (Sandbox Code Playgroud)将单枚举值指定为"常量"是否常见?
enum GeoJSONFeatureTypeConstant {
feature
}
interface GeoJSONFeatureInterface {
id: ID
type: GeoJSONFeatureTypeConstant!
geometry: GeoJSONGeometryInterface!
properties: GeoJSONProperties
}
Run Code Online (Sandbox Code Playgroud)最好的做法是将全有或全无object
s 声明为scalar
或者type
,两者之间的界线在哪里?想象一下Point
通常表示为数组的类型[x,y]
; 哪个更像是风骚?
scalar Point
type Point {
x: Float
y: Float
}
Run Code Online (Sandbox Code Playgroud)提前致谢!
这个问题没有得到我想要的动力,所以我会在发现它们时开始发布有用的片段,这可能会演变成各种各样的答案.
在末尾使用Input命名输入类型是一种有用的约定,因为对于单个概念对象,您通常需要输入类型和输出类型略有不同.
在Mac和iOS上的Safari 7中存在一个相当大的错误,很难找到任何东西,但很容易修复.
在使用position:fixed的某些情况下,Safari 7在滚动时无法绘制部分页面.这可以在http://ruelculture.com/glitchy.html上看到,点击箭头,稍等一会然后尝试向上滚动.