《编程珠玑》这本书读完感觉很诡异,在读的过程中感觉很有收获,但是却说不清从书中获得了什么,好像什么也没读懂。说实话,很难对这本书归类,有时它告诉你的是实际操作的性能问题,有时又在讲算法或者数据结构。不过确切的说,它告诉我们的是一种无招胜有招的境界。无论是实际操作、算法还是数据结构都是在为项目服务的,我们的目的只有一个,那就是完成项目。
一个项目与一个科研课题的区别就是它需要被实践,需要一种行之有效的解决方案。在一个系统被部署到实际环境中时,有时可能需要它无比精准,有时是快速运行,有时是超低成本,或者也有可能是兼而有之的权衡。此时工程师就需要调整一切可以调整的东西去满足这些需求,这些东西自然就是硬件环境、算法、数据结构了。作者Jon
继续阅读 »
Code Review 是什么?
wikipedia: Code review is systematic examination (sometimes referred to as peer review) of computer source code. It is intended to find mistakes overlooked in software development, improving the overall quality of software.
继续阅读 »
这本书读了许久才读了一遍,不同于之前读到的一些方法性的书籍,该书有更多的细节,但其中又存在许多理论性的东西,要消化它们可不是很容易。读完一遍后又快速回顾了一遍,马上又会发现很多新的东西并有一些新的理解,甚至让我觉得写这篇文章有点太急了,不过我还是应该尝试收集一些有营养的东西,至少记录现在的想法,相信对之后的第二遍阅读会更有益处。
书名其实有点误导我,或者说它不仅仅是其字面意思那样简单,‘整洁’不是简单的清洁,其主旨在于一种设计上的精巧。书的开篇就引用了几位大牛对代码整洁的解释来描述其意义。从抽象的描述中说,整洁代表着优雅、愉悦、精巧、简单,具体来说我觉得有以下几点:
易于维护,依赖简单。
设计精巧,没有改进的余地。
高可读性,意
继续阅读 »
以前上学的时候其实大概读过这本书,但是那时没有什么项目经验,对于重构还很难理解其意义,最近因为又读了一遍这本书,发现确实是很棒的一本书,虽然现在写javascript,而这本书是以java为基础的,但仍然有很多值得参考的地方,尤其是一些常见的重构手法,让人看的时就会觉得对对对,确实经常这么干,比如Extract method还有Replace array with object等等都可以应用到其他环境中。
阅读这本书最重要的首先是需要理解的是什么是重构,以前也自诩会定期重构代码,但现在想想,其实真正算作重构的时候并不多,大部分时候我们其实只是在重写,只是因为项目规模较小,所以许多问题并没有暴露出来罢了。
先看看重构的定义:“对软
继续阅读 »
PaaS即Platform as a Service,是云计算的一种形态。云计算本质上是一种网络服务,这种服务可归为三类:IaaS、PaaS和SaaS,其中的“aaS”都是“as a Service”,I、P、S分别是Infrastructure、Platform和Software。
继续阅读 »
[CDATA[<p class="text"
上一个lab还有两关没有做完,但是懒的挨个截图写下来咯=.=,先看看第三个实验,听起来就很好玩 : )
找了半天才找到一个可用的32位的版本,原版会要求在他的shark machine上运行, The Hardware/Software Interface上又是64位的版本.最后在github上找到了一个可以用的32位版https://github.com/Mithrilwoodrat/CSAPP-Labs/tree/master/buflab.
继续阅读 »
八爪有一整套的研发管理系统,实现从代码管理到服务器搭建、问题追踪到编写开发文档,从而搭建起一整套开发流程的系统。以下是一些个人现阶段的理解。
1.Jira
JIRA Software是优秀的敏捷项目工具,协助您追踪问题,集成代码,规划,开发,发布高质量的软件产品。
2.Stash
Bitbucket(原名Stash)帮助团队创建和管理代码仓库,通过内联注释和变更讨论来使团队协同处理代码。
3.Confluence
Confluence将团队成员紧密的团结在一起,带领团队同心协力地在线编写文档,使团队成员工作更有效率。
4.Bamboo
Bamboo运行在各种专用服务器或云服务器上的代理实现了构建能力的即时动态扩展。
继续阅读 »
Eclipse 安装插件
一、通过Eclipse MarketPlace 安装
打开 Eclipse 选择 Help-->Eclipse MarketPlace,在其中查找相应的插件选择安装即可。
二、通过 Install 安装
打开 Eclipse 选择 Help-->Install New Software,在Add中添加所需要的插件
继续阅读 »
单元测试Unit Test
很早就知道单元测试这样一个概念,但直到几个月前,我真正开始接触和使用它。究竟什么是单元测试?我想也许很多使用了很久的人也不一定能描述的十分清楚,所以写了这篇文章来尝试描述它的特征和原则,以帮助更多人。
什么是单元测试?
先来看看单元测试的定义,在维基百科英文版中可以找到Kolawa Adam在 Automated Defect Prevention: Best Practices in Software Management 一书中对单元测试的定义:
In computer programming, unit testing is a method by which individual unit
继续阅读 »
[CDATA[<p class="text"
在coursera上有个csapp有关的公开课 The Hardware/Software Interface
上面的lib2和csapp上的二进制炸弹实验一样,但是是64位的=.=,于是我还是去 http://csapp.cs.cmu.edu/public/labs.html上下载了一个32位的文件来练习.
下面是第一关的反汇编
Dump of assembler code for function phase_1:
0x08048b20 <+0>: push %ebp
继续阅读 »