linux + github + notes + habit

大家可以看到我上一篇文章加了密码,事情是这样的,听我解释。这是我们课内的作业,贴上来的东西分分钟就是我自己的实验报告,并且deadline还远着。然后我是很相信我同学的“正确使用搜索引擎”的能力的,并且我之前装了一个插件可以帮助google搜索抓取我的页面使之更易被检索到,所以,这只是为了避免不必要的悲剧发生,等到deadline过去以后自然会解放权限。密码是,我的高中校名的拼音。如果不知道是众多校名称呼的哪一个,多试几次就好了,毕竟我只读过一个高中。

 

孟祥武孟爷爷老是说:“你们不能只用一个操作系统啊,除了windows,还应该多试试别的。如果只用一个操作系统,你就会觉得windows就是操作系统,操作系统就是windows——这是不对的。”

类似的,孟爷爷还有“不能只学一门语言啊”,“不能只用一种浏览器啊”的谆谆教导。

 

于是下定决心在自己电脑上装了个虚拟机,先装了ubuntu kylin 15.04,但是觉得不流畅,网上评价也很一般,于是转ubuntu kylin 14.04,使用至今感觉不错。之所以不用原版ubuntu,是因为麒麟版本对于中文更加友好,并且跟原版也没什么差别。网上有人在撕麒麟是不是国产的,其实明显它并不是国产,说是联合开发,实际上kylin只是ubuntu一个子分支,用起来不用心存芥蒂。

顺手贴个很著名的很洗脑的文章,《完全用Linux工作》。书架上还有一本《鸟哥私房菜》嗷嗷待操。

 

转型的过程总体还算顺利,装codeblocks写c++,然后g++和gcc系统是没有自带的,所以顺手装了好多东西。换语言的时候出了问题,出了一个“源引用”错误(提示信息: “ubuntu kylin It is impossible to install or remove any software”),需要打开某个属性栏然后勾选或者是删除某个选项才行,具体的记不清了(翻了一下历史记录没找到),似乎没什么遇到跟我一样的情况;再就是选择简体中文的时候,如下图

QQ图片20151026204344

一开始那个“汉语(中国)”的选项是在下面,而且是浅色的,常识告诉我它仍不能选。google了以后发现正确的打开方式是:点住他、拖动到语言栏的最上方。太魔性,别人不跟我说的话真是一辈子都找不出来毛病。

eclipse至今没有建起来,原因是我搜的那个办法有一步是在shell内使用vim修改一个源文件,当场我就萌比了。还有github理论上是可以直接用shell去push和pull的然而也还没学会(因为暂时还不知道怎么用shell往git直接提交,所以我是开了github的网页然后直接粘上去的)。shell命令也基本不懂,而这才是linux的精髓。以上,列入TODOLIST了。

linux部分大概就这些,使用了半个月,用户体验非常好。因为里面没有qq没有qq音乐也没有全家桶们没有弹窗们,没有任何可以打扰我的东西,做事效率高一点,并且是不是能骗取路人们的仰慕,无形装逼。

 

之前在windows上配好了github没用过,这次在linux上也配了一下(但是还不懂怎么push和pull),然后写作业的时候就真正用github做版本管理了。放几张效果图

QQ图片20151026205638

github的界面简洁明了

QQ图片20151026205529

上图为各个版本

QQ图片20151026205744

版本管理非常方便,点开以后可以看到当前版本与上一版本相比做了什么修改,红色行为原来的写法,其中深红色(此图没有)是具体的修改或删除的地方;绿色行为该版本的修改,深绿色标明了修改或添加的地方。没有改动的代码段自动折叠。最左有新旧两版本的行号对照。支持多人管理同一文档,每一个改动都会标明修改者id、修改内容的题目、修改内容的简要说明等关键信息。

实在很强大,难怪田队年初的时候决心在ACM校队内普及git的用法。今年北邮的校赛的出题验题工作就都是在git上完成的。

总之,github是一个强大的工具。

 

最后做一点个人的读书笔记。

关于如何写注释。

1.不要为那些从代码本身就能快速推断的事实写注释。eg:构造函数就不用再写 //constructor了

2.不要给不好的名字加注释,即注释不应用于粉饰不好的名字。一个好的名字比一个好的注释更重要,因为在任何用到这个函数的地方都能看见它。好代码 > 坏代码 + 好注释。

3.不要写废话。如果一定要解释一个函数,请尝试给出它的逻辑细节。

4.记录你的思想,克服“作者心理阻值”。例如,假如你正在写一个函数,然后心想:“哦,天啊,如果一旦这东西在列表中有重复的话会变得很难处理的”,不如把它写下来:

It does help. 并且最后review的时候你可以尝试改一下这句话,把具体问题解释得更清楚一点。

5.在代码中加入注释记录你对代码有价值的见解。例如,

6.为代码中的瑕疵写注释。

尝试使用标记。书里给出一种流行的写法。“TODO”:我还没有处理的事情。“FIXME”:已知的无法运行的代码。“HACK”:对于一个问题不得不采用的比较粗糙的解决方案。“XXX”:危险!这里有重要的问题。

7.当定义常量时,通常背后有一个关于它是什么或者为什么它是这个值的“故事”。

这可以让读代码的人有了调整这个值的指南。经验告诉我们,很多常量可以通过加注释得到改进,而这只不过是匆匆记下你在决定这个常量值时的想法而已。

8.可能需要一些高级别的注释,比如文件级别的:

——以上摘自DB & TF 的<The Art of Readable Code>

 

45个习惯。

7.懂得丢弃。敏捷的根本之一就是拥抱变化。在学习一门新技术的时候,多问问自己,是否把太多旧的态度和方法用在了新技术上。例如,学习一门新的编程语言时,应该使用推荐的集成开发环境,而不是你过去开发时用的工具插件。转换的时候,完全不要使用过去的语言开发工具。只有更少被旧习惯牵绊,才更容易养成新习惯。对旧习惯不是完全摒弃,如果环境合适,可以举一反三地灵活应用。

9.把我开发节奏。以固定、有规律的长度运行迭代。

14.提早集成,频繁集成。在产品的开发过程中,集成是一个主要的风险区域。让你的子系统不停地增长,不去做系统集成,就等于一步一步把自己置于越来越大的风险中。而若在早期就进行集成,你会更清晰地看到子系统之间的交互和影响,就可以估算它们之间的通信和共享的数据信息。如果落实得好,集成就不再会是一个繁重的任务。它只是编写代码周期中的一部分,集成时产生的问题都会是小问题并且容易解决

——以上摘自VS & AH 的 <Practices of an Agile Developer>

 

0 等你来赞