小课堂Week11 会说话的代码】的更多相关文章

小课堂Week11 会说话的代码 今天主要讨论下,在编码过程中和"命名"相关的问题.因为命名方法比较自由,如果要提高可读性,我们需要尽量使其符合正规的英文语法习惯. 变量/属性 通常来说,变量/属性应该是一个名词,比如message. 但有两种特殊情况要注意: 比如如下代码, List<Message> getMessageList(String name){ } messageList的写法并不好,应该使用复数的名词. List<Message> getMes…
Spark小课堂Week3 FirstSparkApp(代码优化) RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写法,可以使用到类型推断功能,减少对于类型的定义. 优化后代码如下: return this.getInputRDD(PracticePojo.class) .mapToPair( practicePojo -> new Tuple2<>(practicePojo.get…
小课堂Week12 Clean Code Part1 今天的主题是函数,让我们看一个函数,找一找其中的"不整洁". 我们也根据这段代码,讨论下对于整洁代码的两个重要原则. public static String testableHtml(PageData pageData, boolean includeSuiteSetup) throws Exception { WikiPage wikiPage = pageData.getWikiPage(); StringBuffer buf…
小课堂Week10 例外处理设计的逆袭Part3 今天是<例外处理设计的逆袭>这本书阅读的第三天,也是最后一天,我们会主要通过实例,对Part2中提出的例外处理等级进行解读. Level1 Level1的要求是立即中止运行 ,所有例外都往外抛,全部报告给使用者,或者开发者使用. 案例1 我们看一个实例,如下代码存在一些什么样的问题: public int withdraw(int amount) { if (amount > 100) return -1; else return 100…
小课堂Week8 例外处理设计的逆袭Part1 今天和大家讲一本书,书名是<例外处理设计的逆袭>. 为什么想讲这本书,是因为,例外处理在程序代码中到处存在,但是这些到底该如何写好,总觉得有些懵懵懂懂.正好听到Jackson老师的推荐,读到了这本书,如获甘霖,好东西和大家分享. 什么是例外处理 这本书的作者是一位台湾的大牛叫Teddy Chen.台版和港版的书有一个比较好的习惯,就是对于英文的技术词汇,解释但不翻译,因为中文和英文在某些词汇的描述上强度是不同的,直译往往会丢失一部分的含义,所以先…
Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() 初始需求 需求:支持Json数据源加载 具体:输入一个path,需要返回一个Relation, Relation中提供scan()和write()两个方法 示意代码: class Context{ public Relation json(String path){ return new Relat…
Spark小课堂Week5 Scala初探 Scala是java威力加强版. 对Java的改进 这里会结合StreamingContext.scala这个代码说明下对Java的改进方面. 方便测试方式,增加了可以指定位置的作用域. 成员变量声明,构造方法,get.set方法一体化. []表示泛型,不是<> class StreamingContext private[streaming] ( 
 sc_ : SparkContext, 
 cp_ : Checkpoint,
 batchDur…
Spark小课堂Week1 Hello Spark 看到Spark这个词,你的第一印象是什么? 这是一朵"火花",官方的定义是Spark是一个高速的.通用的.分布式计算系统!!! 用途:进行大数据计算,这里要注意,大数据是一个相对概念,并没有绝对的量化指标,一般我们认为在业务特定场景要求下,一台机器处理不了的数据都能称为大数据. 前身:大数据计算的开山鼻祖Hadoop,Spark和Hadoop的主要区别就是更快,更通用. 功能:Spark内核设计的非常通用,具有很高的扩展性,目前已经发…
题目背景 ​91029102 年 99 月 22 日,百度在 X 市 XX 中学举办的第一场 AI 知识小课堂大获好评!同学们对矩阵的掌握非常棒. 今天的 AI 知识小课堂的第二场开讲啦.本场 AI 知识小课堂老师教授的是数组的相关知识---上升子序列. 题目描述 给一个长度为 nn 的数组 aa .试将其划分为两个严格上升子序列,并使其长度差最小. 输入格式 输入包含多组数据. 数据的第一行为一个正整数 TT ,表示数据组数. 每组数据包括两行: 第一行包括一个正整数 nn . 第二行包括一个…
题目背景 ​91029102 年 99 月 11 日,百度在 X 市 XX 中学举办了一场 AI 知识小课堂,本场 AI 知识小课堂老师教授了一些矩阵的相关知识,因为矩阵在 AI 人工智能中也有相当的应用. 题目描述 一个同学 LSQ 在小课堂后对矩阵产生极大的感兴趣,他想到了一个对矩阵求和的问题,但是这个矩阵实在太大了,他算不过来,你能帮帮他吗? 这个矩阵长这个样子,其右方和下方是没有边界的,但是不要担心,他并不要求你对整个矩阵求和,他只想知道,第 aa 行第 cc 列的格子为左上,第 bb …
小课堂Week9 例外处理设计的逆袭Part2 今天继续阅读<例外处理设计的逆袭>这本书,我们先看两个案例: 案例1 问:如果要设计一个依据学号到数据库中查询学生资料的函数,当找不到符合条件的学习资料时候,是不是要丢出异常? 分析: 根据Part1中的介绍,例外的生命周期包括fault.error.failure,那么要抛出的首先应该是一个fault. 让我们看下案例中的这个场景属于哪类fault. 首先,这个不是component fault,因为与环境无关. 找不到资料,看起来是主观引入的…
Spark小课堂Week6 启动日志详解 作为分布式系统,Spark程序是非常难以使用传统方法来进行调试的,所以我们主要的武器是日志,今天会对启动日志进行一下详解. 日志详解 今天主要遍历下Streaming的启动日志. 授权等操作 Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties 16/07/19 15:06:04 INFO SparkContext: Running Spark ve…
Spark小课堂Week4 从控制台看Spark逻辑结构 层级关系: 从监控控制台,我们可以看到如下关系: 一个 Job 包含 n Stage 一个 Stage 包含 n Task Job0解决什么问题? 在控制台,有一个Job0,负责进行数据接收. 其实这个程序并没有分布式的需求,为什么要采用Job来管理: 主要解决了几个问题: 程序出现异常,Job可以自动重启. 程序运行过程中有监控.度量等需要,Job可以自动完成. 如何确定运行的节点,Job可以自动调度. 所以Job就是一个有异常恢复.可…
Spark小课堂Week3 FirstSparkApp 问题:Java有哪些数据结构 大致有如下几种,其中List与Map是最重要的: List Map Set Array Heap Stack Queue Tree 练习:构造一个1-5的List,把他们打印出来 写法1 List<Integer> input = Arrays.asList(1, 2, 3, 4, 5); for (int i = 0; i < input.size(); i++) { System.out.print…
Spark小课堂Week2 Hello Streaming 我们是怎么进行数据处理的? 批量方式处理 目前最常采用的是批量方式处理,指非工作时间运行,定时或者事件触发.这种方式的好处是逻辑简单,不影响联机业务,但是性能不行. 理想方式 对于数据处理的问题,我们的最终理想解,应该是满足业务规则正确的情况下,实时的完成处理. 平衡点 理想方式难度比较高,批量方式往往又不给力,我们可以在批量方式和理想方式中间,找到一个平衡点,就是流处理. 流处理 我们的理想情况是当不断有数据进来,就不断的进行处理.…
三天看完一本书,说出来我都不信,不过我还真是史无前例的做到了, 现在分享一下我的收获,希望大家拍砖,共同讨论一下. <<会说话的代码>>一书是我们BJDP小组里的王洪亮老师的一本著作,第一次听王老师分享时,就被王老师的技术折服了,如果大家在北京,有兴趣的话可以参与我们这个"北京设计模式学习小组(BJDP)"(免费参与哦), 相信每一个人都会有所收获 . 还是说回书,这本书主要阐述了怎么样让我们写的代码具有自我的表达能力,让每一个程序员都能看懂,而且易扩展和维护.…
开篇语 寒假发了一篇练手文章,不出意外地火了: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 后来又发了BUG修复的版本,出乎意料的火了: 简年18: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复 后来又新增了一个模块,嗯,这个也火了: 微信小程序(有始有终,全部代码)开发--- 新增模块: 图片选取以及拍照功能 现在开学了,我又写了点东西: 微信小程序(有始有终,全部代码)开发--- 新增[录音]以及UI改进 正文 一.U…
开篇语 前几天发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 后来又发了BUG修复的版本: 简年18: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复 本来以为这篇文章要沉底了.结果,一不小心貌似又出事了: 经过两天的同学聚会,我今天下午五点多到家,然后马不停蹄的开始进行了新模块的测试.这次有点不知道干嘛,但是突然想到要不要调用一下手机的硬件模块?最经典的自然就是照片了吗.微信的那个拍照功能看的我还很眼馋的!所以回来…
开篇语 昨晚发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 然后上午起来吃完午饭之后,我就准备继续开工的,但是突然的,想要看B站.然后在一股神奇力量的推动下,我找到了它: <克苏鲁的呼唤 2005 580P中字 经典名篇完美还原> 然后促成了吃完午饭之后,沉迷其中不可自拔.下午写到四点半,才最终完成了我的近四千字的心血之作: 简年16: 初涉<克苏鲁的呼唤>--克苏鲁神话体系入门 可惜明珠暗投: 心灰意冷之下,百无聊赖的打…
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 王翔 清风Python PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 通过委托人的述说,专门查了一下深圳最近的天气,保持在10-20度之间,带羽绒服的动作确实有些匪夷所思.因为只是怀疑不能直白的查岗,该如…
计蒜之道 百度AI小课堂-上升子序列 题目描述 给一个长度为 \(n\) 的数组 \(a\) .试将其划分为两个严格上升子序列,并使其长度差最小. 输入格式 输入包含多组数据. 数据的第一行为一个正整数 \(T\) ,表示数据组数. 每组数据包括两行: 第一行包括一个正整数 \(n\) 第二行包括一个长度为 \(n\) 的数组 \(a\). 输出格式 对于每组数据输出一行一个整数,表示两个子序列的最小长度差.若不存在划分方案则输出\(-1\) 数据范围 \(T <= 10\) 简单: \(n <…
本期[云原生小课堂]将带你入门PXC--公认的MySQL集群优选方案.…
一直忙着写毕设,上一次写博客还是元旦,大半年过去了.... 后面会不断分享各种新项目的源码与技术.欢迎关注一起学习哈! 记录一次部署微信小程序Node.js后端接口代码的详细过程,使用宝塔来部署. 我们先来看一张图片 这是采用前后端分离的开发模式来开发微信小程序,跟云开发有区别.云开发没有"后端应用"这一块.我们这篇文章就是讲解怎么部署"后端应用"这一块的接口代码. @ 目录 材料准备 买轻量应用服务器(不能乱买) 备案域名 部署过程 登录宝塔管理界面 安装PM2…
编程范式巡礼(最终季)--超级范式 本周是编程范式系列的最后一次分享,让我们拉长视角,看向远方,进入"元编程"的领域,在<冒号课堂>中起了个很酷的名字:"超级范式". 从通用语言到领域语言 先给大家做一个小练习: 以下哪些属于编程语言: A.Java B.Html C.Spring Bean Definition D.Comment 答案是ABC,从中,我们可以感受到编程语言的一些特性: 必需:有语法结构.可运行 可选:可编译.可调试.可扩展 类似人类语…
编程范式巡礼第一季 三大基石 最近迷上了一些哲史类书籍,回望过去.放眼未来,往往沉浸在其思维之美中无法自拔.计算机编程是一门非常年轻的学科,沉淀不足也是年轻的一个侧面,在编程领域,有足够思想深度的作品并不多.这本书的作者老冒我觉得就是一个有深度的人.这周开始,给大家讲一下他的好书<冒号课堂>. 编程范式是什么? 在年底的各大媒体的展望中,我发现编程能力已经悄悄然占据了比较重要的位置,被认为是一种影响未来的能力.编程从宏观上讲就是操作计算机工作的方法,而从微观上讲是寻求一种机制,将指定的输入转换…
Postman这款工具可以让你很方便的测试你的Web API,那如果你实在是没办法用Postman,必须手写代码,又或者你有别的需求是Postman没法实现的,你必须写一个特殊的script或App来测试你的接口,那这时候是不是Postman就没有用武之地了? 我来个你share一个小技巧吧,管不管用你说的算. 假设我现在要这样来测我的接口: 我们要设置用户名和密码: 我们要设置参数和Header: 如果让你写代码来生成这个HTTP Request是不是感觉有点麻烦? 如果你也是个懒人,就打开P…
如何给自己的网站添加方便快捷的"返回顶部"小图标按钮呢?如下图: JS源代码: /** * JavaScript脚本实现回到页面顶部示例 * @param acceleration 速度 * @param stime 时间间隔 (毫秒) **/ function gotoTop(acceleration,stime) { acceleration = acceleration || 0.1; stime = stime || 10; var x1 = 0; var y1 = 0; va…
工作中公司业务需要的微信小程序用户签字功能 先看效果图: wxml: <view class="wrapper"> <view class="handBtn"> <image catchtap="selectColorEvent" src="{{ selectColor === 'black' ? '../../images/color_black_selected.png' : '../../images…
代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了. 代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨:但是如果有足够的时间开发.维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的. 代码优化的目标是 减小代…
背景介绍 今天上午,在调用同事昨天给的算法程序时出了点问题,于是请同事来我这边一起调代码.大致场景描述如下: 我:B神,你昨天下班前给我的那个算法程序我这边调用的时候出现错误啦,请你过来看下呗. 同事(B神): 大约10分钟后,A神手拿咖啡缓步走过来说:你找下x类下的y方法,看看输出的对么... 于是我在 Pycharm 中小心翼翼的找到B神的算法程序包,按照B神“清澈地”英文发音指导下,在“”茫茫“”多的文件.类和方法接口层级中苦苦找寻着... 突然,脑子里闪现出一个想法,怎样才能在文件中显示…