美文网首页程序员
程序员是如何写代码的(一)

程序员是如何写代码的(一)

作者: xu54 | 来源:发表于2017-08-01 19:16 被阅读0次

    作为一个程序员,常常会有身边的人问我,写代码的具体工作是如何进行的。所以我想写一个系列,以现在手头的项目为例,向对这一行完全不了解的人来解释编程。

    然后你就会发现,只要掌握了恰当的思考方法,编程非常简单,可以说小学生也有可能比大人做的更好。

    以一个啫喱球的实现开始吧,这个啫喱球是我现在项目中需要出现的一个弹性的可变形的球,要求弹起来duang duang duang 的。如下图:

    作为一个又经验的码农,当然首先要思考如何实现这个东西,并且要坚信,世界上没有码农无法实现的东西。既然有弹性,那显然和弹簧有关。所以我首先需要建一个辅助的简化模型。象这样:

    程序要做的就是实现四根弹簧,然后把四个弹簧上绿色的点连成曲线,就构成了最终的啫喱球:

    那首先需要实现的是一根弹簧,还记得初中物理学过的胡克定理吧,哈哈哈,忘记了可以百度下,就是一个乘法,通过公式,我们可以计算弹簧在压缩到某个点后它受到的力,从而最终得出绿点的速度是多少。这个时候,有经验的程序员会考虑先写一个弹簧零件的代码,然后组装四根弹簧形成上图的十字零件,然后再根据十字零件,加工一个啫喱球零件。对!这就是行话“面向对象”, 也就是说你考虑问题的时候不是考虑如何实现,而是考虑场景里都有些什么东西,然后把这些东西都组装起来。

    所以现在的思路很简单: 1:)写一根弹簧 2:)把四根弹簧组装成一个十字弹簧 3:)把十字弹簧组装成一个啫喱球。

    下面我来详细解释,如何用代码来实现这些,你会发现,编程语言其实压根不重要,我总体设计占开发时间的90%, 然后用编程语言来实现也就10分钟不到。但是如果是一个没有总体设计的程序猿,也许需要一周的时间来实现。

    首先,实现一根弹簧的设计。对于编程来说有个好的套路,按这个套路走就能又好又快。这个套路就是:对于一个部件(行话就是“对象”啦)的设计,你首先要问自己,这个部件工作的时候,需要设置什么,最终得到什么。比如一根弹簧,你肯定需要设置它的弹性系数,固定点的位置,弹簧放置的方向,摩擦力(如果摩擦力为0,那就停不下来啦),它放松时候的长度,你要把它压缩或拉长的长度。

    比如我已经写好了一个部件,名字就叫"弹簧", 我或其他人就可以象下面这样使用这个“弹簧" 的部件了。

    使用代码如下:

    做一个 “弹簧 ” 名字叫 t1     

    t1 的 弹性系数 是 0.003

    t1 的摩擦系数是 5.3

    t1的固定点坐标是 ( 100,100)

    t1的方向 是指向点 ( 100, 0 )

    t1 放松时候的长度是 50

    t1现在的长度是100

    真正的代码其实也差不多啦,比如用现在苹果开发语言oc写就是这个样子的

    Spring* t1 = [Spring new];  //创建一个Spring ,名字叫t1

    t1.k = 0.003;

    t1.resistance = 5.3;

    t1.fixPoint = pt( 100, 100 );

    t1.directionPoint = pt( 100, 0 );

    t1.relaxLength = 50;

    t1.currentLength = 100;

    瞧,语言真的不算啥,一般小学生,如果单纯学一门开发语言,最多需要3天左右吧。

    这是生活的常识,缺少了其中任何一项,弹簧就无法工作了。那这个名字叫t1的弹簧创建好,它需要做什么呢?也很简单,当然是需要:1)把弹簧两端画出来 2:)让弹簧根据现在的状况动起来。比如上面的设置,放松的长度是50, 现在被拉长到100。 那一松手,这个弹簧就应该自己动起来。

    --------未完待续/每天持续更新---------

    相关文章

      网友评论

        本文标题:程序员是如何写代码的(一)

        本文链接:https://www.haomeiwen.com/subject/ivqslxtx.html