Archive for the '编程' Category

程序员赚外快的网站

如果你是个程序员,你是否想过在你工作业余之时设计些软件或者接些外包任务来赚赚外快呢。这里推荐两个程序员赚外快的网站:

第一个是很有名气的Activeden。我是在3年前在站酷上面看到这个网站的,当时觉得里面的东西很酷,这里面一般都是精通ActionScript而且又有设计美感的个人制作的作品。那时候ActionScript语言编写的高级动画网站还不是很流行,所以借着新鲜感就学习了AS语言,但是现在忘得精光,不过话说回来这个地方非常棒,如果你有团队、能力的话你可以在上面赚大钱。

看看上面的销售榜你就知道了,有人写的网站模板销售35美金,卖出去上万份。想想对于程序这样的零成本的商品,作者赚了多少呢。小到挂件挂饰,或者滤镜效果;大到网站模板,CMS+Flash都可以销售。只要你的设计感得到认可,即可大卖。甚至一个很简单的Loading效果、Coming Soon这样的单页面,设计的很不错的也是很热销的。不过要保护好自己的源码,因为有些人买了源码之后转手放在下载网站上共享,不过好在这网站不是中国的,国外人还是挺尊重程序员的成果的,如果是在中国的话相信盗版横行的环境下这样的网站定会灭亡。

第二个站也挺有名,是Taskcity。名字由Task(任务)和City(城市)构成,足以体现此站的服务。即是一些大型项目的外包的地方,有很多人会来这里发放任务,任务的类型多种多样,从软件到挂钩底层、或者手机软件的开发,或者网站设计到主题的制作,应有尽有。你根据自身能力可以选择竞标,直接跟发标人沟通。如果你沟通的好、价格理想、经验丰富(会显示竞标成功的任务数)的话,发标人就会选择你。当然如果你有什么想法,比如想做一个大型的服务网站的话,来这里就可以找到很多能力很棒的程序员。但是想在这里赚外快的话,建议还是有自己的团队把,包括项目经理,程序员,调试人员等。因为来这里竞标的都是很成熟的软件团队。

编程艺术之“什么是代码重构”?

很久以前就能发现一个问题,这个问题是关于图书馆的国内计算机书籍和国外书籍的,就是,国内讲究的速度型的,研究如何实现。 而国外的书籍大多数都是往深里讲,甚至研究内核和原理。 由此想到,中国的程序员不要光掌握如何做,而是要掌握技巧。要把编程当成一种乐趣去完成,那样才会有高质量的软件诞生。

这也就说明了,一个优秀的程序员一般都是研究国外的书籍过来的。 还有一点,国外的人之所以可以创意和技术结合起来比国人强大,是因为国外的程序员和设计师很讲究编程语句,在原来可以实现的基础上优化代码,提高效率。

是的,上一段就说出了代码重构的意义所在,它可以提高计算机工作效率和程序大小,最主要的,便于二次开发。  他们甚至把这种在国内很少见的技术当成是一门艺术!

这又牵扯到国内的程序员的工作态度问题,这就是普遍的“你给我钱,我完成你要做的事。”而不是“你给我更多的钱,我帮你做好你要做的事。”,国内的软件要价低,并且盗版市场庞大,盗版产业链也十分雄厚。盗版的雄起让许多程序员难以度日,也许你的程序第一天出来,第二天就被破解了。

哦,我真是废话连篇,一想到国内的盗版市场对程序员的影响我就很痛苦。

接下来进入正题。

————————————————————分割线————————————————————————

重构和设计是互补的

重构与设计是互补的,程序应该是先设计,而在开始编码后,设计上的不足可以用重构来弥补.设计应该是适度的设计,而不必过度的设计.如果能很容易的通过重构来适应需求的变化,那么就不必过度的设计,当需求改变时再重构代码.

什么是代码重构?

我的理解就是:你在程序编写完毕或者在过程中反复加工简化代码从而实现小文件的高效率软件。当然,代码重构还有一点是修复不严谨的语句。

说到这儿我想起来我买了本WROX出版的红皮书《代码重构-Visual Basic版》,(其实是.NET)  。

这本书看完了可以给人一种“原来代码可以这么写”的感觉,学习代码重构可以让程序员变得更严谨和更高效率。重构有什么好处呢? 看下面:

重构的好处:

  1. 改进代码美观度
  2. 快捷寻找BUG
  3. 提高开发速度
  4. 改进源码可读性

重构方法总结:

提高性能的三种方法:

时间预算法:在设计时就对程序花费的时间进行预算,通常用于性能要求极高的实时系统.普通的企业应用程序一般对性能要求不高.只要不太慢就可以了.

持续关注法:要求程序员在任何时间都要设法保持系统的高性能.这个方法有个缺陷,就是大部分的程序90%的优化工作都是白费劲,这样会浪费大量的时间.

良好的分解方式:这个方式是在开发程序阶段不对性能投以任何关注,直到进入性能优化阶段,再分析程序中性能差的程序,然后对这些程序进分解,查出性能差的程序,进行优化.

————————————————————分割线————————————————————————

建议国内程序员和设计师不要光追求掌握方法,还要掌握技巧,不要为了工作而编程,要把编程当成一种乐趣。

中国程序员的"版权意识"

images

程序员应该养成在保护知识产权上做的严谨的好习惯。:

常看到博友的日志里经常说到中国没有版权一说,或者中国是个盗版大国。
确实, 从即时通讯软件还是游戏, 从虚拟到现实生活。

在实物上先让我们看看电影的数据:中国盗版DVD去年达400亿 电影票房仅60亿
文学呢:中国每年文学盗版市场总规模约为50亿元

更不用说我们最贴近的软件业了.. 软件业随处可见破解版或者绿色版。

在这儿我讲讲我对“中国程序员应该如何保护自己的知识产权”这一说的看法。

付费软件被crack无非是几种情况:

  1. 一个注册码可以反复使用
  2. 算法不严谨,研究算法后cracker可以写出相应的注册机
  3. 代码保护不好,没有加壳或者加壳能力弱,对待没有加壳保护的软件破解是99%可以进行的,就像反编译中可以跳过或者修改验证过程一样,对于一些加壳能力弱的Cracker可以轻易的脱壳, 脱壳可以自动化或者手动。

当然处理过程不止以上这几个,这几个只能说是常见的。

因为我本身破解过一些小软件, 对反编译和PE文件结构和文件重建免杀这块还是有研究过些”皮毛”的, 所以断言,中国人写的软件并不是没有安全保护, 而大多是用常用的UPX或者ASPACK等等这些主流加壳软件进行加密, 没有强烈的产权意识,

并且中国的软件大多数都是单层壳并明文显示加壳名称,我们甚至可以找到脱壳机直接进行脱壳,

如果你写了软件并且想把它定义为付费使用软件, 那你一定要站在Cracker(破解者)的角度想你加密或者压缩的可破解可能性。

再者我们说说用户体验这方面, 用户体验是肯定包括让用户试用你的软件, 但是殊不知很多时候Cracker都能抓住这点延长试用期, 所以在试用期的处理方面千万不要过于忽视, 不要普通的注册表验证或者时间验证(现在应该很少了)。

据我的观察发现大多数中国程序员都只注重软件的一次性收入而不是长期稳定的, 中国的软件大多规模不大不小, 对于这点程序员一定要重视你的代码! 因为那是你的劳动成果,是受法律保护的。

其实我本身写的这篇文章没有什么技术含量, 但是因为我本身也算大半个程序员并且研究过破解所以告诫中国的程序员很多时候应该和外国人学学, 试着写下自己的算法,或者加壳之前查查是否有轻易就能破解的方法或者软件, 是否能加重壳等等着一系列问题, 处理好试用期和正式注册这个过程。

记住,也许你一时疏忽, 你辛辛苦苦写的软件的绿色版破解版就会遍布天下。