zoukankan      html  css  js  c++  java
  • 阅读源码的乐趣

    1、【redis lock】

    2、【redis queue】

    3、【redis】

    4、【requests】

    5、【wtform】

    6、【sqlalchemy】

    7、【schedule】

      一个使用builder模式写出来的库。因为用法很秀我看了一下。

      用法大概是 self.every(10).second.do()

      1. 其实他也不是很多层嘛,关键就是每次做完一个函数,就return一个self咯(PS:是不是new一个出来更好呢?)

      2. 这里有一个特别的就是:

        他有一个父类,叫scheduler,里面有一些主要的方法,比如run_pending(), clear(),这个是一个全局的调度器,所以我们只需要 scheduler = Scheduler()这样的一个全局变量来用。

        然后scheduler.every(10)这个时候,返回的是一个job,因为后面操作的都是job的属性了嘛,然后job.second.do就是把这个函数(这个函数的参数要currying成一个可独立调用的函数),放去全局变量scheduler里面,让他run_pending

        怎么放呢?就是把Scheduler注入去job里面,然后job就可以用这个全局变量。

    8、【cachetools】

    9、【hyper】

    10、【electronic-wechat】

       

    编程方法:

    1. OOP

      1. 特性:类、封装、继承、多态。

      2. 类被设计为:数据和行为绑定在一起的东西。

      3. 封装可以使得类成员有选择的暴露。比如private那些。

      4. 继承可以写一些common的方法,使得子类不需要实现。

      5. 多态:在派生类里面,任何情况都可以当成基类来使用,运行时多态可以逃避编译时的检查,使得一个函数更通用。

      6  以上的东西C语言也可以实现,虚函数表 + 函数指针。

    2. 函数式编程

      记住:

        1. 永远都没有变量这个概念,x = x + 1是错误的,那怎么用循环呢,循环要变量啊,只能递归咯。

        2. 惰性求值,并不是每一个都先算好的。

        3. 比如一个class里面的point,moveby,并不是要你更改class里面的x和y,而是返回一个新的point(class)

  • 相关阅读:
    Linux 命令
    g++/gcc
    emacs lisp
    vim 快捷键
    emacs快捷键
    Valgrind 例子
    Valgrind
    gprof
    cppcheck
    gdb常用命令
  • 原文地址:https://www.cnblogs.com/liuweimingcprogram/p/12210885.html
Copyright © 2011-2022 走看看