📜  否 (1)

📅  最后修改于: 2023-12-03 15:37:11.298000             🧑  作者: Mango

否:程序员必备思维

程序员在日常的开发工作中,经常需要考虑各种情况。在这些情况下,否的思维是非常重要的,因为它能让我们更好的处理异常、错误、边界条件等情况,提高代码质量和稳定性。

否定测试

否定测试(Negative Testing)是指测试用例的设计包含错误输入、异常处理和边界条件等情况。通过这种方式,我们可以发现系统在面对非期望情况时的反应,以及程序是否能够正确处理这些情况。

例如:

assert not is_prime(-1)  # 判断负数是否为质数
assert not is_prime(0)  # 判断0是否为质数
否定断言

否定断言(Negative Assertion)是指断言某个条件是否不成立。这种方式能够帮助我们验证程序在非期望情况下是否会正常抛出异常,并且避免潜在的问题。

例如:

def test_insert():
    # 测试插入重复键值的情况
    d = MyDict()
    d['a'] = 1
    with pytest.raises(KeyError):
        d['a'] = 2
否定优化

否定优化(Negative Optimization)是指在进行性能优化时,首先要考虑存在哪些特殊情况会使得程序变得更慢或者出现异常。这种思维能够帮助我们排除性能瓶颈,提高程序的性能。

例如:

def max_sum(arr):
    if not arr:  # 数组为空
        return 0
    if all(x < 0 for x in arr):  # 数组全为负数
        return max(arr)
    max_end = max_so_far = 0
    for i in arr:
        max_end = max(i, max_end + i)
        max_so_far = max(max_so_far, max_end)
    return max_so_far
否认倾向

否认倾向(Negation Tendency)是指人类在面对问题时更倾向于否定,而不是肯定。例如,我们往往更在意代码中存在的错误,而不太注意代码中的正确性。

因此,当你在写程序时,一定要注意否定思维的应用,将此作为程序员必备的思维方式之一。