摘要: 发布一款软件产品时,最困难的就属决定它的理想价位了。难道你不想知道该如何定价,使其让你收获丰厚的利润吗? 实际上,定价并不是一个精确的科学,当然它也并不玄妙——价格往往受到软件认知程度,市场状况以及其价值的影响。那么如何获得软件最合适价格呢? 最合适的价格数字 当我们为产品定价时,我们都希望获得最大利益——也就是使销售量*价格达到最大值。 经济理论表明,当我们提高定价时,销售量会随之降低。在绘制需求曲线时,我们可以找到价格和销售总量的交叉点。 所应选取的“最合适价格”是使长方形面积最大的点。这个长方形就是销售量*价格的计算结果,因此长方形面积最大也就意味着利润最大。 这在理论上解释... 阅读全文
posted @ 2011-07-01 09:08 Podevor 阅读(282) 评论(0) 推荐(0)
摘要: Category Test Driven Development(Click the title to see the pages in this category.)CategoryTestDrivenDevelopmentis for pages relating toTestDrivenDevelopment, which is a SubCategory?ofExtremeProgramming.CodeUnitTestFirst(UnitTests)EliminateDuplication(ReFactoring,OnceAndOnlyOnce) * BothUnitA... 阅读全文
posted @ 2011-07-01 08:16 Podevor 阅读(122) 评论(0) 推荐(0)
摘要: Click on the title to see all pages with this category.Various approaches and styles for testing software (and possibly other design artifacts?).UnitTestsUnitTestsDefinedStandardDefinitionOfUnitTestUnitTestCookbooksCodeUnitTestFirstExtremeProgrammingChallengeNineteenExtremeProgrammingQualityAssuranc 阅读全文
posted @ 2011-07-01 08:13 Podevor 阅读(90) 评论(0) 推荐(0)
摘要: Test Driven DevelopmentWhen you code, alternate these activities:add a test, get it to fail, and write code to pass the test (DoSimpleThings,CodeUnitTestFirst)remove duplication (OnceAndOnlyOnce,DontRepeatYourself,ThreeStrikesAndYouAutomate)This inner loop pumps the outer loops ofExtremeProgramming- 阅读全文
posted @ 2011-07-01 08:11 Podevor 阅读(222) 评论(0) 推荐(0)
摘要: 成为一个优秀的程序员和成为其他优秀的专业人员一样,需要尽可能多的做一些有质量的工作。有句很流行的话可以总结:做,正确做事,立马就做。(Do it. Do it right. Do it right now) 0. 将一天要做的事情列成清单 完成复杂活动(activity)的最好方法是将其拆分成简单的各项活动。每天早上,将你一天要完成的活动进行拆分,然后制定一个相应的日程安排表,这样能够帮助你:更好的理解这个活动。每天都有一个集中的目标。提高你的估计能力,几天之后,你会发现你能预测一天的工作量。 1. 一次只做一件事 集中于一项任务比同时做多项任务更多产,不同的研究已经证明这个观点,并且... 阅读全文
posted @ 2011-07-01 07:55 Podevor 阅读(144) 评论(0) 推荐(0)
摘要: 你是否曾经在做项目时时间不够?你是否不确定你花在每个项目上的时间? 如果你对上述问题的回答是肯定的,那么你知道我说的时间问题。实际上,不了解时间都花在哪了,这是大多数自由职业者都遇到的问题。 今年早些时候,我开始寻找更好追踪时间的方法。我用电子表格已经好几年了,但我想用一些更好的方法。现在我终于可以分享我的收获了。 时间追踪程序的两种形式 经过研究,我发现有两种形式的时间追踪程序:一种是帮助你知道时间是怎样花掉一种是帮助你利用时间创造收益 由于我总是按项目收费,从来没有按小时收费,因此我主要对第一种时间管理的程序有兴趣。但鉴于有很多第二种管理方式,我也列出一些第二种管理方式。(注... 阅读全文
posted @ 2011-07-01 07:54 Podevor 阅读(158) 评论(0) 推荐(0)
摘要: 1. 懂得分享。尽可能使用开源,并且当你有能力的时候,要对其有所贡献。聚全社会之智慧,胜过某些“大”公司之短视。 2. 公平竞争。尝试其他技术、框架、方法和观点。不要总以为只有你的选择才是可行的。别的选择也有可能比你的要强得多。要以开放的心态,来检验其他人的选择。 3. 不要攻击他人。像第2条所说的,不要仅仅因为别人恰巧使用.Net、Java或PHP就去攻击他们(我在这方面有一次教训)。有时,它们或许要比你所认为的更有效。只要别人不是一无是处,你就可以从他们那里学到很多东西。 4. 自我完善。尽量发布可以运行的代码。不要指望QA能给你找出所有的程序错误。要经常并且全面深入地测试你的代码。... 阅读全文
posted @ 2011-07-01 07:51 Podevor 阅读(97) 评论(0) 推荐(0)
摘要: 我们经常分心,然后又被催促着去工作。一旦开始了工作,我们又想着那些家里的日常家务事。当我们回家后,又愁这些日常的家务活耗费了太多时间。我们一直在工作的时候去考虑那些将要发生的事情。 这种不断地往前想着下一件事情的习惯,让我们陷入了一种担忧和压力的恶性循环。这也让我们无法集中精力在我们唯一可以掌控的:现在的事情上。 集中精力在当前的事情上是释放压力的关键。这可以让你全神贯注地关于手头的工作,而不是愁这辈子、遥远的其他事情。而且,通常来讲,现在的工作比将来的事要简单很多。一旦你沉入当前所做的事情,工作能够变得令人满意。然后,你会慢慢变得忙碌和投入,而不是内心的纠结。 这里列举了几个简单的建议... 阅读全文
posted @ 2011-07-01 07:49 Podevor 阅读(133) 评论(0) 推荐(0)
摘要: 一个好的软件开发人员需要培养两种技能:技术技能和非技术技能。不幸的是一些开发者只注重技术的部分,以致养成一些陋习,下面是最常犯的5个非技术性错误:0. 缺乏自律 Jim Rohn曾经说过:自律是目标和成果之间的桥梁。我一直认为,不论是成为一名软件开发人员,亦或是想在生活的其它任何领域取得成功,自律都是最珍贵的技能之一。事实上,很少有人兼具智慧和自律。 Steve Pavlina强调了自律的5个基本原则“……容忍(Acceptance)、毅力(Willpower)、努力(Hard Work)、勤勉(Industry)以及坚持不懈(Persistence)。将每一个单词的首字母提出,构成一个缩.. 阅读全文
posted @ 2011-07-01 07:43 Podevor 阅读(149) 评论(0) 推荐(0)
摘要: 在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。这个沙盘就是虚拟地址空间(virtual address space),在32位模式下它总是一个4GB的内存地址块。这些虚拟地址通过页表(page table)映射到物理内存,页表由操作系统维护并被处理器引用。每一个进程拥有一套属于它自己的页表,但是还有一个隐情。只要虚拟地址被使能,那么它就会作用于这台机器上运行的所有软件,包括内核本身。因此一部分虚拟地址必须保留给内核使用: 这并不意味着内核使用了那么多的物理内存,仅表示它可支配这么大的地址空间,可根据内核需要,将其映射到物理内存。内核空间在页表中拥有较高的特权级(ring 2 阅读全文
posted @ 2011-07-01 07:24 Podevor 阅读(139) 评论(0) 推荐(1)
摘要: C程序一般分为1.程序段:程序段为程序代码在内存中的映射.一个程序可以在内存中多有个副本.2.初始化过的数据:在程序运行值初已经对变量进行初始化的3.未初始化过的数据:在程序运行初未对变量进行初始化的数据4.堆(stack):存储局部,临时变量,在程序块开始时自动分配内存,结束时自动释放内存.存储函数的返回指针.5.栈(heap):存储动态内存分配,需要程序员手工分配,手工释放.附程序分布图:#include <stdio.h>#include <malloc.h>voidprint(char*,int);main(){char*s1="abcde" 阅读全文
posted @ 2011-07-01 07:21 Podevor 阅读(211) 评论(0) 推荐(1)
摘要: C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1#include <iostream.h>void fn();static int n; //定义静态全局变量void main(){ n=20; cout<<n<<endl; fn();}void fn() 阅读全文
posted @ 2011-07-01 07:12 Podevor 阅读(169) 评论(0) 推荐(0)