zoukankan      html  css  js  c++  java
  • 代码简洁之道笔记

    十三、并发编程

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

    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)
                #执行测试套件
     
  • 相关阅读:
    保持URL不变和数字验证
    centOS ftp key?
    本地环境测试二级域名
    linux 解决You don't have permission to access 问题
    php smarty section loop
    php header Cannot modify header information headers already sent by ... 解决办法
    linux部分命令
    Linux 里面的文件操作权限说明
    用IT网络和安全专业人士视角来裁剪云的定义
    SQL Server 2008 R2炫酷报表"智"作有方
  • 原文地址:https://www.cnblogs.com/wt11/p/9601252.html
Copyright © 2011-2022 走看看