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;
总结:
- 测试驱动的开发:(Test-Driven-Development)
- 模块化开发
- 技术沉淀
以上是关于JavaScript——编程真善美的主要内容,如果未能解决你的问题,请参考以下文章