zoukankan      html  css  js  c++  java
  • 谷歌程序员有哪些高效的编程习惯?

    先画个图


    立刻就去敲代码是种荒谬且懒惰的想法。就好比在你写一篇文章之前,要先弄清楚你的假设及论据,从而保证文章的内容有意义。不这么做的话,你可能会渐渐意识到你所写内容可能会跑题,不仅浪费时间,还影响心情。

    通常,解决问题的方法乍一看很简单,但其实不然。先在纸上写写有助于你找到解决问题的方法,并能证实该方法可用于不同情境,这些都得在敲代码之前完成。

    所以不要急于敲代码,甚至想都不要想代码。随后你是有足够的时间来做加分号、逗号这些事的。

    画个图吧,画上箭头,或在框里写上数字,反正,用尽一些可以帮你描述问题的方法。我们的目标是解决问题,所以不要局限于键盘,请尽情使用你的纸笔。

    当我们在写算法时,我们需要确保我们能表达出所有内容并能应对所有可能的场景。在找到匹配的时候理应返回正确的答案,在没找到匹配的时候也要放回正确的答案。

    我们已经能确定解决该问题需要的一系列步骤(在编程领域,我们称之为算法),并且我们已经不同情境中进行都尝试并都得到正确的结果。基于这点,我们就认为该算法是有效的,接下来我们就该将它算法化。

    写伪代码,然后转化成代码


    这下我们需要开始考虑语法、函数参数及语言规范了。你或许不能一下就把代码写的很全面,没关系,先写下你会的。

    代码中我可以留空了一部分。我是故意的,因为我不确定在JavaScript语言中给字符串切片的语法,所以我会在下一步中查询该语法。

    不要猜


    我发现新手程序员常范这样一个错误,就是在网上找到一些觉得可能有用语句,不经测试便将其加到程序中。你不理解的代码段越多,就越不可能找到适合的解决方案。

    随着你不确定的内容增加,你的程序出错的方式会呈指数式增加。当你有1处不确定的时候,你程序确实只会因为这1个原因而出错。

    但是如果有2处不确定,出错就有3种情况(A处出错,B处出错,或者AB都出错)。如果有3处不确定,就有7种情况。到时你就很难找到出错原因了。

    附注:程序出错原因的个数如梅森序列:a(n) = (2^n) — 1

    先测试一下你的新代码。能在互联网上找有用的内容是很好的,但是请在将其加到程序中之前,用一个独立的环境进行测试,以确保它能以你认为的方式运行。

    在上一步中,因为不确定在JavaScript语言里选取字符串某个部分的方式,所以就上网搜一下。

    相关报道

  • 相关阅读:
    卸载IE
    js判断是否是object、array
    正则表达式中/i,/g,/ig,/gi,/m的区别和含义
    谷歌地图控制圆圈随缩放自适应大小 js
    WGS84坐标转换GCJ02坐标 JS实现
    Google图片和NASA 网站图片的爬虫
    Yolov_3 网络结构分析
    启动Tensorboard时发生错误:class BeholderHook(tf.estimator.SessionRunHook): AttributeError: module 'tensorflow.python.estimator.estimator_lib' has no attribute 'SessionRunHook'
    MyBatis -- generator 逆向工程
    bat使用方法汇总
  • 原文地址:https://www.cnblogs.com/wangshihong/p/10703813.html
Copyright © 2011-2022 走看看