摘要: 原文链接:http://blog.jobbole.com/25440/写这篇文章源于某条微博评论,原内容大概是一个快40岁的人还在当程序员写代码,评论内容大概是:有些人就喜欢当程序员写代码,无可厚非。但是,现实情况中是否真的能做到“无可厚非”呢?我思考了一阵子以后,就有了这篇文章,希望与所有职场人共勉。首先我要申明一点,我不是砖家,也不是牛人,我只是一名普通的IT从业者,本文只是我对我们IT人的职业生涯规划的一些观点和意见,如果大家有不同意见,或者觉得我的观念欠妥,欢迎讨论,但是拒绝谩骂、吵架和攻击,谢谢。简单介绍一下我的情况,我是03级的本科生,07年毕业后一直从事软件方面工作,现在是一名项 阅读全文
posted @ 2012-09-06 20:52 loverszhaokai 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 原文连接:http://blog.jobbole.com/23398/如果你严肃对待编程,就必定会使用”版本管理系统”(Version Control System)。眼下最流行的”版本管理系统”,非Git莫属。相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有代码的物理拷贝,而Git只生成一个指向当前版本(又称”快照”)的指针,因此非常快捷易用。但是,太方便了也会产生副作用。如果你不加注意,很可能会留下一个枝节蔓生、四处开放的版本库,到处都是分支,完全看不出主干发展的脉络。Vinc 阅读全文
posted @ 2012-09-06 20:01 loverszhaokai 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://blog.jobbole.com/25775/起步本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为什么你应该立即开始使用它。1.1 关于版本控制什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任何类型的文件进行版本控制。如果你是位图形或网页设计师,可能会需要保存某一幅图片 阅读全文
posted @ 2012-09-06 19:48 loverszhaokai 阅读(151) 评论(0) 推荐(0) 编辑
摘要: Git 分支几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在瞬间完成,并且在不同分支间切换起来也差不多一样快。和许多其他版本控制系统不同,Git 鼓励在工作流程中频繁使用分支与合并,哪怕一天之内进行许多次都没有关系。理解分支的概念并熟练 阅读全文
posted @ 2012-09-06 19:46 loverszhaokai 阅读(119) 评论(0) 推荐(0) 编辑
摘要: Git 基础读完本章你就能上手使用 Git 了。本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令。读完本章,你就能初始化一个新的代码仓库,做一些适当配置;开始或停止跟踪某些文件;暂存或提交某些更 新。我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件;如何既快且容易地撤消犯下的小错误;如何浏览项目的更新历史,查看某两次更新之间的差异;以及如何从远程仓库 拉数据下来或者推数据上去。2.1 取得项目的 Git 仓库有两种取得 Git 项目仓库的方法。第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第二种是从已有的 Gi 阅读全文
posted @ 2012-09-06 19:46 loverszhaokai 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 服务器上的 Git到目前为止,你应该已经学会了使用 Git 来完成日常工作。然而,如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度。另外,你也一定希望合作者们即使在 自己不开机的时候也能从仓库获取数据 — 拥有一个更稳定的公共仓库十分有用。因此,更好的合作方式是建立一个大家都可以访问的共享仓库,从那里推送和拉取数据。我们将把这个仓库称为 “Git 服务器”;代理一个 Git 仓库只需要花费很少的资源,几乎从不需要整个服务器来支持它的运行。架设一台 Git 服务器并不难。第一步是选择与服务器 阅读全文
posted @ 2012-09-06 19:45 loverszhaokai 阅读(348) 评论(0) 推荐(0) 编辑
摘要: Git 工具现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程。你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力。接下来你将领略到一些 Git 可以实现的非常强大的功能,这些功能你可能并不会在日常操作中使用,但在某些时候你也许会需要。6.1 修订版本(Revision)选择Git 允许你通过几种方法来指明特定的或者一定范围内的提交。了解它们并不是必需的,但是了解一下总没坏处。单个修订版本显然你可以使用给出的 SHA-1 值来指明一次提交,不过也有更加人性化的方法来做同样的事。本节概述了指明单个提交的诸多方法。简短的SHA 阅读全文
posted @ 2012-09-06 19:44 loverszhaokai 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库。经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令。接下来,我们要学习下如何利用 Git 来组织和完成分布式工作流程。特别是,当作为项目贡献者时,我们该怎么做才能方便维护者采纳更新;或者作为项目维护者时,又该怎样有效管理大量贡献者的提交。5.1 分布式工作流程同传统的集中式版本控制系统(CVCS)不同,开发者之间的协作方式因着 Git 的分布式特性而变得更为灵活多样。在集中式系统上,每个开发者就像是连接在集线器上的节点,彼此的工作方式大体相像。而在 Git 网络中,每个开发者同时扮演着节点和 阅读全文
posted @ 2012-09-06 19:44 loverszhaokai 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 自定义 Git到目前为止,我阐述了 Git 基本的运作机制和使用方式,介绍了 Git 提供的许多工具来帮助你简单且有效地使用它。 在本章,我将会介绍 Git 的一些重要的配置方法和钩子机制以满足自定义的要求。通过这些工具,它会和你和公司或团队配合得天衣无缝。7.1 配置 Git如第一章所言,用git config配置 Git,要做的第一件事就是设置名字和邮箱地址:12$ git config --global user.name "John Doe"$ git config --global user.email johndoe@ example.com从现在开始,你会了解 阅读全文
posted @ 2012-09-06 19:43 loverszhaokai 阅读(424) 评论(0) 推荐(0) 编辑
摘要: Git 与其他系统世界不是完美的。大多数时候,将所有接触到的项目全部转向 Git 是不可能的。有时我们不得不为某个项目使用其他的版本控制系统(VCS, Version Control System ),其中比较常见的是 Subversion 。你将在本章的第一部分学习使用git svn,Git 为 Subversion 附带的双向桥接工具。或许现在你已经在考虑将先前的项目转向 Git 。本章的第二部分将介绍如何将项目迁移到 Git:先介绍从 Subversion 的迁移,然后是 Perforce,最后介绍如何使用自定义的脚本进行非标准的导入。8.1 Git 与 Subversion当前,大多数 阅读全文
posted @ 2012-09-06 19:42 loverszhaokai 阅读(621) 评论(0) 推荐(0) 编辑
摘要: Git 内部原理不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式。我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的,不过也有人认为这些内容对于初学者来说可能难以理解且过于复杂。正因如此我把这部分内容放在最后一章,你在学习过程中可以先阅 读这部分,也可以晚点阅读这部分,这完全取决于你自己。既然已经读到这了,就让我们开始吧。首先要弄明白一点,从根本上来讲 Git 是一套内容寻址 (content-addressable) 文件系统,在此之上提供了一个 VCS 用户界面。马上你就会学到这意味着什么。早期的 Git (主 阅读全文
posted @ 2012-09-06 19:41 loverszhaokai 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://blog.jobbole.com/26314/译注:这篇文章可能又会引起 C++ 程序员的诸多不适,就作者本文所描述的问题来看,某些“C++的问题”其实是可以有C++的解决方案的。请参阅侵入式和非侵入式容器。 但是考虑到ZeroMQ是一个很底层的高性能网络库(ZeroMQ的目标是纳入Linux内核中,这也应该是改用C的一大原因,毕竟目前的ZeroMQ是 用C++实现的),对错误处理、内存分配次数、并发效率等有着极高的要求,这些特定的限制往往不是所有的C++程序员所常见的应用场景。因此希望各位在阅 读时能多从作者的角度来考虑这些问题,而不是一味地批判作者的C++编程实践能 阅读全文
posted @ 2012-09-06 17:06 loverszhaokai 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://blog.jobbole.com/26451/现在距离我首次决定要创建Buffer这个应用已经将近2年时间里,在此之前的一年半时间里我一直为前一个创业项目而忙碌,就在那时,我开始发现一些规律,一些在创业过程中能影响你的生活起起伏伏的规律。就在那个时期,我学到了一个最重要的事情:当快乐时我做事做的最好。这几乎能体现在各个方面。如果我快乐着,我编程时会更有工作效率,我能更好的解决用户的问题,我发现我还能更容易集中注意力。就我而言,我发现有几个非常好的习惯能让我保持持续不断的快乐的感觉。而且,每当我的情绪有低落时,这些习惯是使我能迅速恢复到之前快乐水平的灵丹妙药。下面就是我坚 阅读全文
posted @ 2012-09-06 16:46 loverszhaokai 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://blog.jobbole.com/26435/File Navigation – Eclipse ShortcutsCTRL SHIFT R – Open a resource. You need not know the path and just part of the file name is enough.CTRL E – Open a file (editor) from within the list of all open files.CTRL PAGE UP or PAGE DOWN – Navigate to previous or next file 阅读全文
posted @ 2012-09-06 16:37 loverszhaokai 阅读(182) 评论(0) 推荐(0) 编辑