现在软件开发工具的高度智能化,使得初学者有时想认清楚软件的底层实现变得很困难,从而觉得软件是一个很神秘的东西,以至于在开发中遇到一些问题时,显得手足无措。不知各位是否有过这种体会,本人确实因此而困惑过,在此总结下个人对于这个问题的感悟,希望能对有同感的朋友有些帮助。
1、界面:所有界面都是画出来的。
不管你是用VS,还是JBuilder,还是其他可视化开发工具,画界面的基本动作就是拖拖拽拽,在程序员的角度看,界面是一个个Label、Button之类的元素构成的。但在用户的角度看,一切显示在屏幕上的都是图片,Label和Button没有本质的区别。虽然它们有不同的功能,但是功能是程序员加的,程序员完全可以让Label有Button的功能,或者让Button成为一个Label。
说这个,主要是想说明:画界面很灵活,没有做不到,只有想不到,不要被IDE束缚住自己的创意。
所以Flash也可以做界面。
2、代码:一切代码都是文本。
不论IDE自动生成的,还是程序员手工编写的;不论是类,还是结构体,抑或是其它抽象的数据结构,它们都是文本!源程序是文本,经过编译、链接后,它还是文本,只不过换了中描述而已。
这个说明:编程序其实就是在给计算机讲故事,只不过这个故事不是用说,而是用写,而且得把每个步骤都写得很清楚,这样计算机才能听懂,然后它才可以讲给其他人听。
所以导演编电视剧有脚本,程序员讲故事同样有脚本!
3、本质:只有两个演员——0 和 1。
所有程序最终都要变成0和1的长串,在计算机内部只有0和1在奔跑。程序员是导演,0 和 1是演员,0 是女主角,1是男主角,它们是数字王国里的公主和王子,它们在演一出爱情戏,你信吗?Believe it or not!
说明:所有的事情原来都发生在数字世界里!想真正理解程序,不学数学行吗?!……痛苦