在Sebastian Thrum的这段视频中,他说监督学习使用"标记"数据,无监督学习使用"未标记"数据.这是什么意思?谷歌搜索"标记与未标记的数据"返回了一堆关于这个主题的学术论文.我只是想知道基本的区别.
REST API始终被视为基础结构目的.我不是专家,但我发现他们应该实现的原则涉及水平扩展和性能.他们应该压制客户和服务之间的各种亲和力(没有会话等).从业务角度来看很少考虑REST API.
上周,团队中的某个人提议将遗留应用程序的一部分实现为REST API.此应用程序以前作为库(.NET)嵌入到请求它的每个应用程序中.REST API很快就遇到了性能问题(客户端和服务器之间的往返次数太多).作为一种解决方法,实现了缓存(在服务器端).在我看来,它违反了REST原则.如果没有缓存,我们应该为一个客户端提供许多服务器以获得可接受的性能,并行请求或负载均衡器(或类似的......).
在我们谈论API时,我认为这些API应该由业务需求驱动.根据您的经验,是否存在不适合REST的业务用例?
[编辑] API是关于模拟来自客户端的条目的工作流程...
我们的解决方案依赖于微服务.另一方面,我们的CIO希望我们在每个新功能上实施行为驱动开发.
是否可以在微服务架构中管理BDD?根据您的经验,对这样的架构采用BDD是一个好习惯,还是您认为我们应该直接看集成测试?
[编辑]
更确切地说,在我看来,BDD测试有望验证业务逻辑,而且只验证业务逻辑.在许多框架中,BDD测试场景由滑块持有者和DSL创建.BDD测试倾向于融合到独有的"基础设施无知"实践.另一方面,集成测试应该验证解决方案是否与目标基础架构匹配(它们是由DevOps完成的?),而只是验证基础架构.当业务功能在微服务上"分布"时,您应该在BDD测试环境中模拟几乎所有(基础设施和业务)(应该是本地环境),并且模拟业务会削弱您的目标.你认为这些做法兼容吗?
我们决定对Azure数据库使用微操作.由于我们的业务只需要"插入"和"选择",我们决定禁止所有代码管理SqlTransaction(没有数据的并发问题).
然后,我们注意到我们的Azure数据库实例反应非常缓慢." rpc completed "事件发生的延迟是运行简单sql语句所需时间的数百倍.
接下来,我们使用EF6对代码进行基准测试,我们发现服务器响应非常快.当EF6实现内置事务时,我们决定恢复SqlTransaction微观orm上的(ReadCommited),我们发现一切都很好.
Azure数据库是否需要显式SqlTransaction(由代码管理)?SqlTransactionAzure数据库的表现如何影响?为什么这样实现?
编辑:我将发布一些关于我们收集痕迹的方式的更准确的信息.我们的Azure事件日志有时以纳秒表示,有时以毫秒为单位.看起来很奇怪.
ado.net distributed-transactions micro-orm entity-framework-6 azure-sql-database
我有点困惑.我在一家年轻的银行公司工作,我们决定实施DDD架构来打破复杂性.
所以,这是我的问题(它遵循团队中某人的设计建议).假设我们有3个不同的域名.D1,D2,D3,暴露域(网络)服务.每个域操作依赖于相同表的强类型业务实体.在这些域之前,我们希望微服务保证表中持久存储的数据是集中的.D1,D2和D3要求微服务保持符合特定规则的数据.我们希望微服务充当表的CRUD代理.微服务为D1,D2和D3域提供特定的DTO,将表混淆为D1,D2,D3.
这种方法听起来不错吗?您是否会考虑在DDD架构中使用微服务来管理1+域的CRUD和数据一致性?使用微服务"CRUDing"和验证数据是否打破了有限的上下文?如果有的话,在DDD架构中处理微服务的最佳实践是什么?
非常感谢您的贡献,
[编辑]
以下文章帮助我改进了我的想法:http://martinfowler.com/bliki/MicroservicePremium.html
微服务在单片系统无法维护的复杂情况下非常有用.它们不适合前期设计实施.另一方面,DDD试图在项目一开始就解决复杂问题.成功的DDD不应该满足微服务实现.
我正在将我的 Atom 包移植到 vscode 中,以便将 ensime 集成到其中。
\n\n当尝试进行定义提供者时,我遇到了一个问题。ensime-server 为我提供了绝对字符位置,但 DefinitionProvider 协议要求行、列。只要我有文档,这就不是问题,因为我可以简单地执行此操作document.positionAt(offset),但是document.offsetAt(position)在定义提供者的范围内,我实际上还没有打开任何文档,我认为我不应该只是解析位置,因为 vscode 也使用它来悬停 info\xe2\x80\xa6
将字符偏移解析为所需的 vscode.Position 的最佳选择是什么?有没有我可以使用的快速文件阅读器?我真的不想从外部打开文件。
\n我有2个REST apis,我在"事务"中"持久化"数据.我很想知道如何确保如果第二个有问题,第一个可以"回滚"的建议.
我目前有一个重试循环,如果失败,我发送删除到第一个调用.
它运行正常,我只是好奇是否有可能使用spring事务来处理这个问题.
就此而言,还有其他选择吗?
我有一个动态tableview和一个显示数组的原型单元格.我的问题是如何添加一个按钮,在单元格的左侧每个单元格上显示不同的名称,然后在右侧显示显示数组信息的标签.谢谢!:d
所以想象一下这是下面的单元格:
左侧:按钮(数组信息)<------------------->右侧:TextLabel(数组信息)
我正在使用类似于这个的异构容器.我可以轻松地从容器中放置和接收对象:
Favorites f = new Favorites();
f.putFavorite(String.class, "Java");
String someString = f.getFavorite(String.class);
Run Code Online (Sandbox Code Playgroud)
但似乎没有简单的方法来迭代这样的容器.我可以keySet()在Favorites类中添加一个方法,只需返回内部Map对象的键集:
public Set<Class<?>> keySet() {
return favorites.keySet();
}
Run Code Online (Sandbox Code Playgroud)
现在,我想遍历键,使用键来获取关联的值,并在接收的对象上调用一些方法:
for (Class<?> klass : f.keySet()) {
// f.getFavorite(klass).<SOME_METHOD_SPECIFIC_TO_THE_CLASS-KEY>
}
Run Code Online (Sandbox Code Playgroud)
我以为我可以通过调用来访问容器中保存的对象的方法klass.cast(f.getFavorite(klass)).SOME_METHOD(),但它也不起作用(意思是,我不能访问任何方法,除了Object相关的方法).
让我们说,在我的用例中,我想检查我迭代的所有这些对象的接口,并相应地对检测到的接口采取行动.我们还假设我可能有几十个不同类的对象,并且它们都实现了三个接口之一.
我能想到的唯一解决方案是用几十个isinstance检查填充我的代码,但我更喜欢一种不那么麻烦的方法(即检查给定对象是否实现了三个接口之一).
在 DDD 中,指南指出领域模型不应该与持久性有关。这意味着不同的域模型可能依赖于相同的表。同时,由于 ORM 在转换模型方面的技术限制(我想是?),这个目标似乎很难实现。有没有一种方法,使用实际的 ORM,创建依赖于数据库中相同表的非常具体的域模型,并防止我们在 99.99% 的 DDD 实现中所拥有的实体和表之间令人失望的 [1:1] 映射?这些技术限制(?)是否会使该指南过时?
谢谢,
java ×2
persistence ×2
rest ×2
ado.net ×1
api ×1
bdd ×1
button ×1
c# ×1
cell ×1
distributed ×1
dynamic ×1
generics ×1
micro-orm ×1
specflow ×1
spring ×1
swift ×1
tableview ×1
transactions ×1
web-services ×1