一个开源的Asp.net2.0博客系统
1) 没有明确的生活目标。没有奋斗的中心目标或明确的努力主向,就没有成功的希望。
2) 没有非同寻常的雄心抱负。
如果对凡事漠不关心,不想在人生中求发展,不愿付出代价,那么这样的人也将成功无望。
3) 缺乏自律。
纪律来自自我控制,这意味着人必须控制所有的消极思想,只能先控制自己,才能控制环境。自制是人类面对的最艰巨任务,如果无法战胜自我,就会被自我征服。
4) 拖拉。
这是失败最普遍的原因之一,拖拉“老人”存在于每个人心中的阴暗角落,正是因为一直都在等待“适当时机”,才开始做那些值得做的事情,其实时机永远不会“适当”。
5) 缺乏毅力。
不管做什么,大部份人开始时都满怀信心,但却不能善始善终。大部份人一遇到失败就容易放弃。毅力是不可取代的。把毅力当座右铭奉行到底的人,发现失败会自行退下,失败是无法对抗毅力的。
6) 消极的个性。
因为消极的个性,而将别人拒于千里之外者,不会有成功的希望。成功来自力量的运用,而力量又来自与他人的合作,消极的个性无法促成合作。
7) 无法克制“不劳而获”的欲望。这种机体本能使很多人走向失败。
8) 缺乏果断的决策力。
成功的人士会果断决策,然后如果有必要,再慢慢改进。失败者往往花很长时间才能作出决策,但很快就需要修改,而且要频繁修改。犹豫和拖拉是一对双包胎,只要找到其中一个就一定能找到另一个,所以必须趁它们没有将你完全束缚在失败的车轮上,果断地把它们消灭。
9) 过度谨慎。
不主动抓住机会的人往往只能捡别人挑剩的机会,过度谨慎和不够谨慎都不可取,人生本来就充满偶然成分。
10) 迷信与偏见。
迷信是恐惧的一种形式,也是无知的表现,成功人士心胸宽广,无所畏惧。
11) 目标不专。“万事通,万事松”,要全心全意专注于一个主要目标。
12) 缺乏热情。
没有热情,一个人就没有说服力,而且热情有一种感染力,一个人如果拥有热情,并能适当控制热情,往往会受到人们的欢迎。
13) 偏执。心胸狭窄很难取得任何进步,偏执说明一个人不积极获取知识。
14) 蓄意不忠。
诚实是一种不可替代的品质,受无法控制的环境所迫,一个人可能一时不忠诚,也不会带来永久的破坏。但是,如果一个人蓄意不忠,则无药可救。他的得行为迟早会被发现,他负出的代价可能是失去信誉,甚至失去自由。
15) 自私和虚荣。这些品质问题好比亮起红灯,让人不敢靠近,是妨碍成功的致命因素。
16) 猜测而不思考。
多数人往往漫不经心或者过于懒惰,不愿费心获取用于准确思考的事实。他们喜欢根据猜测或仓促得出的“结论”了事。观念改变人生!选择决定未来!行动决定成败!
1.升级单元测试
你的编程没有测试?你应当随时进行测试,即TATFT ( testing all the fucking time )。当然你应当选择比仅是单元测试更好的方式。RSpec和Shoulda是两个可以选来使用的工具。
2.试用TDD
既然你在测试,那你就应当记录下这些测试。不要记录代码并用后来的测试覆盖它,而应当是方法的记录。TDD ( Test Drive Development ) 可以使你编出更好的代码,TATFT最重要的基础就是 TDD。进行TATFT并不难,首先你写下你所能做的最简单的测试并运行,观察测试的失败,然后写出执行语句以便使测试通过,不停地重复这样的过程就可以了。
3.自动化部署
自动化是你最好的朋友,想要实现自动Capistrano是相当好用的工具。在你配置部署好你的项目后,第一个要装的东西就应当是Capistrano。从第一天起就可以自动化部署将会节约你大量的时间。
4.安装 SCM
安装 SCM并学习使用它,这样做的好处是可以使那些超重的库中的代码不再那么冗繁,目前有大量的工具可以选择,我每天使用的是Git。Git是一款很特别的分布式SCM,即DSCM。DSCM是很有前景的,它可以同有其他库的用户们协同工作。
5.审查持续集成
现在我们已经测试了代码并将其安全的存放在库内。比起不停地测试,什么是更好的方式?自动测试是个不错的选择。很感激有cruisecontrol.rb的存在,这个应用工具自动运行了那些琐碎的测试。
6.了解你的代码
写代码是一回事,但是更重要的事情是了解代码。可以用四种自动化工具来帮助你了解代码:flog、 tarantula、rcov 和saikuro。这些工具分别有其独到之处,我很乐意向你介绍它们。
Flog,可以按字母排列的顺序来记录复杂的结果。
Tarantula,根据相关性原则和一些灵活的创意设计的。它所做的是spider 你的Rail应用以便去搜索坏链接。这真是令人得到解脱,使我受益匪浅。
Rcov,这是一个在Ruby界相当受欢迎的工具。它是一个C0范围工具,换言之,它精确的测定出你的代码中哪些部分在被测试,哪些部分没被测试。唯一的缺陷是它不能测试诸如:“if condition_a && condition_b || condition_c”. 这样的语句。
Saikuro,可以测量出你代码环的复杂性,即可以计算出你代码branche 和path的数量。当然你代码的复杂性越低,它运行的越容易。
7.升级你的Fixtures
Fixtures 是看起来很有创意的事物之一,但有诸多的弊端。对于Fixtures,只有极少的替代,我选择使用Rails Scenarios,原因是它在测试中工作起来像Fixtures一样,但是允许我做比YAML更好的DSL。我也可以在一个文件内指定多重的 Scenarios,这将使事情变得更有组织性。
8.收集分析对象
在Rail平台上搭建新的系统。每周都会有新的监控工具出现,这样我们有很多的选择,在这里我介绍我已经使用过的工具:HopToad 和 TuneUp。
HopToad对于异常报文有不错的能力,它可收集间断应用并用简便的方式显示收集结果。还有,这是一个免费软件~
TuneUp用另外一种方式获取数据,它计算每一处分别花费多长时间去组合自身。你的页面是不是花费了很长时间去组建?但你又不知道是因为什么缘故花费了这么久,使用TuneUp来查一下吧,你会发现一些你以前从未想到过的事情。另外,TuneUp是一款开源软件,你可以登陆进他们的托管服务分享你的结果。
9.阅读其他人的代码
你想成为更优秀的程序员吗?那一定要多读代码,这包括好的、坏的、你自己的、其他人的代码等。阅读代码是一项很多程序员都不重视的技能,但其实能够快速阅读他人的代码并理解其中的含义是一种极其需要的能力。
10.写博客的习惯
就我个人来说,当我阅读博客的时候我可以找到所有的信息。大部分时候我是会撰写跟技术相关的要点,偶尔讨论点轻松的话题。写博客是出于分享的原因,你可以写下能够帮你节约时间的技术技巧,也可以是一些你想要记住的技术难点和命令之类。