Google時代的程式撰寫
最近愈來愈覺得網路時代的程式撰寫工作變得極端的快速多了。原先想將這個題目訂為「網路時代的程式撰寫」,但稍加想想,似乎少了Google
這個威力無窮的搜尋引擎,這樣子的速度提昇又辦不到,故以此題為名。
Google
時
代的程式撰寫,在那些面向上能帶來速度的提昇呢?首先是學習的速度的提昇。過去我們接觸新的程式撰寫知識,除了同儕之間的交流外,最主要的途徑還是透過書
籍或是雜誌。可能遇到的問題是,不知道是否能找到自己所關心主題的書籍或雜誌;找到相關的主題後,不知道是否能找到自己所需的項目。有了網路的存在,發表
的型式變得極端簡化,無數的論壇或個人的blog
,充滿著和各種主題相關的文章,而透過Google
的搜尋,可以輕易又準確的搜尋到這些散落在世界各地的文章。此外,專門的教學網站也提供各種不同的教學文章與範例程式,都大大的助益了新的技術的學習。例如我常造訪的http://www.codeproject.com
就是一個很好的例子。
再來是錯誤排除的速度也大大的提昇了。最簡單的錯誤形式就是compiler error message
,像Microsoft
的IDE
時常會給出一些令人難以理解的compiler error message
。而我最常使用的解決方法,就是把message
直接複製丟給Google
,通常在前一兩個頁面,就會得到自己想要的解答,因為世界如此之大,你會犯下的錯誤,通常在世界各地的論壇上,往往就會出現解決該問題的答案。除了compiler error
之外,程式或程式庫所得到的各種錯誤代碼或錯誤情況,直接丟給Google
,通常也都會有令人滿意的結果。相較起來,在過去一個簡單的錯誤,很有可能阻礙程式撰寫十分漫長的時間,在這個過程中,可能充斥著不斷的錯誤嘗試、遍覽群書或偏詢同儕而不可得等等的活動。提昇錯誤排除的時間,自然大大的加快了程式撰寫的腳步。而類似MSN Messenger
之類通訊軟體的普及,與朋友或伙伴之間建立綿密的人際溝通網絡,彼此交換心得或詢問錯誤排除方法的速度也變快許多。
除
了文章的取得變得多樣化又快速之外,另一個很大的型態轉變,是基於開放原始碼的精神普遍而生的。由於原始碼開放的程度日益普及,網路上散佈著解決各種問題
的原始碼。但除了介面定義良好的原始碼程式庫之外,即使是以開放的型式存在,能直接重複利用的程度並不高。但經過適當的拆解與重組,這類的程式碼還是可堪
重用。於是,程式員開發的型態,就起了很大的轉變。在過去,程式員可能大量的自己重新撰寫所有自己所需要的程式碼,頂多倚靠自己或團體中已經建構良善的程
式庫。但是現在,以隨手可得的程式碼為基礎,許多心力都可以節省下來,但程式員需要的技能卻改變了!在過去,也許程式員不需要太多讀懂程式碼,拆解程式碼
的能力,但在現在,一名具備良好追蹤原始程式碼、拆解原始程式碼能力的程式員,卻極有可能在撰寫速度上勝過撰寫程式碼能力相同的程式員。
在過去,對程式員的訓練也許不甚重視追蹤原始碼以及拆解原始碼。大家重視的是如何撰寫可讀性高的程式,以及設計出具彈性、重用性高的程式。但在開放原始碼的世界中,有太多的程式不僅可讀性低,而且不具彈性、重用性也不高-往往只是為了專門的需要而hack
。
如果具備了追蹤程式碼的能力,除了可以透過現成的程式碼學習新的技術之外,也可以做為拆解程式碼的基礎設施。而要拆解程式碼的第一步,自然是看懂程式碼,
看懂之外,要進一步判斷那些是自己要的,那些不是,同時評估怎麼調整這些程式碼的架構,可以去除掉自己不要的部份,保留自己要的部份,又毋需對現有程式碼
做過大幅度的更動。
具
備了上述的兩項能力,程式撰寫就不再只像是重新建構,或適度組裝自己已有的元件。而像是找尋和自己所需元件相像的元件,經過適當的理解之後,施以最小幅度
的裁切,將其介面修繕成自己所需的介面,淘汰掉其內容中多餘的組成,最後將重新賦予生命的元件與其他無論是自己既有的,或是同樣回收自開放原始碼元件的元
件組裝在一塊,就得到自己想要的東西。
重新思考這整個過程,倘若沒有開放原始碼的幫助,程式員得先花上一段時間學習新技術,然後重新撰寫全新的程式,但在這個時代一切可都不同了。
無論是追蹤原始碼或拆解程式碼都需要特別的一套技巧。有時間我想分享一下。但我的確認識一些人,有程式撰寫的老手也有新手,彷彿都有這兩項技巧的天份,這實在是一件很神奇的事情。
分享到:
相关推荐
跟隨擁有Android Market單一應用程式下載超過20萬人次經驗的開發者,用最短的時間踏實地學會必要的 Android應用程式開發基礎知識,然後...開始開發吧! 還不熟悉Java程式語言,但也想快速學會Android應用程式開發...
在Android平台上,Google Maps API是开发地图应用的重要工具。它允许开发者将强大的地图功能集成到自己的应用程序中,包括定位、导航、路线规划等。本文将深入探讨如何在Android项目中使用Google Maps API,并通过`...
谷歌 Android 手持设备应用程式设计基础 本文将详细介绍谷歌 Android 手持设备应用程式设计基础,涵盖 Android 应用程式的设计原则、Intent 机制、Activity 生命週期、AndroidManifest.xml 文件的作用、Android ...
《Google+Android应用框架原理与程式设计36技》是一本深入探讨Android应用程序开发的专著,涵盖了Google和Android平台的结合以及应用框架的核心概念。这本书旨在帮助开发者掌握Android应用开发的关键技能,提升编程...
Android-Google手持设备应用程式设计入门.wpsAndroid-Google手持设备应用程式设计入门.wps
《深入浅出Android——Google手持设备应用程式设计》是一本专为Android开发者量身打造的实战指南,旨在通过丰富的实例解析,帮助读者深入理解和掌握Android应用程序的开发技术。这本书覆盖了Android开发的基础到高级...
1. **申请阶段:** 学生选择感兴趣的开源团队和项目主题,撰写项目设计和开发提案,包括对项目主题的理解、开发思路、个人背景、技术能力、相关经验和时间规划。提案通过GSoC的官方网站提交给开源团队。 2. **评审...
【谷歌Android手持设备应用程式设计基础】 Android手持设备应用程式设计是开发针对Android操作系统移动设备的应用程序的过程。Android系统是谷歌公司主导开发的开源移动操作系统,广泛应用于智能手机、平板电脑等...
Java手机程式设计入门是针对想要学习如何在移动设备上开发应用程序的初学者的一门课程。Java作为Android平台的主要编程语言,具有广泛的应用和强大的社区支持。在这个领域,开发者可以利用Java的强大功能创建出功能...
《深入浅出Android --Google 手持设备应用程式设计》这本书是为那些希望掌握Android应用开发的初学者和进阶者准备的宝贵资源。通过实际的开发案例,它旨在带领读者深入了解Android平台上的应用程序设计,从而能够...
Google时代的工作方法 如何解放你的头脑、发现你想要的、作对你想做的.pdf
《深入淺出 Android -- Google 手持設備應用程式設計入門》是一本专为Android初学者设计的电子书籍,旨在引领读者逐步掌握Android应用开发的核心技术。这本书通过系统且易于理解的方式,帮助读者建立起坚实的基础,...
本软体的程式码是基於其他开放原始码软体所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面[1]。软体的名称是来自於又称作「Chrome」的网路浏览器图形使用者界面...
解決無法在Android系統上無法登入Google系統、無法使用Google Play等服務的工具
《Android应用框架原理与程式设计》是一本深入探讨Android操作系统核心——应用框架的书籍,旨在帮助读者理解Android程式设计的基础和高级概念。该书通过详细阐述Android框架的机制,为开发者提供了一条清晰的学习...
Google时代一定要会的整理术
【大型门户网站程式/太湖在线】是针对特定领域或地区,如太湖地区,设计与开发的一类综合性网络平台。这类网站通常包含丰富的资讯、服务、互动功能,旨在为用户提供全面的信息查询、在线交流以及社区服务。从给定的...