Git 小课堂 004】的更多相关文章

rebase--变基,就是这个可能会把事情搞得一团糟的操作. 对于变基,我只能说,需要一个配合默契的团队,你们心灵想通,互相了解,然后你们会做出非常漂亮的事情.对于使用变基且几乎不会出问题的团队,我一般都是由衷的赞叹和羡慕,因为真的是一群非常好的小伙伴,这样的同事在一起工作应该是非常开心的. 某次提交 commit id 为 master,基于此,有两个分支 master'(在 master 基础上有新的提交进行了更改) 和 develop,我要把 develop 的修改放到 master' 的…
昨天我们聊了聊 Git 的文件存储,今天我们聊聊 Git 的别名.不知道你是不是熟悉别名,如果你经常使用命令行做一些事情,有一些复杂的命令,或者是一些简单的操作,往往用一些别名方法就很方便很容易,下面是我设置的几个别名: 当然,我们今天聊的依旧是 Git 的小技巧,很多用了几年 Git 的程序员,仍然不熟悉 Git 的别名,我们看看 Git 的别名究竟有哪些,用 git alias 可以查看,git 默认就有的别名不多,但是很好用: 我第一次看到这个时,我是惊呆了,原来这么好用的命令,我以前居然…
小课堂Week12 Clean Code Part1 今天的主题是函数,让我们看一个函数,找一找其中的"不整洁". 我们也根据这段代码,讨论下对于整洁代码的两个重要原则. public static String testableHtml(PageData pageData, boolean includeSuiteSetup) throws Exception { WikiPage wikiPage = pageData.getWikiPage(); StringBuffer buf…
小课堂Week11 会说话的代码 今天主要讨论下,在编码过程中和"命名"相关的问题.因为命名方法比较自由,如果要提高可读性,我们需要尽量使其符合正规的英文语法习惯. 变量/属性 通常来说,变量/属性应该是一个名词,比如message. 但有两种特殊情况要注意: 比如如下代码, List<Message> getMessageList(String name){ } messageList的写法并不好,应该使用复数的名词. List<Message> getMes…
小课堂Week10 例外处理设计的逆袭Part3 今天是<例外处理设计的逆袭>这本书阅读的第三天,也是最后一天,我们会主要通过实例,对Part2中提出的例外处理等级进行解读. Level1 Level1的要求是立即中止运行 ,所有例外都往外抛,全部报告给使用者,或者开发者使用. 案例1 我们看一个实例,如下代码存在一些什么样的问题: public int withdraw(int amount) { if (amount > 100) return -1; else return 100…
小课堂Week9 例外处理设计的逆袭Part2 今天继续阅读<例外处理设计的逆袭>这本书,我们先看两个案例: 案例1 问:如果要设计一个依据学号到数据库中查询学生资料的函数,当找不到符合条件的学习资料时候,是不是要丢出异常? 分析: 根据Part1中的介绍,例外的生命周期包括fault.error.failure,那么要抛出的首先应该是一个fault. 让我们看下案例中的这个场景属于哪类fault. 首先,这个不是component fault,因为与环境无关. 找不到资料,看起来是主观引入的…
小课堂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小课堂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小课堂Week5 Scala初探 Scala是java威力加强版. 对Java的改进 这里会结合StreamingContext.scala这个代码说明下对Java的改进方面. 方便测试方式,增加了可以指定位置的作用域. 成员变量声明,构造方法,get.set方法一体化. []表示泛型,不是<> class StreamingContext private[streaming] ( 
 sc_ : SparkContext, 
 cp_ : Checkpoint,
 batchDur…
Spark小课堂Week4 从控制台看Spark逻辑结构 层级关系: 从监控控制台,我们可以看到如下关系: 一个 Job 包含 n Stage 一个 Stage 包含 n Task Job0解决什么问题? 在控制台,有一个Job0,负责进行数据接收. 其实这个程序并没有分布式的需求,为什么要采用Job来管理: 主要解决了几个问题: 程序出现异常,Job可以自动重启. 程序运行过程中有监控.度量等需要,Job可以自动完成. 如何确定运行的节点,Job可以自动调度. 所以Job就是一个有异常恢复.可…
Spark小课堂Week3 FirstSparkApp(代码优化) RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写法,可以使用到类型推断功能,减少对于类型的定义. 优化后代码如下: return this.getInputRDD(PracticePojo.class) .mapToPair( practicePojo -> new Tuple2<>(practicePojo.get…
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 我们是怎么进行数据处理的? 批量方式处理 目前最常采用的是批量方式处理,指非工作时间运行,定时或者事件触发.这种方式的好处是逻辑简单,不影响联机业务,但是性能不行. 理想方式 对于数据处理的问题,我们的最终理想解,应该是满足业务规则正确的情况下,实时的完成处理. 平衡点 理想方式难度比较高,批量方式往往又不给力,我们可以在批量方式和理想方式中间,找到一个平衡点,就是流处理. 流处理 我们的理想情况是当不断有数据进来,就不断的进行处理.…
Spark小课堂Week1 Hello Spark 看到Spark这个词,你的第一印象是什么? 这是一朵"火花",官方的定义是Spark是一个高速的.通用的.分布式计算系统!!! 用途:进行大数据计算,这里要注意,大数据是一个相对概念,并没有绝对的量化指标,一般我们认为在业务特定场景要求下,一台机器处理不了的数据都能称为大数据. 前身:大数据计算的开山鼻祖Hadoop,Spark和Hadoop的主要区别就是更快,更通用. 功能:Spark内核设计的非常通用,具有很高的扩展性,目前已经发…
计蒜之道 百度AI小课堂-上升子序列 题目描述 给一个长度为 \(n\) 的数组 \(a\) .试将其划分为两个严格上升子序列,并使其长度差最小. 输入格式 输入包含多组数据. 数据的第一行为一个正整数 \(T\) ,表示数据组数. 每组数据包括两行: 第一行包括一个正整数 \(n\) 第二行包括一个长度为 \(n\) 的数组 \(a\). 输出格式 对于每组数据输出一行一个整数,表示两个子序列的最小长度差.若不存在划分方案则输出\(-1\) 数据范围 \(T <= 10\) 简单: \(n <…
题目背景 ​91029102 年 99 月 22 日,百度在 X 市 XX 中学举办的第一场 AI 知识小课堂大获好评!同学们对矩阵的掌握非常棒. 今天的 AI 知识小课堂的第二场开讲啦.本场 AI 知识小课堂老师教授的是数组的相关知识---上升子序列. 题目描述 给一个长度为 nn 的数组 aa .试将其划分为两个严格上升子序列,并使其长度差最小. 输入格式 输入包含多组数据. 数据的第一行为一个正整数 TT ,表示数据组数. 每组数据包括两行: 第一行包括一个正整数 nn . 第二行包括一个…
题目背景 ​91029102 年 99 月 11 日,百度在 X 市 XX 中学举办了一场 AI 知识小课堂,本场 AI 知识小课堂老师教授了一些矩阵的相关知识,因为矩阵在 AI 人工智能中也有相当的应用. 题目描述 一个同学 LSQ 在小课堂后对矩阵产生极大的感兴趣,他想到了一个对矩阵求和的问题,但是这个矩阵实在太大了,他算不过来,你能帮帮他吗? 这个矩阵长这个样子,其右方和下方是没有边界的,但是不要担心,他并不要求你对整个矩阵求和,他只想知道,第 aa 行第 cc 列的格子为左上,第 bb …
本期[云原生小课堂]将带你入门PXC--公认的MySQL集群优选方案.…
前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较推荐使用命令行的,因为命令行是原生的客户端,当熟悉了命令行以后,使用效率并不会比GUI低.而且我是从GUI(Tortoise SVN)转命令行的,刚开始的时候也是吐槽命令行的“非人性化”,但我走出了舒适区,真正使用起命令行后,我才发现了自己之前的想法是肤浅的. 指令别名 指令别名就是给一些常用的指令…
分享git的几个小技巧,后面会根据使用补充.目前包括git撤销本地修改.git回退到前n个版本.git多用户提交冲突解决.git 命令简化.欢迎大家补充^_* 1.git撤销本地修改 git reset --hard origin/master git pull 2.git回退到前n个版本 如下为向前回退3个版本: git reset –hard HEAD~3 3.git多用户提交冲突一 场景:用户UserA修改了文件File1,用户UserB也修改了文件File1并成功merge到了服务器上,…
软件开发基本都是多个feature分支并行开发,而在上线前有可能某个分支的开发或测试还没有完成,又或者是产品调整,取消了该分支功能的上线计划,我们在release前不合并该分支即可,然而如果该分支中的某些小调整却需要上线,我们就需要把其中的部分文件合并到release分支. 在之前遇到这种情况通常都是copy/paste,既麻烦出错率又高,自从我掌握了新姿势,整个世界仿佛都不一样了(暴漫微笑 在feature分支commit 切换至release分支 从feature分支检出相应文件 #bran…
编程范式巡礼(最终季)--超级范式 本周是编程范式系列的最后一次分享,让我们拉长视角,看向远方,进入"元编程"的领域,在<冒号课堂>中起了个很酷的名字:"超级范式". 从通用语言到领域语言 先给大家做一个小练习: 以下哪些属于编程语言: A.Java B.Html C.Spring Bean Definition D.Comment 答案是ABC,从中,我们可以感受到编程语言的一些特性: 必需:有语法结构.可运行 可选:可编译.可调试.可扩展 类似人类语…
编程范式巡礼第一季 三大基石 最近迷上了一些哲史类书籍,回望过去.放眼未来,往往沉浸在其思维之美中无法自拔.计算机编程是一门非常年轻的学科,沉淀不足也是年轻的一个侧面,在编程领域,有足够思想深度的作品并不多.这本书的作者老冒我觉得就是一个有深度的人.这周开始,给大家讲一下他的好书<冒号课堂>. 编程范式是什么? 在年底的各大媒体的展望中,我发现编程能力已经悄悄然占据了比较重要的位置,被认为是一种影响未来的能力.编程从宏观上讲就是操作计算机工作的方法,而从微观上讲是寻求一种机制,将指定的输入转换…
早就听说了GitHub的强大. 一直没有机会去看, 在公司实习的几个月里也没机会接触SVN和Git,  可是抱着对Linus大神的崇敬, 和开源的崇敬之情.  趁着不忙的几天, 来学习一下Git. 希望以后可以用到.  事实上Git还是十分好学. 用不了多久, 你就能体会到它的高效简洁之美! 这里我是在本地虚拟机Centos来学习. . . 仅仅是学习他的简单原理和操作, 并没有真正的尝试项目. 同一时候借鉴了网上一些有经验的前辈们的理解.. 来自己操作和学习 非常多地方简单的样例我都有做图解,…
git checkout会带上当前changed但没有commit的内容到目标分支 git stash用来暂存当前改动,并且会退代码到上一个commit:git stash pop则取出所stash的代码…
在我们学习钢琴和学习使用Overture时,要学习如何弹奏和使用滑音.那么我们先来看看什么是滑音,如何使用钢琴演绎,在Overture里滑音又在哪里呢? 滑音,在音乐术语中通常指一种装饰音和演奏指法.在语音学术语中指发音器官移向或移离某一发音动作的过渡音.滑音分为先滑音.后滑音.连接滑音和转滑音.滑音作为装饰音的一种,用波纹线或带箭头的弧线作为标记.从一音向上或向下滑至另一音.分为上滑音和下滑音. 那我们如何用钢琴演绎滑音呢?每个人使用的方法都不大一样,但是大部分人在白键上弹奏从高往低的滑音时使…
1 git提交时如何忽略一些文件: 在git根目录下添加,然后提交,就可以使用了,详细的语法详见 https://github.com/github/gitignore github提供了一个通用的.gitignore库,如果懒得自己设置,可以直接在这个库里找找有没有你想要的忽略文件. 2 提交时候报错:提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交. 原因可能是之前上传时创建的.git文件被删除或更改,或者其他人在github上提交过代码. 解决方案如下:1.强行上传 git push…
安装 git sudo apt-get install git 查看版本信息: git --version 演示: 创建个项目 创建文件夹 如果要对这个文件夹进行版本控制 先进到这个文件夹中, 命令查询: git --help 创建个空的仓库:  git init ls -al 可以查看到隐藏文件 配置个人信息,便于在提交文件时在该文件中生成备注, 查看: more .git/config 写入个文件 查看:git status 这是个初次创建的文件,本地工作区的内容是做不到版本回退的, 把文件…
git账号:eggsy.cao@pictureworks.biz eggsycao 1.新建文件夹,并进入,命令窗口:git init 2.提交文件 git add fileName(git add *) ---想反悔:git reset HEAD 文件名 git commit -m "add some example remote" 3.查看git状态 git  status 4.查看提交历史  git log 5.回滚 git log (git reflog) git reset…