关键词:条件判断,多态,策略模式,哈希表,字典map 笔者在用python实现事件驱动后,发现python是没有提供switch语句,python官方推荐多用字典来代替switch来实现,这让我就觉得有点奇怪了.我们在编写多分支结构的程序,一般编程语言都有提供会选择if-else或者switch-case语句.条件少的时候还可以,当分支结构过分长,就会导致代码不美观且不容易维护.在笔者的从业工作经验中,多次看到项目在网络消息处理和gui层消息处理代码中,有超过20多条的if-else,switc…
我们知道,MapReduce有三层调度模型,即Job——>Task——>TaskAttempt,并且: 1.通常一个Job存在多个Task,这些Task总共有Map Task和Redcue Task两种大的类型(为简化描述,Map-Only作业.JobSetup Task等复杂的情况这里不做考虑): 2.每个Task可以尝试运行1-n此,而且通常很多情况下都是1次,只有当开启了推测执行原理且存在拖后腿Task,或者Task之前执行失败时,Task才执行多次. 而TaskImpl中存在一个成员变…
工程结构架构,减少耦合混乱以及防治需求大改造成结构重构,如何构建稳定可扩展可变换的工程结构的思考 我打算采用Information flow的方式自上而下,两大层分为基础层和展现层的结构.基础层分为多层,展现层也可分为多层.主要思想是将基础层的最下一层当做零部件,将业务层最下层当做组装大部件,通过流程串起来形成一个完整的产品,做零件时按照做出一个就扔进对应基础层的篮子里思路来,目录结构也可以按照这种来进行.这两大层的最下层按照零件拆得越小越容易应对需求变化越容易保护巩固上层的思路来就好.拿微信这…
Dataguard配置总结 本例情形 在主库存在运行的情况下,增加配置dataguard备库,实现双机热备,高可用性. 主库要求,归档模式,强制归档. 主库idty 备库idty_st 1.密码文件 为备库制作密码文件.参数文件.密码文件直接使用主库文件,参数文件需要修改. cp orapwidty ~/ scp orapwidty 132.108.200.133:/home/oracle 2.参数文件 create pfile='/home/oracle/pfileidty_st.ora' f…
pythonic 风格编码 入门python好博客 进阶大纲 有趣的灵魂 老齐的教程 老齐还整理了很多精华 听说 fluent python + pro python 这两本书还不错! 元组三种遍历,有点像回字有四种写法一样...苦笑 for index in range(0,len(tuple_1)): ... print(tuple_1[index]) >>> for index in range(0,len(tuple_1)): ... print('{}--{}'.format(…
 壹 ❀ 引 在JavaScript开发中,条件判断语句的使用频率是极高的,而对于条件判断简单易读的if else应该都是大家的首选.可是代码写的久了,我们总是希望自己的代码看着能更为简洁规范(逼格更高),那么今天我们就由浅到深介绍几种实用小技巧,帮大家减少代码中的if else.说在开头,本文并未有消灭或歧视 if else的意思,if else的好用都知道,这里只是在某些特定场景为大家额外提供一种思路罢了,如何使用还请自行抉择,那么本文开始.  贰 ❀ 短路求值 在函数定义时,常有若函数调用…
原文地址:Redux or MobX: An attempt to dissolve the Confusion 原文作者:rwieruch 我在去年大量的使用了 Redux,但我最近都在使用 Mobx 来做状态(state)管理.似乎现在社区里关于该选什么来替代 Redux 很自然地成为了一件困惑的事.开发者不确定该选择哪种解决方案.这个问题并不只是出现在 Redux 与 Mobx 上.无论何时,只要存在选择,人们就会好奇最好的解决问题的方式是什么.我现在写的这些是为了解决 Redux 和 M…
今天在Windows Server 2008 下安装SQL SERVER 2008时,碰到如下错误: You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1. 既然碰到了顺便还是记录一下,虽然感觉没啥技术含量也没有难度,有时候有必要养成一个好习惯.记录你碰到的问题.解决问题的方案,你思考的点点滴滴! 打开 Server Manager,在“Features”下勾选…
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ff5932cde42f1f03de29b1 本文来源: 微信客户端开发团队 前言 mars 是微信官方的终端基础组件,是一个使用 C++ 编写的业务性无关,平台性无关的基础组件.目前已接入微信 Android.iOS.Mac.Windows.WP 等客户端.现正在筹备开源中,它主要包括以下几个部分: comm:可以独立使用的公共库,包括 socket.线程.消息队列等 xl…
PRD(Product-Requirement-Document,产品需求文档),这对于任何一个产品经理来说都不会陌生的一个文档,一个PRD是衡量一个产品经理整体思维的标准,一个PRD可以看出一个产品经理在某个领域的专业性,同时也可以反应出一个产品经理的整体产品思维. 产品经理的整体思维体现在: 1.提炼核心需求 2.思考满足核心需求的方式 3.评估方式优劣选定方案 4.思考功能概要 5.思考支撑功能和关联功能 6.细化设计功能 7.子功能(功能间迭代) PRD其实就是将以上的思维整体走向写出来…
[题目] 假设在中国象棋中只剩下将帅两个棋子,国人都知道基本规则:将帅不能出九宫格,只能上下左右移动,不能斜向移动,同时将帅不能照面.问在这样条件下,所有可能将帅位置.要求在代码中只能使用一个字节存储变量. [分析] 3种方案: 1)位运算实现1个byte存入和读取2个变量. 2)使用位域把几个不同的对象用一个字节的二进制位域来表示.比如  C++ Code  12345   struct {     ;     ; } i; 3)使用1个变量表达2重循环.后面将会重点讨论该方案.(思考:如何用…
1.html5新特性,语义化 HTML5为我们提供了一系列的语义标签. 1.<section></section> 定义文档中的主体部分的节.段. 2.<article></article> 一个特殊的section标签,比section有更明确的语义.定义来自外部的一个独立的.完整的内容块,例如什么论坛的文章,博客的文本... 3.<aside></aside> 用来装载页面中非正文的内容,独立于其他模块.例如广告.成组的链接.侧边…
嘛..不知不觉这门课程要结束了,那么就再说点啥以示庆祝呗. 测试vs正确性论证 说到这个,相比很多人对此其实很有疑惑,请让我慢慢分析. 逻辑概览 首先我们来看看两种方式各自的做法和流程是什么样的: 单元测试 在测试中,我们是这样的一个流程 此外,为了保证测试能覆盖到工程代码的每一个区域,需要保证测试的覆盖率. 正确性证明 在证明中,我们是这样的一个流程 在这一过程中 基于行为分析的repOk永真性证明依赖于JSF中的modifies项 方法正确性将基于JSF中所描述的effects和requir…
还有半个月go1.12就要发布了.这是首个将go modules纳入正式支持的稳定版本. 距离go modules随着go1.11正式面向广大开发者进行体验也已经过去了半年,这段时间go modules也发生了一些变化,借此机会我想再次深入探讨go modules的使用,同时对这个新生包管理方案做一些思考. 本文索引 版本控制和语义化版本 控制包版本 语义化版本 何谓语义化 为何使用语义化版本 语义化版本带来的影响 一点思考 replace的限制 本地包替换 顶层依赖与间接依赖 限制 发布go…
题意 给出一个矩阵,矩阵每行的和必须为2,且是一个主对称矩阵.问你大小为n的这样的合法矩阵有多少个. 分析 作者:美食不可负064链接:https://www.nowcoder.com/discuss/87226?type=101&order=0&pos=1&page=1来源:牛客网 题目给出的合法矩阵是一个类似与邻接矩阵的样式. 所以应该往这方面去考虑. 每行之和等于2 , 代表每个点都连有两条边,可以有重边 不能有自环. 这说明 每个点属于且仅属于一个环. 因为输入只有一个n…
之前介绍了Mysq主从同步的异步复制(默认模式).半同步复制.基于GTID复制.基于组提交和并行复制 (解决同步延迟),下面简单说下Mysql基于组复制(MySQL Group Replication) 操作. 一.组复制 (MGR)介绍 MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案.组复制是MySQL5.7版本出现的新特性,它提供了高可用.高扩展.高可靠的MySQL集群服务.MySQL组复制分单主模式和多…
1.源起: VCU10项目,使用了Noto Sans字体,的确漂亮.但验证在win7下,其显示韩文为乱码,颇为头痛. 其界面显示如图: 度娘之,得Noto Sans又有CJK字体,顾名思义,其为支持中日韩文,且其体积巨大,不宜做为方案,继续思考! 2.Font.GdiCharSet 属性 也是没有办法,看在目前基础上,能不能解决问题?程序多国语言需支持. 就从字体本身属性开始检查吧,验证发现,改其字符集GdiCharSet,可正常显示韩文,解决方案有了! 查阅资料得知,字体GdiCharSet可…
Description 如果你有足够的石块,那么建一座金字塔绝不算难事.举个例子,在一块平地上,我们铺一个10*10的矩形,然后在10*10的矩形上面铺一个9*9的,然后8*8的……以此类推,直到顶上1*1.这个金字塔有10层,我们称这类金字塔为“高金字塔”. 如果你认为这样的金字塔太陡了,那么我们有办法让他看上去坡度平缓一些.比如,在10*10的矩形上,我们铺一个8*8的矩形,然后是6*6的……这样的金字塔只有5层了,大约为底座边长的一半.我们称之为“矮金字塔”. 很久以前,一位法老从父亲那儿…
Weex——关于移动端动态性的思考.实现和未来 2016-04-05 勾股.伊耆 移动开发前线 本文由手机淘宝技术团队赵锦江(勾股).黄金涌(伊耆)等专家创作.手淘作为电商应用,对客户端/前端的动态性要求非常之高,Weex是他们在经历各种方案的摸索,以及在尝鲜使用React Native后给出的答案.本文主要讲述了Weex试图解决的问题,以及初次在生产环境的实践.在今年四月份的QCon北京上,阿里技术专家鬼道将为参会者带来关于Weex的分享,感兴趣的同学可以关注. 什么是动态性 今天在移动端,尤…
答案是:用BT,也就是你我应该都很熟悉的BitTorrent. 对于网站经营者.创业者来说,扩展性的问题是在网站流量成长过程中势必会面对的问题,如何建立一个具有扩展性的架构(scalable architecture)便是在规划网站事业过程中不可或缺的专业知识. 如果服务本身的功能性符合用户需求,却因为架构.程序性能.数据库性能的问题导致服务增长出现瓶颈时,如何评估.分析网站性能瓶颈?厘清问题后如何找出对应的解決方案,可以思考的相关议题可能包括: 如何有效率地厘清问题?从客户端的数据(读取时间)…
火车进出栈类问题详讲 & 卡特兰数应用 引题:火车进出栈问题 [题目大意] 给定 \(1\)~\(N\) 这\(N\)个整数和一个大小无限的栈,每个数都要进栈并出栈一次.如果进栈的顺序为 \(1,2,3,...,N\),那么可能的出栈序列有多少种? [关键词] 栈的思想 算法优化 卡特兰数 (Catalan number) [题解] \(\mathfrak{Chapter1}\) -- 暴力出奇迹 首先,从状态的角度出发思考,每一层解答树都有两个分支: 把下一个数进栈. 把当前栈顶的数出栈(如果…
前言 Vue.js是一套构建用户界面的渐进式框架(官方说明).通俗点来说,Vue.js是一个轻量级的,易上手易使用的,便捷,灵活性强的前端MVVM框架.简洁的API,良好健全的中文文档,使开发者能够较容易的上手Vue框架. 本系列文章将结合个人在使用Vue中的一些经(cai)验(keng)和一些案例,对Vue框架掌握的部分知识进行输出,同时也巩固对Vue框架的理解. 认识组件 组件是 Vue 强大的功能之一.Vue组件具有封装可复用的特点,能够让你在复杂的应用中拆分成独立模块使用.注意,所有的…
一个小的线性dp.方法很多,八仙过海各显神通. 我想讲一下我的: #include<cstdio> #define mod 1000000007 ];][][],n;//是不是雷,右边有没有雷 int main(){ scanf(); ;s[n];n++);n--; dp[][][]=dp[][][]=; ;i<=n;++i) ][]=dp[i-][][]; ][]=dp[i-][][],dp[i][][]=dp[i-][][]; ][]=dp[i-][][]; ][]=dp[i][][…
还是熟悉的面孔,还是熟悉的味道,不同的是,这次的配方升级了. 今年10月底,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 Spring Cloud Alibaba,并发布了首个预览版本.随后,Spring Cloud 官方Twitter也发布了此消息.- 传送门 时隔 51天,Spencer Gibb再次在Spring官网的博客页面宣布:Spring Cloud Alibaba发布了其开源后的第二个版本0.2.1,随后,Spring C…
题目 题目大意 在一个1*n的棋盘上,有黑棋和白棋交错分布,每次,一个人可以移动自己的ddd颗旗子. 问先手必胜的方案数. 思考历程 在一开始,我就有点要放弃的念头. 因为这题是一道博弈问题. 我是非常不擅长博弈类问题的. 但是其他的题有想不出来,于是只能硬是想了好久. 最终那了个部分分. 正解 这题正解当然跟博弈有一些关系. 首先,对于这题有一个隐藏的限制. 白棋不能向左移,黑棋不能向右移. 这是为什么? 我们可以感性理解一下(证明什么的我当然不会): 如果白棋左移,那么在它右边的黑棋可以模仿…
自我介绍 首先简单自我介绍一下,我叫陈映平,花名叫做小卡,2011年校招进入腾讯,是腾讯课堂B侧的前端技术负责人.2015年响应总理的号召,跟朋友一起出来创业,跟前面一位讲师的经历有点像,然后2018年回到腾讯,主要负责NOW直播相关的业务,包括NOW商业化.NOW独立版等. 今年的三月底,因为家庭的原因来到了杭州,加入了阿里巴巴CBU技术部-前端体验技术团队,职级是P8,目前负责的主要是内容跟营销方向,包括采源宝.淘卖,以及现在风口上的业务,1688电商直播. 接下来分享一下我是如何拿到阿里P…
一.异常现象截图  二.解决方式: 1.背景 早期的canal版本(<=1.0.24),在处理表结构的DDL变更时采用了一种简单的策略,在内存里维护了一个当前数据库内表结构的镜像(通过desc table获取). 这样的内存表结构镜像的维护存在问题,如果当前在处理的binlog为历史时间段T0,当前时间为T1,存在的一些异常分支情况: 假如在T0~T1的时间内,表结构A发生过增加列的DDL操作,那在处理T0时间段A表的binlog时,拿到的表结构为T1的镜像,就会出现列不匹配的情况. 比如之前的…
<Python Web开发实战>|百度网盘免费下载|Python Web开发 提取码:rnz4 内容简介 这本书涵盖了Web开发的方方面面,可以分为如下部分: 1. 使用最新的Flask 0.11进行Web开发,学习Jinja2.Flask-Script.Flask-Migrate.Flask-Security.Flask-Assets等8种常用扩展,帮助读者理解Flask 的 优秀设计(上下文.BluePrint等),最后利用Mako.Flask_mako.SQLAlchemy.Pillow…
---恢复内容开始--- 写的效果依旧不好 还没写完前四题比赛就结束了 而且这些普及组的题目 我大多还是缺少简单算法的灵性 总是把问题搞复杂化. 6.5 A 第一道题非常水 简单分析发现是一个快速幂的逆过程.logn时间内解决. B 这是一个比平成的模拟要难上一点点的 模拟 因为有可能爆ll 所以写之前要把该考虑到的情况考虑好再写. C 一眼不可做 也看不懂题目是什么意思,还是看不懂弃掉以后看见了再写https://codeforces.com/contest/1175/problem/C  …
一不小心就死锁了,怎么办? 在上一篇文章中,我们用 Account.class 作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,性能太差. 向现实世界要答案 我们试想在古代,没有信息化,账户的存在形式真的就是一个账本,而且每个账户都有一个账本,这些账本都统一存放在文件架上.银行柜员在给我们做转账时,要去文件架上把转出账本和转入账本都拿到手,然后做转账.这个柜员在拿账本的时候可能遇到以下三种情况: 文件架上恰好有转出账本和转入账本,那就同时拿…