小编Fre*_*Pym的帖子

使用requests.get()和requests.session().get()之间的区别?

有时我看到人们使用requests.Session对象调用Web API:

client = requests.session()
resp = client.get(url='...')
Run Code Online (Sandbox Code Playgroud)

但有时它们不会:

resp = requests.get(url='...')
Run Code Online (Sandbox Code Playgroud)

有人可以解释我们何时应该使用Session以及何时不需要它们?

python python-requests

20
推荐指数
1
解决办法
6656
查看次数

Java - 为什么瞬态成员变量在Java标准库中如此广泛使用?

在查看了一些Java Collection类的源代码之后,我发现成员变量总是被使用修改transient.

例如,LinkedList源代码:

public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
    private transient Entry<E> header = new Entry<E>(null, null, null);
    private transient int size = 0;

    public LinkedList() 
    {
        header.next = header.previous = header;
    }

    public LinkedList(Collection<? extends E> c) {
        this();
        addAll(c);
    }

    // ...other stuff
}
Run Code Online (Sandbox Code Playgroud)

当然,不仅LinkedList使用transient,几乎每个Java集合类都使用它transient来修改其成员变量的至少一半.

所以,我的问题是:为什么在Java标准库中transient使用如此广泛

(当然每个人都知道它的定义和用法transient,但那不是我的问题:)

java transient

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

Java - 如何设计搜索方法?

我正在设计一个包装新闻搜索引擎的装饰器类,因此我们可以将这个类与一个库一起发送给其他团队使用.

这个类的公开接口是Java风格的接口,它需要很多参数,然后这个装饰器将这些参数组装成搜索引擎的搜索文本.

我的方法如下:

public List<News> search(List<String> keywords, List<String> categories, List<String> authors, List<Location> locactions, List<LocalDate> dates, List<SortRule> sortRules, int offset, int limit);
Run Code Online (Sandbox Code Playgroud)

是的,我知道......这种方法看起来非常漫长,非常错误,并且很难用于客户端.

那么,我如何为这样的搜索功能设计更好的API呢?

java search api-design

5
推荐指数
2
解决办法
1549
查看次数

Android 视图显示列表命令示例?

我想更好地了解 Android 视图渲染机制,我知道那些高级视图由称为显示列表的较低级别内部对象表示,该对象将传输到 GPU 进行渲染。

但是文章和资料只讲'显示列表是我们要求GPU渲染的命令',没有人给出具体的例子,例如一个Button如何转换为一个显示列表,一个显示列表用于什么一个按钮的样子。

有人可以给出一些常见视图(如 Button 或 TextView)的显示列表示例吗?

android opengl-es view displaylist

5
推荐指数
0
解决办法
464
查看次数

如何在不定义equals()和hashCode()的情况下比较自定义类的列表?

由于定义equals()hashCode()仅用于测试目的被视为代码气味,我更喜欢使用ReflectionEquals或自定义匹配器来进行单元测试时比较对象.

但是,我不知道如何使用ReflectionEquals或自定义匹配器来比较用户定义的类列表.

例如,如何在不定义equals()hashCode()(可能仅使用ReflectionEquals或自定义匹配器)的情况下断言以下代码?

// When
List<Record> actual = sut.findBySomeId();

// Then
List<Record> expected = asList(
    aRecord()...build(), 
    aRecord()...build()
);
assertThat(expected, /* how to compare? */);
Run Code Online (Sandbox Code Playgroud)

java unit-testing assert equality

5
推荐指数
2
解决办法
1607
查看次数

在Spring控制器中使用日期参数的最佳实践?

在编写了几个后端API之后,我发现以下代码几乎在每个需要按日期过滤数据的方法中都重复:

@GetMapping(value="/api/test")
@ResponseBody
public Result test(@RequestParam(value = "since", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate since,
                   @RequestParam(value = "until", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate until) {
    // Date validation code I want to eliminate
    since = ObjectUtils.defaultIfNull(since, DEFAULT_SINCE_DATE);
    until = ObjectUtils.defaultIfNull(until, LocalDate.now().plusDays(1));
    if(since.isAfter(until)) {
        throw new SinceDateAfterUntilDateException();
    }

    // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

显然这是某种代码味道.但是,因为我确实需要验证sinceuntil在使用它们来查询服务/ DAO之前,我不知道我应该在哪里提取这些代码?

有什么建议?

java parameters spring spring-mvc

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

春季-我的配置类应该在多模块项目中的什么位置?

我正在开发一个Spring应用程序,并且在此项目中将功能和层划分为单独的模块。

例如:

??? xx-common
??? xx-service
??? xx-web
??? xx-app
Run Code Online (Sandbox Code Playgroud)

但是,我必须设置很多bean,因此我有许多配置类,其中在这些类中创建的bean将用于模块中分布的组件中。

因此,我有两种不同的样式来管理我的配置类:

第一个,一个模块中的所有配置:

该项目的所有配置类都在一个模块中,因此我们可以在一个包中看到所有配置。

??? xx-common
??? xx-service
??? xx-web
??? xx-app
  ??? com.xxx.config
    ??? ServiceConfig
    ??? DbConfig
    ??? WebConfig
    ??? MQConfig
Run Code Online (Sandbox Code Playgroud)

或者,就像哈利的选择一样,我也可以将所有配置类放入更合适的某个模块中,例如xx-common

??? xx-common
  ??? com.xxx.config
    ??? ServiceConfig
    ??? DbConfig
    ??? WebConfig
    ??? MQConfig
??? xx-service
??? xx-web
??? xx-app
Run Code Online (Sandbox Code Playgroud)

第二个,每个模块仅包含所需的配置:

每个模块都包含其自己必要的配置类。

??? xx-common
??? xx-service
  ??? com.xxx.config
    ??? ServiceConfig
    ??? DbConfig
    ??? MQConfig
??? xx-web
  ??? com.xxx.config
    ??? ServiceConfig
    ??? WebConfig
??? xx-app
Run Code Online (Sandbox Code Playgroud)

现在,我正在使用选项一,但是我不确定哪种结构布局会更好。任何人都可以给我pros和 …

java spring directory-structure spring-boot

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

如何在不使用Java数据的情况下在控制器中使用Spring Pageable对象?

我想Pageable在控制器的方法中使用对象来消除冗余pagesize参数。就像下面这样:

@RequestMapping("/list")
public String list(Model model , Pageable pageable) {
    logger.info("pageable = {}" , pageable);
    // ... skipped
}
Run Code Online (Sandbox Code Playgroud)

代替:

@RequestMapping("/list")
public String list(Model model , Integer page, Integer size) {
    logger.info("page = {}, size = {}" , page, size);
    // ... skipped
}
Run Code Online (Sandbox Code Playgroud)

然而,在将org.springframework.boot:spring-boot-starter-data-jpa依赖项添加到 my后pom.xml,我总是被要求设置'entityManagerFactory'bean,它看起来像是来自嵌入式 hibernate 依赖项的东西。

我如何使用该Pageable对象并摆脱 Spring Data 的东西?

spring pagination spring-data spring-data-jpa

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

Spark - 如何正确处理RDD.map()方法中的错误情况?

我正在尝试使用Spark RDD进行一些文本处理.

输入文件的格式为:

2015-05-20T18:30 <some_url>/?<key1>=<value1>&<key2>=<value2>&...&<keyn>=<valuen>
Run Code Online (Sandbox Code Playgroud)

我想从文本中提取一些字段并将它们转换为CSV格式,如:

<value1>,<value5>,<valuek>,<valuen>
Run Code Online (Sandbox Code Playgroud)

以下代码是我如何做到这一点:

val lines = sc.textFile(s"s3n://${MY_BUCKET}/${MY_FOLDER}/test/*.gz")
val records = lines.map { line =>
    val mp = line.split("&")
                 .map(_.split("="))
                 .filter(_.length >= 2)
                 .map(t => (t(0), t(1))).toMap

    (mp.get("key1"), mp.get("key5"), mp.get("keyk"), mp.get("keyn"))
}
Run Code Online (Sandbox Code Playgroud)

我想知道,如果输入文本的某些行格式错误或无效,则该map()函数无法返回有效值.这在文本处理中应该很常见,处理这个问题的最佳做法是什么?

apache-spark

0
推荐指数
1
解决办法
2860
查看次数