案例一:缩排与分段的差异
//一行版class Demo1{public static void main(String[] args){//do something}}
//精简版class Demo1 { public static void main(String[] args) { //do something }}
一行版的程式码在这个範例直接变成注解了!虽然是个极端的案例,不过也直接点出分段与缩排的重要性。现今的潮流,许多的程式码甚至连括弧与分号都能省略,不过这都是建构在缩排
与分段
的写作基本功,本来就是程式设计师该具备的DNA。
案例二:注解
/** * @author Darwin Juan * 目的: 此类别为用来执行 PrintObjectUtils类别所设定的项目,并打印在列印文件上 * Date: 2018/2/12 */public class PrintCheckUtils {}
注解的功用就是让程式设计师本身或其他共同开发人能够快速知道这段程式码的功用;而且不论注解写多少行,编译器都会乎略,不用担心影响执行效能。因此有没有注解都不影响程式执行面,只差在「有写,后续维护人员会感谢你!」
; 「没写,后续维护人员会诅咒你!」
这样而已。
在Java中,注解还有Annotation可用。在IDE中,移到对应物件或方法下就会跳出一些说明框。此外,Annotation在一些开源框架中尚有其他用途,有兴趣的可以去探究探究,Spring是不错的标的!
案例三:电脑根据程式码到底做了什么
//一般认为很笨的程式码class Stupid { public static void main(String[] args) { System.out.println("Hello, world !"); System.out.println("Hello, world !"); System.out.println("Hello, world !"); } }
//一般认为很聪明的程式码class Smart { public static void main(String[] args) { for (int i=0; i<3; ++i) System.out.println("Hello, world !"); }}
怎么看都觉得聪明版的程式码比较像是可以拿高薪的程式设计师写的,事实则不然!实际上笨的程式码在电脑中真的只单纯的列印出三行Hello, world; 反观聪明的程式码则是除了印出三行Hello, world外,还多判断了i是否小于3
这件事3次。其实案例三也是资讯界面试有名的问题,其他还有给你任意三边判断是否能构成三角形,记得回答余弦定理
喔!
案例四:新语法的使用
(for迴圈版)
for (int i=0; i<10 ; ++i) System.out.print(arr1_10.get(i) + " ");
(for迴圈威力加强版-忘记是Java 5还是6以后)
for (int i: arr1_10) System.out.print(arr1_10.get(i-1) + " ");
(Lambda版-Java 8以后)
arr1_10.forEach(i -> System.out.print(i + " "));
Java 8 有了Lambda表示式之后,程式码的清晰度相对提高不少,程式码也可以精简不少;不过由于是新语法(???先把Java 10丢一边吧!)
,真的就要等日久见人心了
(目前还没看到值得一提的负面教材),不过个人是乐见Lambda被加入Java这个大家庭!
案例五:愿不愿意多站在使用者的角度多写一些
public String num2Ch(Double number) { // 做些事将数字转中文大写 ex : 123 -> 壹佰贰拾参;}
原则上是这段就行了,但如果看到以下程式码接续着:
public String numInt2Ch(Integer number) { this.num2Ch(Double.parseDouble(number.toString()));}public String numFloat2Ch(Float number) { this.num2Ch(Double.parseDouble(number.toString()));}...
千万别认为这些程式码是多余的,因为写出这些的设计师,就是比一般人多站在使用者的角度上帮使用的人做好一些防呆机制
,领高薪自然就是天经地义的事了。
总结:
其实程式语言本身并没有好坏优劣的区分,端看使用的人。写程式功力的精进,先要知道自己在写什么(案例1,2),再知道电脑根据你写的做了什么(案例3);当上面两步都觉得自己可以独当一面时,进一步再往使用者想要的是什么迈进吧!
其实会有比较优劣这些想法,多半是被一些商业补习班、证照班招生用语: 语法好上手,程式比较短,...,所影响!
想学好程式,心定下来找个坑先跳下去,熟悉实作到独孤求败时,再找另一个坑跳下去,待久了就是你的!套句等价交换的原则:想要得到什么,就付出什么吧,例如时间!