摘要: 假数据(本地数据) > 网络数据(服务器数据) 前端驱动后端开发 template思想: 更好的封装UI和业务逻辑,增加复用性 解决问题思路: 为什么出错?怎么意识到错误?怎么解决这个错误? 把设计图变为程序思路: 把设计图当成一个整体去思考,写富有层次感的代码逻辑,先考虑整体架构,再逐层到内 调试阅读全文
posted @ 2018-06-12 23:13 北门吹雪 阅读(41) 评论(0) 编辑
摘要: 世界不过只是有序和无序的战场而已 弱永远是原罪 历史从来不是时间节点也不是建筑也不是文字,而是保存了当时的环境变量,如果是我在当时如何抉择,这就是古代帝王如此重视史学正真核心,功过名利不过是过眼云烟 三体中死神永生不过是利益永恒的人化形象具体化 最大的邪恶莫过于无知 始终思考为什么是这样,而不是应该阅读全文
posted @ 2018-06-05 12:20 北门吹雪 阅读(45) 评论(0) 编辑
摘要: 假数据(本地数据) > 网络数据(服务器数据) 前端驱动后端开发 template思想: 更好的封装UI和业务逻辑,增加复用性 解决问题思路: 为什么出错?怎么意识到错误?怎么解决这个错误? 把设计图变为程序思路: 把设计图当成一个整体去思考,写富有层次感的代码逻辑,先考虑整体架构,再逐层到内 调试阅读全文
posted @ 2018-06-12 23:13 北门吹雪 阅读(41) 评论(0) 编辑
摘要: 微信小程序定位 1. 不需要下载安装即可使用 2. 用户用完即走,不用关系是否安装太多应用 3. 应用无处不在,随时可用 # 不要安装可使用是个伪命题,因为小程序的安装包小于1M,下载安装到使用的过程太短,用户感觉不到而已 # C2P 人与服务 # 其他概念: B2C 人与商品 ,P2P 人与人 小阅读全文
posted @ 2018-06-12 23:01 北门吹雪 阅读(33) 评论(0) 编辑
摘要: tornado-设计初衷 1. 追求小而精 2. epoll IO多路复用和协程 3. 支持WebSocket 4. 单线程程序(GIL限制,本身某种意义上不启动多进程就是单线程程序) # Python GIL介绍详情 tronado应用场景 1. 大量的http请求连接(大量的用户请求,要求并发性阅读全文
posted @ 2018-06-12 22:40 北门吹雪 阅读(190) 评论(0) 编辑
摘要: 进程 资源集合,调度和分配资源,说到进程就不得不提到线程,线程和进程是密不可分,进程申请了资源,但真正使用资源的是线程,其实本质上类似面向对象的思想,面向对象把数据和数据的操作封装在一个类中,进程把资源和对资源的操作封装在进程中,其实进程本质上是对资源的封装,那就比对进程和线程的区别来认识进程: 1阅读全文
posted @ 2018-06-08 16:09 北门吹雪 阅读(695) 评论(0) 编辑
摘要: 信号量 其实本质上是锁,Lock是单锁,信号量是指定多把锁,也就是说通过信号量指定多个数线程可以访问相同资源,一般情况下读操作可以有多个,但写操作同时只有一个 信号量模块 semaphore # 使用起来和普通锁没 什么区别,但这个是比锁更加粗粒度锁,锁的是线程 # 在线程实例前加锁,把锁传递进线程阅读全文
posted @ 2018-06-08 10:08 北门吹雪 阅读(337) 评论(0) 编辑
摘要: GIL 全局解释器锁,这个锁是个粗粒度的锁,解释器层面上的锁,为了保证线程安全,同一时刻只允许一个线程执行,但这个锁并不能保存线程安全,因为GIL会释放掉的并且切换到另外一个线程上,不会完全占用,依据分配策略(时间片、执行字节码行数、IO操作)。GIL只能保证同一时刻同一CPU上只有一个线程执行,但阅读全文
posted @ 2018-06-07 19:19 北门吹雪 阅读(354) 评论(1) 编辑
摘要: socket 整个计算机网络是由协议构成,想要通信必须遵守对应的协议,如Web中的http协议、传输协议TCP和UDP等等。在网络工程师的眼中,可能现在网络上的一切都是socket,一切皆socket,我们一般接触到的是应用层应用程序,本质上两个应用想通信,则必须通过socket实现通信,socke阅读全文
posted @ 2018-06-07 11:49 北门吹雪 阅读(745) 评论(0) 编辑
摘要: yield 1. 函数执行的时候,找到yield关键字,则会标记这个函数,返回生成器对象 2. Python解释器会记录最近一次函数中yield位置 3. 生成器对象也是分配在栈堆上 4. 通过yield关键字,让程序员主动控制函数的运行状态,暂停函数还继续运行 5. 生成器可以return值 函数阅读全文
posted @ 2018-06-06 15:52 北门吹雪 阅读(123) 评论(0) 编辑
摘要: iter 本质是for循环调用的实质,for循环通过调用这个函数返回可迭代对象生成器形式,开始迭代取值捕获StopIteration错误退出循环 for循环首先找__iter__方法,然后再找 __getitem__方法,如果都没找到则报错,对象不是可迭代对象 __iter__ 如果是自定义类生成的阅读全文
posted @ 2018-06-06 10:20 北门吹雪 阅读(96) 评论(0) 编辑
摘要: 通过另外一个类来描叙类变量的属性类型,这个是ORM实现的核心基础 给属性赋值会调用 __set__方法,访问属性则会调用 __get__方法,则可以获取字段的对象和其值,删除字段时候则调用 __delete__方法 北门吹雪: https://www.cnblogs.com/2bjiujiu/阅读全文
posted @ 2018-06-05 23:30 北门吹雪 阅读(37) 评论(0) 编辑