代码简洁之道笔记

十三、并发编程

并发是一种解耦策略。它帮助我们把做什么(目的)和何时(时机)做分解开。从结构的角度来看,应用程序看起来更像是许多台协同工作的计算机,而不是一个大循环。系统因此会更易于被理解,也更有效率。

1.编写可调整的线程代码  要允许线程数量可调整。在系统运行时允许线程发生变动。允许线程依据吞吐量和系统使用率自我调整。

2.(一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行)

要区分出哪些地方用多线程,哪些地方不需要;使用多线程的地方为了保证数据准确性或者事务一致性,还要考虑加线程锁

mu = threading.Lock() #1、创建一个锁
def lock_test():
    #time.sleep(0.1) 
    if mu.acquire(True): #2、获取锁状态,一个线程有锁时,别的线程只能在外面等着
        schedule_times = ReadTimes()
        print schedule_times
        schedule_times = schedule_times + 1
        WriteTimes(schedule_times)
        mu.release() #3、释放锁 

十四、持续改进代码

1.不要指望能够一次写出整洁、漂亮的程序。要编写整洁代码,必须先写肮脏代码,然后再清理它。

2.改进程序应该是渐进的,而不应该是大动其结构,这有很大可能导致程序不可用,采用TDD,每次修改都必须保证系统能像以前一样工作。

十五、junit,说一下unittest.

在说unittest之前,先说几个概念:

TestCase 也就是测试用例

TestSuite 多个测试用例集合在一起,就是TestSuite

TestLoader是用来加载TestCase到TestSuite中的

TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

import unittest

class MyTest(unittest.TestCase):  # 继承unittest.TestCase

if __name__ == '__main__':
            test_suite = unittest.TestSuite()#创建一个测试集合
            test_suite.addTest(MyTest('test_run1'))#测试套件中添加测试用例
            #test_suite.addTest(unittest.makeSuite(MyTest))#使用makeSuite方法添加所有的测试方法
            fp = open('res.html','wb')#打开一个保存结果的html文件
            runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='api测试报告',description='测试情况')
            #生成执行用例的对象
            runner.run(test_suite)
            #执行测试套件
 
原文地址:https://www.cnblogs.com/wt11/p/9601252.html