全栈性能测试修炼宝典-JMeter实战 - (EPUB全文下载)

文件大小:0.46 mb。
文件格式:epub 格式。
书籍内容:

全栈性能测试修炼宝典
第1章 引论
“罗马不是一天建成的”,编写代码水平的提升也不可能一蹴而就,通过一点一滴的积累,才能达成从量变到质变的飞跃。这种积累可以从很多方面取得,如一些语言层面的使用技巧、常见的注意事项、编程风格等。本章主要探讨Python中常见的编程准则,从而帮助读者进一步理解Pythonic的本质。本章内容包括如何编写Pythonic代码、在实际应用中需要注意的一些事项和值得提倡的一些做法。希望读者通过对本章的学习,可以在实际应用Pythonic的过程中得到启发和帮助。
建议1:理解Pythonic概念
什么是Pythonic?这是很难定义的,这就是为什么大家无法通过搜索引擎找到准确答案的原因。但很难定义的概念绝非意味着其定义没有价值,尤其不能否定它对编写优美的Python代码的指导作用。
对于Pythonic的概念,众人各有自己的看法,但大家心目之中都认同一个更具体的指南,那就是Tim Peters的《The Zen of Python》(Python之禅)。在这一充满着禅意的诗篇中,有几点非常深入人心:
·美胜丑,显胜隐,简胜杂,杂胜乱,平胜陡,疏胜密。
·找到简单问题的一个方法,最好是唯一的方法(正确的解决之道)。
·难以解释的实现,源自不好的主意;如有非常棒的主意,它的实现肯定易于解释。
不仅这几点,其实《Python之禅》中的每一句都可作为编程的信条。是的,不仅是作为编写Python代码的信条,以它为信条编写出的其他语言的代码也会非常漂亮。
(1)Pythonic的定义
遵循Pythonic的代码,看起来就像是伪代码。其实,所有的伪代码都可以轻易地转换为可执行的Python代码。比如在Wikipedia的快速排序 [1]条目中有如下伪代码:
function quicksort('array')
if length('array')
≤ 1
return 'array' // an array of zero or one elements is already sorted
select and remove a pivot element 'pivot' from 'array' // see 'Choice of pivot' below
create empty lists 'less' and 'greater'
for each 'x' in 'array'
if 'x'
≤ 'pivot' then append 'x' to 'less'
else append 'x' to 'greater'
return concatenate(quicksort('less'), list('pivot'), quicksort('greater'))
// two recursive calls
实际上,它可以转化为以下同等行数的可以执行的Python代码:
def quicksort(array):
less = []; greater = []
if len(array) <= 1: return array pivot = array.pop() for x in array: if x <= pivot: less.append(x) else: greater.append(x) return quicksort(less)+[pivot]+quicksort(greater) 看,行数一样的Python代码甚至可读性比伪代码还要好吧?但它真的可以运行,结果如下: quicksort([9,8,4,5,32,64,2,1,0,10,19,27]) [0,1,2,4,5,8,9,10,19,27,32,64] 所以,综合这个例子来说,Pythonic也许可以定义为:充分体现Python自身特色的代码风格。接下来就看看这样的代码风格在实际中是如何体现的。 (2)代码风格 对于风格,光说是没有用的,最好是通过例子来看看,因为例子看得见,会显得更真实。下面以语法、库和应用程序为例给大家介绍。 在语法上,代码风格要充分表现Python自身特色。举个最常见的例子,在其他的语言(如C语言)中,两个变量交换需要如下的代码: int a = 1, b = 2; int tmp = a; a = b; b = tmp; 利用Python的packaging/unpackaging机制,Pythonic的代码只需要以下一行: a, b = b, a 还有,在遍历一个容器的时候,类似其他编程语言的代码如下: length = len(alist) i = 0 while i < length: do_sth_with(alist[i]) i += 1 而 Pythonic的代码如下: for i in alist: do_sth_with(i) 灵活地使用迭代器是一种Python风格。又比如,需要安全地关闭文件描述符,可以使用以下with语句: with open(path, 'r') as f: do_sth_with(f) 通过上述代码的对比,能让大家清晰地认识到Pythonic的一个要求,就是对Python语法本身的充分发挥,写出来的代码带着Python味儿,而不是看着像C语言代码,或者Java代码。 应当追求的是充分利用Python语法,但不应当过分地使用奇技淫巧,比如利用Python的Slice语法,可以写出如下代码: a = [1,2,3,4] c = 'abcdef' print a[::-1] print c[::-1] 如果不是同样追求每一个语法细节的“老鸟”,这段代码的作用恐怕不能一眼就看出来。实际上,这个时候更好地体现Pythonic的代码是充分利用Python库里reversed()函数的代码。 print list(reversed(a)) print list(reversed(c)) (3)标准库 写Pythonic程序需要对标准库有充分的理解,特别是内置函数 ............ 书籍插图:
书籍《全栈性能测试修炼宝典-JMeter实战》 - 插图1

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » 全栈性能测试修炼宝典-JMeter实战 - (EPUB全文下载)