小编yba*_*kos的帖子

如果RESTful HTTP请求不直接导致数据操作但触发操作,是否应该执行GET,PUT或POST操作?

这是一个给你RESTful书呆子的问题.请允许我设置舞台.

假设我有一个名为ChickenShack的远程系统和一个名为BurgerShack的本地系统,这两个系统都是集成的,每个系统都维护一个实体数据的"同步"副本.当ChickenShack上的实体发生更改时,它会将这些实体的ID集合作为RESTful请求发送给BurgerShack.然后,BurgerShack向ChickenShack发出GET请求,请求更改实体的所有属性并更新实体的本地副本.

在此输入图像描述

所有这些都是异步的,并且是围绕某些限制而设计的(所以如果它对你来说味道不好,就会意识到生活中有时我们不得不吃屎和微笑).

我的问题是:ChickenShack向BurgerShack发出的初始请求是GET还是PUT请求?由于最初的请求是幂等的,我的一部分说"GET".然而,它确实最终导致汉堡的数据被改变,所以我的另一部分说"PUT"或"POST".

你怎么看?

rest http

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

为什么食谱会在看起来不必要的时候推广覆盖getItemViewType和getViewTypeCount?

我一直在使用Commonsware Android编程教程和教程5,额外的功劳2,挑战是使用多个布局在ListView中显示行,具体取决于对象的"类型名称"(餐厅的"类型"属性,这是一个字符串).因此,它表明压倒一切getItemViewType,并getViewTypeCount在自定义ArrayAdapter.此外,Android文档和其他在线食谱博客文章也提出了相同的建议.

在这种情况下,遵循此配方并覆盖这两种方法可以正常工作,但会导致基于检查该Restaurant"type"属性值的冗余逻辑.例如(请注意,此适配器是一个内部类,并且restaurants是声明为外部Activity成员的Restaurant对象的ArrayList):

class RestaurantsAdapter extends ArrayAdapter<Restaurant> {

  private static final int ROW_TYPE_DELIVERY = 0;
  private static final int ROW_TYPE_TAKE_OUT = 1;
  private static final int ROW_TYPE_SIT_DOWN = 2;

  RestaurantsAdapter() {
    super(LunchListActivity.this, android.R.layout.simple_list_item_1, restaurants);
  }

  public int getViewTypeCount() {
    return 3;
  }

  public int getItemViewType(int position) {
    String type = restaurants.get(position).getType();
    if (type == "delivery") {
      return ROW_TYPE_DELIVERY;
    } else if (type == "take_out") {
      return ROW_TYPE_TAKE_OUT;
    } …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter commonsware android-view

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

为什么声明后的初始化需要数据类型?

考虑简单的C程序:

int a;      // declaration
int a = 11; // initialization

int main(int argc, char* argv[]) {
    int b;  // declaration
    b = 10; // assignment
Run Code Online (Sandbox Code Playgroud)

如果初始化是a在没有数据类型的情况下编写的,例如a = 11,编译器会发出警告.a当声明a已经指定其数据类型时,为什么初始化需要数据类型?

c

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

解释C++中声明性谬误的最佳方法是什么?

人们如何能够很好地解释为什么以下代码不正确,因为作者试图以声明方式而不是程序性地编写C++代码?

const double NEWTONS_PER_POUND = 4.448;

int main()
{
   double pounds, newtons;
   pounds = newtons/NEWTONS_PER_POUND; /* pounds equals 'unassigned variable'/4.448 */
   newtons = 10.0;
   cout << pounds << endl;             /* a big number, not 10.0/4.448 */
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

作者希望cout显示一个正确的计算,但获得一个"疯狂的数字".

我会解释为"C++是程序性的,因此在声明时

pounds = newtons/NEWTONS_PER_POUND;
Run Code Online (Sandbox Code Playgroud)

newtons 尚未分配值.

有更好的建议吗?或者解释为什么C++不够"聪明"来执行用户错误预期的行为?

c++ procedural declarative

6
推荐指数
3
解决办法
998
查看次数

如何使Visual Studio C++ 2010编译像gcc/g ++一样?(或相反亦然)

假设您有以下简单的main.cpp文件:

#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int main() {
    const string FILENAME = "foo.txt";
    ifstream somefile(FILENAME);
    populations.close();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这可以通过Visual Studio C++ 2010编译.

但是,在基于Linux的系统上,如果我执行make main并编译,我们得到一个预期的错误,因为我们没有调用c_str()字符串常量,如下所示:

ifstream somefile(FILENAME.c_str());
Run Code Online (Sandbox Code Playgroud)

众所周知,并在此SO线程中进行了描述.

如何使VS像gcc/g ++一样运行并为上面的代码引发编译错误?或者,我怎样才能让gcc/g ++像VS一样运行并编译上面没有错误?(升级我的gnu编译器是一件简单的事吗?)

(我不相信禁用编​​译器扩展是一个解决方案,因为我已经这样做了,它仍然可以编译而没有错误.)

c++ visual-studio-2010 visual-c++

6
推荐指数
2
解决办法
1786
查看次数

如何在Python中从环境变量设置字符串?

假设您有一个字符串生成,通过os.urandom(24),

b'\x1b\xba\x94(\xae\xd0\xb2\xa6\xf2f\xf6\x1fI\xed\xbao$\xc6D\x08\xba\x81\x96v'
Run Code Online (Sandbox Code Playgroud)

并且你想将它存储在环境变量中,

export FOO='\x1b\xba\x94(\xae\xd0\xb2\xa6\xf2f\xf6\x1fI\xed\xbao$\xc6D\x08\xba\x81\x96v'
Run Code Online (Sandbox Code Playgroud)

并使用从Python程序中检索值os.environ.

foo = os.environ['FOO']
Run Code Online (Sandbox Code Playgroud)

问题是,这里foo有字符串文字值'\\x1b\\xba\\x94...而不是字节序列b'\x1b\xba\x94....

什么是正确export使用的值来使用,或手段os.environ对待FOO作为一个字节串?

python

6
推荐指数
2
解决办法
3177
查看次数

如何将int或其他“ C#值类型”存储在堆中(使用C#)?

我正在通过Troelsen的Pro C#书本来学习C#。

我熟悉堆栈和堆,以及C#如何存储这些东西。在C ++中,无论何时使用,new我们都会收到指向堆中某物的指针。但是,在C#中new,我的行为似乎与众不同:

  • 当与int等值类型一起使用时,using new似乎只是调用int默认构造函数,但此类int的值仍将存储在堆栈中

我了解所有对象/结构等都存储在堆中,无论是否new使用。

所以我的问题是:如何int在堆上实例化一个?(这与“装箱”有关吗?)

c#

5
推荐指数
1
解决办法
2338
查看次数

如何在不签名的情况下构建开源Xcode项目?

我克隆了一个开源的Xcode OSX/Cocoa项目(SatelliteEyes),并尝试使用Xcode 6.1.1进行构建.在项目设置中,Bundle Identifier是项目所有者,Signing选项是Mac App Store.如果我将Signing选项设置为None,我仍然会提示我签名身份,我无法构建项目(尽管已将Signing设置为None,但仍会显示No signing identity found对话框).此外,尽管将"签名"选项设置为" 无",Xcode仍会使用常用的" 修复问题"按钮显示" 无签名身份"警告.

在此输入图像描述

Build Settings下,我已将Debug和Release 的Code Signing Identity选项更改为Do not Code Sign.

尽管如此,Xcode仍然提示我找不到签名身份对话框.为什么frack是Xcode要求签名身份在我到处签名时关闭?

我只是想构建这个项目并在本地运行它以查看我的更改,然后再提供补丁.我该怎么做呢?

macos xcode xcode6

5
推荐指数
1
解决办法
1897
查看次数

您如何为ActiveRecord所属关系声明一个可选条件?

Rails ActiveRecord为提供了一个optional选项belongs_to。考虑以下用例:允许外键为null,并在对象创建期间允许关联为null,但在后续保存期间要求其存在。例如,新成员可能没有初始组,但是对成员的任何进一步更新都需要组关联。

在可optional选项值本身是有条件的?例如,

class Member < ApplicationRecord
  belongs_to :group, optional: -> { new_record? }
end
Run Code Online (Sandbox Code Playgroud)

行为与相同optional: true,我们可以推断出optional选项解析仅检查真实值。

定制验证器是满足此用例的实用方法吗?

ruby ruby-on-rails rails-activerecord

5
推荐指数
1
解决办法
1855
查看次数

如何从命令行与 dart 调试器交互?

假设您有一个简单的命令行 Dart 程序,其中调用了debugger()断点。例如:

main() {
  print('hello');
  debugger();
  print('goodbye');
}
Run Code Online (Sandbox Code Playgroud)

当我运行程序时:

dart main.dart
Run Code Online (Sandbox Code Playgroud)

控制台显示输出直到断点并在控制台中暂停。但是,我没有看到调试器的任何输出,并且无法与调试器交互。如何从命令行与调试器交互?

debugging dart

4
推荐指数
1
解决办法
733
查看次数