代码简洁之道笔记
十三、并发编程
并发是一种解耦策略。它帮助我们把做什么(目的)和何时(时机)做分解开。从结构的角度来看,应用程序看起来更像是许多台协同工作的计算机,而不是一个大循环。系统因此会更易于被理解,也更有效率。
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) #执行测试套件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性