您的位置:首页 > 编程语言

代码不过是表达

2010-01-20 18:25 10 查看
这是一个表达的世界,任何人都可以通过各种途径来表达自己的思想.思想是抽象的,途径是技巧的,表达是现实的。



写代码 是什么?
写代码就是通过代码正确的把思想转表达可运行的程序
就好象我现在用文字写这篇文章一样 难的不是写 当学会了 中文文字和中文语法后 最难的就是写这篇文章的思想的形成了 文字和语法是不变的(相对不变)
我如果可以用中文写这篇文章 如果我还会其他语言的话 比如 英语 那么把这篇文章写成英语版的 有难度吗? 没有 呵呵

从上面看来 写文章必须至少具备 2个条件(使用的纸,笔,电脑录入这样的工具这里忽略)
必要条件
就是至少会用一种语言表达(包括熟悉文字和语法)

充分条件
就是有成型的思想


这样看写代码和写文章有区别吗



完全没有(当然 软件的开发运行还要受到所处环境的制约)


说清楚了上面这段 我就可以很明确的肯定
各种需求的软件开发 只要把需求分析 用文字陈述出来了 那么在用代码写出来是没有什么难度的了(先要会一门编程语言)
这也是项目经理和程序员的一个区别 项目经理侧重于思想的陈述 程序员更注重于代码的运用

既然必要条件是会用语言来表达 那么任何程序员 当务之急首先就是要先扎实的学会一种语言 你可以不会 这门语言扩展的东西
比如 DHTML我可以不会 JQUERY 不会 EXT 但只要JS足够扎实 DOM有一些了解 那么加上GOOGLE|BAIDU|问别人 基本可以实现绝大部分算法要求不高的需求?

现在我要用JS实现一个页面中浮动层拖拉的简单效果
思想陈述就是
前提这个能拖动的目标是浮动的
当鼠标点击时 确认要拖拉的目标(被点击目标和被拖拉目标可以不是一个) 记录拖拉目标坐标和鼠标的相对位置差
当鼠标移动后 当有确认要拖拉的目标那么 目标根据当前鼠标的坐标和确认时候的相对位置差来 重新设置坐标
当鼠标点击放开后 清除确认目标
呵呵 这样一段陈述 会JS的把它转成JS表达 会很难吗?


以上整个难点就在思想的陈述上面

所以很多喜欢问怎么写要源代码的人 我劝他还是先把 编程书在好好看看 看烂了 在出来问问题
因为这样大家就可以把问题固定在思想交流上
当你有足够的能力用编程语言表达思想后 提问和回答的人都将大大减少时间
想想看 一个完全不了解DHTML的人 上面那段陈述有用吗? JS 事件 DOM 你要说明多少语言层面的问题 你很上道给他源代码 那么下次他就会问你怎么在指定的区域内实现拖拉 呵呵

总之想能写好代码的人 首先就要完全了解自己要使用的这门语言
我这里完全了解指的是很基本的 关键字 语法 流程控制 其实不难把
这些个熟练
那么接着就是用编程语言来表达思想的陈述了 这个就是纯粹的编程语言的运用技巧和经验了

当你能熟练的用某种语言写代码了
除了天才 这个时候你就应该去看设计模式了
设计模式是什么? 设计模式也是思想 不过是代码表达的思想
好象教你写议论文一样 老师会和你说 先写出论点 在提出论据 然后是论证过程
设计模式也是这样 它和任何语言都没关系 它只是从无数的软件开发设计的经验教训中 帮你总结和抽象了 什么情况下该用什么方式写
当你设计模式看熟练了 这个时候你写代码的时候就会发出 哇 这个情况用这种模式来写的激动
这个时候读别人写的好的源码也简单了 好的源码 一般会有很多设计模式上的组合应用

算法也是写代码中要了解的东西(注意太深入这个东西要消耗大量的时间)
设计模式说的是流程描述
算法是一个输入输出过程中 过程包含的执行步骤次序 的描述
个人看法:优先把时间花在代码的流程控制上 而一个算法完全可以通过设计封装在一个过程中的

比如程序中要排序 我只会 冒泡排序 其他什么快速排序 插入排序我都不会 那有什么关系呢? 只要这个方法保证 排序结果是正确的

程序可以正确运转起来 那么以后优化 也只是更改这个排序方法内部的步骤罢了 但是一旦你运行程序后发现需要调整整个程序结构的话

呵呵 会死人的

设计模式就好比写文章时的整体结构 算法就是文章的文采 不管怎么说好的文章首先要求是正确合理的结构 先让人看的懂(能正确运行起来)才是最重要的

当你有能力正确的用代码来表达思想了
那么就真正可以把时间关注在业务逻辑(思想陈述)上了 另外入软件开发中调试也是一个重头 不过都不是本篇文章想说的

希望本篇文章对开发的入门新手能有些帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐