2012年2月28日 星期二

開發的苦惱

最近忙著開發軟體上的功能,關於程式架構方面的問題,雖然仍不斷的思考,但是卻始終沒有時間作一個沈澱與整理,遲遲無法的進行的原因,在於我得不時轉換自己的角色,有些時候需要作為架構師,仔細規劃程式碼的連結,但是另外的時間,需要放下一些對於程式品質的堅持,以最短的時間去堆積出需要的功能。

世界是很現實的,不懂寫程式的人是不會理會所謂的「軟體工程」,如果在時間內沒有可見的成果,就很容易被認為是「沒有能力」或是「作不到」進行失去許多合作的機會。由此可以對於有時無意發現一些所謂大𢊰出品的軟體,居然也會有一些「不合身分」錯誤的現象有一個合理解釋。

「先求有、再求好」是一個對的方向,只是在求「有」的過程中,會不會失去許多程式上的彈性,或對於未來造成一些負面的影響,是不能夠被預期的。而要時時放出自己不能滿意的程式,更是一種心理上的壓力。想好好靜下心來把程式寫好,在現實生活中就是這麼困難。

雖然一開始覺得,原因只在於人少而已。不過後來仔細想過,又不是這麼一回事。當然人力的缺乏是混亂造成的原因之一,不過人多了也不見得能夠讓我變得輕鬆。隨著程式不斷的發展,發覺「第一線的經驗」也是重要的。
雖然就急迫性而言,一個好的框架,好的程式發展模式是很重要的。不過程式是服務人的,框架也不例外,都是為了要找出解決問題好流程。因此,花費長時間去「刻」而不去思考實際的狀況下碰,其實和閉門造車沒有多大的差別。事實證明,數多月前寫好的程式碼,已經經過了兩三次大幅度的調整,除了慶幸自己能夠在程式碼不多的狀況下發現,也驚訝修改後的結果竟是如此的複雜。

慢慢的,開始漸漸理解以往學習別人的框架的時候,那種無法理解又難以記憶的感覺。隨著遇到的程式問題越多,也慢慢的可以猜出部分背後的道理和的原因,所以也了解其它人沒辦體會的部分。而現在的自己,應該算是一腳踏入這個領域了吧!

和學術研究不同,實務中程式的發展時間是比較硬的,需要在對的時間產出結果,拖到進度的結果,可能不是一個「下學期再繼續」,而是「謝謝,再連絡」的下場。因此,雖然知道正在使用「疊床架屋」的技法造房子,心理十分不情願交付給人的不安定的程式,但是迫於現實,得將自己的那些原則放一邊,先堆出需要的結果再說。

而開發框架則不同,需要不斷反覆的思考,因為要造出的,是能夠應付未來三五年,或是更久時間的程式,所以必須想了又想,檢查再檢查,讓可能出現的問題越少越好 ,一來是為了在忘了程式碼之後,可以儘可能減少一些避免需要回頭修改的狀況,二來則是不要讓太多相依於它的程式碼,在改動的過程中出現錯誤。

這樣的開發,就好的一面用許多力氣去打好地基,但昰一面又用簡單的工法去造出「樣品屋」等級的房子。要等到地基全作好,才能進一步堆積出新的房子。不知道要等待多久,在兩種截然不同的思緒中來回奔波,心情上的壓力,就是目前工作裡一個程式人員開發的苦惱。

沒有留言:

張貼留言