乐趣区

关于架构:极客daxue架构师训练营

download:极客 daxue 架构师训练营

下崽 ZY:https://www.zxit666.com/4210/
程序设计的好与坏,早在咱们青葱岁月时就接触过了,只是那是并不知道这竟如此重要。可能立刻改善程序设计、写出“好”代码的常识有以下几点:
•面向对象五个根本准则;•常见的三种架构;•绘图;•起一个好名字;•优化嵌套的 if else 代码;
当然,其余技术常识的丰盛水平也决定了程序设计的好坏。例如通过引入音讯队列解决双端性能差别问题、通过减少缓存层进步查问效率等。上面咱们一起来看看,下面列出的知识点蕴含哪些内容,这些内容对代码和程序设计的改善有何帮忙。
面向对象五个根本准则
本书作者是 2010 级学生,面向对象是作者青葱期间倒退炽热的编程范式。它的五个根本准则是:
•繁多职责准则;•凋谢关闭准则;•依赖倒置准则;•接口隔离准则;•合成复用准则;
上面咱们将通过比照和场景假如的形式理解五个根本准则对代码品质的影响。
空谷传声的繁多职责准则
没错,空谷传声、成果卓越。对于咱们这些自学编程无师自通的人来说,能把性能实现就能够了,基本没有工夫思考代码优化和保护老本问题。时光流逝,竟在接触编程很长一段时间后才发现它竟如此重要。
俗话说只有代码写的够烂,晋升就足够显著。以一个从文件内容中匹配要害数据并依据匹配后果收回网络申请的案例,看看大部分程序员的写法:

import re
import requests


FILE = "./information.fet"


def extract(file):
    fil = open(file, "r")
    content = fil.read()
    fil.close()
    find_object = re.search(r"url=\d+", content)
    find = find_object.group(1)
    text = requests.get(find)
    return text


if __name__ == "__main__":
    text = extract(FILE)
    print(text)

复制代码
需要曾经实现,这点毋庸置疑,然而问题来了:
•如果读取文件的时候产生异样了怎么办?•如果数据源发生变化该如何解决?•如果网络申请返回的数据不合乎最终要求怎么办?
如果你心里的第一个反馈是改代码,那你就要留神了。实现一件事两头的某个环节发生变化,改代码是在劫难逃的,然而如果依照下面这种写法,不仅代码越改越乱,连逻辑也会越来越乱。繁多职责准则表白的是让一个函数尽量只做一件事,不要将多件事混淆在一个函数中。
下面的代码如果从新设计,我认为至多应该是这样的:

def get_source():
    """获取数据源"""
    return


def extract_(val):
    """匹配要害数据"""
    return


def fetch(val):
    """收回网络申请"""
    return


def trim(val):
    """修剪数据"""
    return


def extract(file):
    """提取指标数据"""
    source = get_source()
    content = extract_(source)
    text = trim(fetch(content))
    return text


if __name__ == "__main__":
    text = extract(FILE)
    print(text)

复制代码
把原来放在一个函数中实现的多个步骤拆分成为多个更小的函数,每个函数只做一件事。当数据源发生变化时,只须要改变 get_source 相干的代码即可;如果网络申请返回的数据不合乎最终要求,咱们能够在 trim 函数中对它进行修剪。这样一来,代码应答变动的能力进步了许多,整个流程也变得更清晰易懂

退出移动版