首页 » 软件开发

30年程序生涯26种语言 看我与“Hello World”的往事

       我最近在7月4日的那一周休了一个假,因此有时间来回顾我的职业生涯。令我震惊的是,我已经写了近30年的代码了!于是,我决定好好利用这段额外的休息时间来创作一篇怀旧的帖子,回顾在过去近30年时间中我工作过的编程语言。向我从“Hello, World”开始学习新语言的30年致敬。 我学习的第一种编程语言是TI BASIC,BASIC专门为微软TI 99 / 4A microcomputer而编写的一种语阅读全文 »

2016年9月8日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

技术路线重要但不具有决定性

       根据我长期的观察,做开发技术的人按照其人生路线设计,可以分成几类。第一类是把自己的命运寄托在一项事业上。这样的人知道自己想干什么,而且有能力把技术当工具来实现自己的想法和事业。这里所说的事业是广义的,并不是说你非要自己开公司当老板,而是说你认可一件事情,比如促进人们交流和言论自由,带给大家更多娱乐,提升大众身心健康水平阅读全文 »

2016年9月5日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

写给Android/Java开发者的JavaScript精解

       作为一个多年Javaer,我学习JavaScript的方式就是比较着学,努力辨识清楚Java与JavaScript的同与异,在比较中加深理解认识,最后达到学会JavaScript的目的。 许多程序语言都有自己的口号,Java的口号是:“write once,run everywhere!”同样,JavaScript也有自己的口号,那就是“everything is object!”阅读全文 »

2016年8月29日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

到底什么样的程序员算全栈程序员

       与其他互联网热词一样,“”全栈“”程序员也是英译过来的,英文全文是:Full-Stack Developer,你想啊,中国人民怎么会用客栈的栈、堆栈的栈来形容工程师呢?  谈论一个概念,首先得给伊个定义,一般来说,全栈工程师就是指技术多面手,掌握多种技能,能够独立完成 non-trivial application 的人。non-trivial 怎么阅读全文 »

2016年8月19日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

读开源代码可助你提高编程水平

       我已经写了很多年的软件。最近我意识到,我越涉及(致力于,结合于等)开源技术,我写出来的代码就更好。这不由地让我疑惑起来:难道里面有什么相关性或因果关系吗?  阅读代码能让你变得更优秀  我在编程生涯的早期就明白我阅读的代码越多,我的代码就能变得更好。我知道,当我不得不维护其他人的代码时,简单和干净的代码几乎总是比花哨或复杂的代码好—— 即使有注释。阅读全文 »

2016年8月17日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

详解HTML5 LocalStorage本地存储

       说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个cookies,太少了。优势就是大家都支持,而且支持得还蛮好。很早以前那些禁用cookies的用户也都慢慢的不存在了,就好像以前禁用javascript的用户不存在了一样。阅读全文 »

2016年8月10日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

Discuz!的Memcache缓存实现

       在PHP+MySQL架构的站点中,本文重点从MySQL的角度去分析如何使Discuz!论坛(或者类似的PHP+MySQL架构的程序)应对大访问量。同时给出一些使用Memcache去减轻MySQL压力的建议。其中很多数据是个人测试的结果,如有不同意见,敬请留言告之。 系统分析: 单纯的从MySQL的角度出发,单台MySQL的数据库负载到每天上亿次的操作(每秒大概1100次MySQL操作,然后乘以86阅读全文 »

2016年8月5日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

微软SAPI(The Microsoft Speech API):让你的软件能说会道

       “没声音,再好的戏也出不来。”这虽然是一句广告,但是也说出了一个道理,我们所开发的软件,特别是一些多媒体软件,要是能够发出声音,能说会道,将为我们的软件增添不少光彩。同时,我们面临的是一个老龄化的社会,将会有越来越多的视力不太好的老年人成为我们的用户,开始使用我们的软件,如果我们的软件能说会道,可以用语音的方式提示用户进行操作,这将大大增加软件的可用性,从而获得用户的喜爱。阅读全文 »

2016年7月30日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

MFC用串行化实现文档存储和读取功能

       在面向对象的程序设计中,一般都是用二进制文件来保存文档资料。在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件;利用串行化存取文件。其中用CFile对象直接存储文档,存在着以下两个问题:一是过程繁琐,例如绘图系统中常存在大量的数据对象(直线对象、矩形对象等);另一个问题是功能受限,VC++为了程序集成的需要,设汁成了复合文档...阅读全文 »

2016年7月27日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

Mysql数据库备份方案讨论

       在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表已破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事。个阅读全文 »

2016年7月18日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

高质量Java编程指南

       使用一种程序设计语言,就应该专业地使用它。本文是IBM developerWorks中的一篇文章,它描述的都是Java编程中的细节问题,尽管如此,还是值得大家玩味一番,至少我作为一名老鸟还是从中受益了。  学习一种新的程序设计语言比学习一种新的口头语言要容易。但是,在这两种努力中,都需要付出额外的工夫去学着能地道地说这种新的语言。当你已会C或 C++,那么学习Java程序设计语言将不会很困难;这就阅读全文 »

2016年7月11日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

Java Thread.interrupt 害人! 中断Java线程

       程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难题,如果没有被恰当的解决,将导致意外的行为以及细微的、难以发现的错误。 在本篇文章中,我们针对这些难题之一:如何中断一个正在运行的线程。 背景 中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作。线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序。阅读全文 »

2016年7月6日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

程序员的30本书——经典中的经典

       “如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本, 你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。”   1、《代码大全》 史蒂夫·迈克康奈尔   推荐数:1684  “优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来, 就是我们本能所说的”编写整洁的代码”。这本书有50页在谈论代码布局。”阅读全文 »

2016年7月1日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

Javascript父、子页面交互小结

       帧用来存放子页面,既可以是iframe,又可以是frameset。window对象是全局对象,页面上的一切函数和对象都在它的作用域里。  1、parent代表父窗口、如果父窗口又存在若干层嵌套,则top代表顶级父窗口。  self代表窗口自身。 2.1、父页面访问子页面元素。思路是子页面的元素都在其window.document对象里面,先获取它然后就好说了。帧最好设置name属性,这样操作最方便阅读全文 »

2016年6月27日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

如果上天再给我一次机会 我会这样学java

       回头看看, 我进入Java 领域已经快15个年头了, 虽然学的也一般, 但是分享下我的心得,估计也能帮大家少走点弯路。  [入门]  我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到Java ,发现没有指针的Java真是好简单, 另外Java 的类库好用的让人哭啊。  后来我就看《Thinking in Java》 ,《 Java 核心技术 》, 感觉也不吃力。阅读全文 »

2016年6月24日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

搭建“随需而变”的试验数字化管理系统—跟优必得学架构设计

       试验是产品研发、生产制造、维修保障过程中必不可少的重要技术手段,在优化产品性能、延长产品寿命、提高产品质量以及控制成本方面都起着至关重要的作用。然而企业试验过程中,日积月累大量的试验产生海量试验数据,如何管理和组织这些存放分散、类型多样、格式复杂的试验数据一直是一个困扰试验管理人员的难题。同时,如何合理的调配试验资源,高效的利用试验台架以及仪器仪表,如何规范试验的流程保证试验的准确、高效,避免重复阅读全文 »

2016年6月17日
作者:鸡啄米 分类:软件开发 浏览: 评论:1

Mysql 官方Memcached 插件使用体验

       Mysql 官方发布过一个Memcached 的插件。以前,曾经也有MemcacheDB 做过相同的事情,不过似乎它现在没啥声音了,而非官方、非Memcached 协议的HandlerSocket 最近反响挺强烈的。这些都有一个共同点:基于Mysql 的storage engine,然后在其上构建一层自有API。阅读全文 »

2016年6月13日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

详解Mysql读写锁

       理想的情况是,MySQL从首次安装以来始终平稳地运行。但有时确实会由于各种原因而出现问题,其范围可以从电源断电到硬件故障到不正常地关闭MySQL服务器(如用kill -9 终止服务器或机器崩溃)。诸如这样的情况大部分都超出您的控制范围,它们会导致数据库表的毁坏,尤其是在对表进行修改且未完全写入时所引起的。 理想的情况是,MySQL从首次安装以来始终平稳地运行。阅读全文 »

2016年6月12日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

现在应该学习哪些语言和框架

       2015年,软件开发界发生了很多变化。有很多流行的新语言发布了,也有很多重要的框架和工具发布了新版本。下面有一个我们觉得最重要的简短清单,同时也有我们觉得值得你在2016年花时间精力去学习的新事物的一些建议。 大趋势 在过去的几年里,有一个越来越明显的趋势是web应用的商业逻辑逐步从后端转移到了前端,然后后端变得只需要处理简单的数据API。这就让前端开发框架的选择变得尤为重要了。阅读全文 »

2016年6月7日
作者:鸡啄米 分类:软件开发 浏览: 评论:0

iOS为什么选择了Objective-C

       地球人都知道,iOS 最初的开发语言是Objective-C (当然现在Swift流行起来了),   这个Objective-C是从哪里来的呢? 时间得回到上个世纪80年代初。  Brad Cox and Tom Love 两个人在ITT(国际电报电话公司, 不是更加著名的AT&T)工作, 他们俩接触到了SmallTalk 这门伟大的语言。阅读全文 »

2016年6月3日
作者:鸡啄米 分类:软件开发 浏览: 评论:2