Gitignore
规则 mtk 过滤整个文件夹 *.zip 过滤所有.zip文件 /mtk/do.c 过滤某个具体文件 !*.zip 反忽略 !/mtk/one.txt反忽略 *.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ # 忽略 build/ 目录下的所有文件 doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
Git常用命令
Git常用命令 新建代码库 在当前目录新建一个Git代码库 > git init 新建一个目录,将其初始化为Git代码库 > git init [Project_name]
maven基础
Maven库: http://repo2.maven.org/maven2/ Maven依赖查询: http://mvnrepository.com/ Maven常用命令: 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName 创建Maven的Web项目: ​ mvn archetype:create ​ -DgroupId=packageName ​ -DartifactId=webappName ​ -DarchetypeArtifactId=maven-archetype-webapp
SVN常用命令
常用SVN命令 svn checkout 签出,创建新的工作拷贝. svn info 搞清楚工作拷贝从哪里来的. svn update 从项目仓库中更新目录中的所有文件 svn add 添加文件的目录到项目仓库中 svn propset 设置文件的属性 svn add 添加文件 svn delete 删除文件 svn move src.file dist.file 移动文件 svn commit -m ‘提交信息’ svn log filename 查看指定文件的历史 svn diff 展示文件版本之间的差异. 在版本之间找差异 svn diff -r19:21 filename 使用-r选项来指定一个版本范围 svn revert 删掉本地改动并使用项目仓库中的文件版本 svn resolved 修正冲突后执行 svn blame 显示每个文件的每一行最后的版本, 以及做出这个改动的人 svn update 获取最新的代码 svn merge -r 27:26 filename 移除file中版本27的改动 svn lock filename 给文件加锁
UML
基础知识 UML图 类图 表述系统中各个对象的类型以及其间存在的各种静态关系.类图也示明类中的特性和操作以及用于对象连接方式的约束.
代码之外的生存指南
为何这本书与你先前读过的任何书籍都迥然不同 讲述如何成为一名优秀的软件开发人员的书,优秀开发人员指的是那些能够把控自己的职业生涯,达成目标,享受生活的人。本书并不再讨论你能做什么,而是讨论你自己。关乎你的职业生涯,你的生活,你的身体,你的思想及你的灵魂。 职业生涯:学习如何主动管理自己的职业生涯,从而达到自己追寻的结果。 自我营销:学习如何推销自己。 如何打造个人品牌,如何打造一个成功的博客,如何通过演讲,教学,著书立说的方式让你扬名立万。 学习:学习如何学习,学习如何自觉 生产力:关于如何让工作更加富有成效的 理财:学习如何有效地管理你赚到的财。 健身: 精神: 职业 你所能犯的最大错误就是相信自己是在为别人工作。这样一来你对工作的安全感已然尽失。职业发展的驱动力一定是来自个体本身。记住:工作是属于公司的,而职业生涯却是属于你自己的。体验决策过程:你要决定自己想要从软件开发这个职业中获得什么,以及如何去获得。
学习
提问 提问的智慧 提问的智慧http://www.catb.org/~esr/faqs/smart-questions.html 提问的智慧https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md 学习新技术的逻辑 这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题。这个问题非常关键,也就是说,你在学习一个技术的时候,需要知道这个技术的成因和目标,也就是这个技术的灵魂。如果不知道这些的话,那么你会看不懂这个技术的一些设计理念。 这个技术的优势和劣势分别是什么,或者说,这个技术的 trade-off 是什么。任何技术都有其好坏,在解决一个问题的时候,也会带来新的问题。另外,一般来说,任何设计都有 trade-off(要什么和不要什么),所以,你要清楚这个技术的优势和劣势,以及带来的挑战。 这个技术适用的场景。任何技术都有其适用的场景,离开了这个场景,这个技术可能会有很多槽点,所以学习技术不但要知道这个技术是什么,还要知道其适用的场景。没有任何一个技术是普适的。注意,所谓场景一般分别两个,一个是业务场景,一个是技术场景。 技术的组成部分和关键点。这是技术的核心思想和核心组件了,也是这个技术的灵魂所在了。学习技术的核心部分是快速掌握的关键。 技术的底层原理和关键实现。任何一个技术都有其底层的关键基础技术,这些关键技术很有可能也是其它技术的关键基础技术。所以,学习这些关键的基础底层技术,可以让你未来很快地掌握其它技术。可以参看我在 CoolShell 上写的 Docker 底层技术那一系列文章。 已有的实现和它之间的对比。一般来说,任何一个技术都会有不同的实现,不同的实现都会有不同的侧重。学习不同的实现,可以让你得到不同的想法和思路,对于开阔思维,深入细节是非常重要的。
精通Git(2)
精通Git Git基础 获取Git仓库 $ git init 记录每次更新到仓库 git add . git commit -m 'commit mesg' 查询提交历史 #+END_SRC git log #+END_SRC
重构2
开始 本章重构: 将原函数分解成一组嵌套的函数 分离计算逻辑与输出格式化逻辑 为计算器引入多态性来处理计算逻辑 好的代码的检验标准就是人们是否能构轻易地修改它注: 小步累积 重构的原则 何谓重构 名: 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本. 动: 使用一系列重构手法,在不改变软件可观察行为的前提下,高速其结构. 重构时不添加新功能,添加新功能时不重构. 为何重构 改进软件的设计 使软件更容易理解 帮助找到BUG 提高编程速度 何时重构 事不过三, 三则重构
About
I won’t be a loser!!!