1. 背景 if/else是高级编程语言中最基础的功能,虽然 if/else 是必须的,但滥用 if/else,特别是各种大量的if/else嵌套,会对代码的可读性.可维护性造成很大伤害,对于阅读代码的人来说就是一场灾难. 本系列博客的目的不是消除if/else,而是如何"写好"if/else 2. 方法 根据if/else的使用方式和场景,大概有如下解决方法 多态 表驱动 职责链模式 卫语句 Optional 调整判断逻辑,抽取方法,逻辑优化 本篇博客我介绍的是表驱动,后续博客会介绍…
1.问题 在浏览项目时,发现一段使用正则表达式的代码 这段代码,在循环里执行了Pattern.matches()方法进行正则匹配判断. 查看matches方法的源码,可以看到 每调用一次matches方法,都会创建一个Pattern对象,而且这段代码还是在for循环里,如果外层函数又被频繁调用,就会出现很明显的性能问题. 创建Pattern实例的成本很高,因为需要将正则表达式编译成一个有限状态机(final state machine). 2.解决 使用正则表达式的预编译功能,可以有效加快正则匹…
学习selenium能做什么? 很多书籍.文章中是这么定义selenium的: Selenium 是开源的自动化测试工具,它主要是用于Web 应用程序的自动化测试,不只局限于此,同时支持所有基于web 的管理任务自动化. 可如果要是这么介绍selenium,估计明天关注我的人80%都要弃坑了,我又不是测试.我学什么selenium.wait a moment!先别取关- 请仔细读读后半句,支持所有基于web的管理任务和自动化! 什么算基于web的任务,就只是自动化测试?非也非也,只要是通过浏览器…
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华为云最新特惠促销.华为云诸多技术大咖.特惠活动等你来撩! 电脑硬盘里的图片 收藏夹的照片(硬盘里的女神)看了又删,去年夏天后就没聊过天-很久前有这么一首歌很火,不知道大家听过没,只是括号里的歌词被改成了现在的样子.那么,你们以为我今晚要开车?NONONO- 每天做公众号,最愁的两件事,一是选题,二是公众号配图…
在Python的世界里,将一个对象以json格式进行序列化或反序列化一直是一个问题.Python标准库里面提供了json序列化的工具,我们可以简单的用json.dumps来将一个对象序列化.但是这种序列化仅支持python内置的基本类型,对于自定义的类,我们将得到Object of type A is not JSON serializable的错误. 有很多种方法可以用来支持这种序列化,这里有一个很长的关于这个问题的讨论.总结起来,基本上有两种还不错的思路: 利用标准库的接口:从python标…
需求分析 免费的小说网比较多,我看的比较多的是笔趣阁.这个网站基本收费的章节刚更新,它就能同步更新,简直不要太叼.既然要批量下载小说,肯定要分析这个网站了- 在搜索栏输入地址后,发送post请求获取数据,然后根据url解析,模拟操作即可.打开Fiddler,chrome搜索一下伏天氏,然后看看抓取到的日志流: 代码实现 在我们开始编码前,先得看下parameters中的这几个参数. searchkey是什么鬼? 这是因为在因特网上传送URL,只能采用ASCII字符集.所以当传输中文时,有些网站会…
python模块学习建议 学习python模块,给大家个我自己不专业的建议: 养成习惯,遇到一个模块,先去github上看看开发者们关于它的说明,而不是直接百度看别人写了什么东西.也许后者可以让你很快入门,可那样你更多的是在吃别人剩下的.而访问Github,你可以在里面获取到更多作者想告诉你的内容和相关的链接地址.怎么评估一个模块好不好,最简单的办法就是看star,requests_html的star:9794,已经算很高的了.requests_html的Git地址:https://github…
在Java 的世界里,配置的事情都交给了 Properties,要追溯起来这个模块还是从古老的JDK1.0 就开始了的. "天哪,这可是20年前的东西了,我居然还在用 Properties.." 然而,本文的主角并不是Properties,而是Yaml.这是新时代里微服务架构上的宠儿,和 Properties 相比起来,Yaml 显得有些弄潮儿. 以往的大多数项目里,我们都可以发现 Properties配置文件的踪迹,这包括用于业务属性配置的.机机接口的.国际化的等等用途. 而少量的一…
2019年07月,北京,三伏天,好热啊.越热自己还越懒得动换(肉身给的信号),但是做为产品经理/交互设计师的,总想着思考些什么(灵魂上给的信号),或者是学习些什么,更有利于将来的职业发展吧,哈哈哈.工作中开发做为交互的下游,也是好奇大侠们是如何开发的?于是,小试一把.在座的朋友有钱的捧个钱场,没钱的捧个人场. 开发环境 开发环境建议大家到,安卓官网下面andriod studio.安装过程中,存在代码的文件夹,不要放在C盘.除此启动时建议等久些,最后软件没有出现红色Ⅹ.就可以开始了.安装过程中,…
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华为云最新特惠促销.华为云诸多技术大咖.特惠活动等你来撩! 文本分析 很多时候,我们会去统计一片文章中的高频词汇,以此来作为文章的关键词条,那么词频分析在python中,该用什么模块做?jieba! 第一次听到这个词就乐了,一个**"结巴",帮助我们统计词频-但仔细了解这个模块后,你会发现它…