JavaScript——编程真善美

Posted magic-dev

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript——编程真善美相关的知识,希望对你有一定的参考价值。

编程真善美

命名风格:

驼峰命名法

小驼峰法

变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写:camelCase

大驼峰法(即帕斯卡命名法)

相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名属性命名空间等:CamelCase

下划线命名法

单词间用下划线(_)分割 :underscope_case

编程切入点:

先制造核心发动机,不用忙着写主程序,每个方法要有文档:

例子:输入给定范围内的素数

package cn.edu.mju.dev;

import java.util.Scanner;

public class PrimeFinder 

    /**
     * main function
     * @param args
     */
    public static void main(String[] args) 
        Scanner scanner = new Scanner(System.in);
        System.out.println("start:");
        int begin, end, count = 0;
        long sum = 0;
        begin = scanner.nextInt();
        System.out.println("end:");
        end = scanner.nextInt();
        for(int i = begin; i <= end; i++)
            if(isPrime(i)) 
                count ++;
                sum += i;
                System.out.print("\t"+i);
                if(count % 10 == 0) System.out.println();
            
        
    
    
    
    /**
     * 判断是否是质数
     * @param 带判定的数
     * @return
     * true 是质数
     * false 不是质数
     */
    private static boolean isPrime(int num) 
        // special case
        if(num <= 1)    return false;
        if(num == 2) return true;
        // general case
        int i;
        for(i = 2; i < num; i++) 
            if (num % i == 0) break;
        
        return i == num;
    

上例算法不够先进,我们需要进行代码的优化,只要判断待测数num能不能被2-待测数的平方根√num整除即可:

package cn.edu.mju.dev;

import java.util.Scanner;

public class PrimeFinder 

    /**
     * main function
     * @param args
     */
    public static void main(String[] args) 
        Scanner scanner = new Scanner(System.in);
        System.out.println("start:");
        int begin, end, count = 0;
        long sum = 0;
        begin = scanner.nextInt();
        System.out.println("end:");
        end = scanner.nextInt();
        for(int i = begin; i <= end; i++)
            if(isAdvPrime(i)) 
                count ++;
                sum += i;
                System.out.print("\t"+i);
                if(count % 10 == 0) System.out.println();
            
        
    
    
    
    /**
     * 判断是否是质数
     * @param 带判定的数
     * @return
     * true 是质数
     * false 不是质数
     */
    private static boolean isPrime(int num) 
        // special case
        if(num<1)    return false;
        if(num == 2) return true;
        // general case
        int i;
        for(i = 2; i < num; i++) 
            if (num % i == 0) break;
        
        return i == num;
    
    
    /**
     * 判断是否是质数(大数据适应版)
     * @param 带判定的数
     * @return
     * true 是质数
     * false 不是质数
     */
    private static boolean isAdvPrime(int num) 
        // special case
        if(num <= 1)    return false;
        if(num == 2) return true;
        // general case
        int i;
        int sqrt = (int)Math.sqrt(num);
        for(i = 2; i <= sqrt; i++) 
            if (num % i == 0) break;
        
        return i == sqrt + 1;
    

总结:

  1. 测试驱动的开发:(Test-Driven-Development)
  2. 模块化开发
  3. 技术沉淀

 

以上是关于JavaScript——编程真善美的主要内容,如果未能解决你的问题,请参考以下文章

了解前端JavaScript中异步编程的发展

Javascript异步编程的4种方法

Javascript异步编程的4种方法

Javascript异步编程的4种方法

(转载)Javascript异步编程的4种方法

Javascript异步编程的4种方法