2015年7月20日 星期一

程式人員最重要的工作-思考並下決定

最近因為工作上的關係,在公司寫了一篇專題文章  待辦事項vs警告和提醒,如果有興趣的朋友,可以參考一下。

我們在完成系統時,往往花了很多的時間去確認程式的完整度和測試程式是否有BUG。在花了這麼多的時間之後,如果要加上待辦事項,或是異常的警告;這時就會面臨一個抉擇,是要修改原來的後端過帳程式呢?還是獨立用另外一組程式來做新功能?

如果只是一二個程式的修改,一般都會選前者;不過如果是會一直追加的功能呢?例如異常的提醒就是會一直加的功能。首先會是一二個異常的提醒,例如庫存不足時提醒。接下來USER就會說那庫存都可以提醒了,那支票到期是不是可以提醒?上班忘刷卡是不是可以提醒?主管簽核超過時間可否提醒?....然後你就會發現異常的提醒功能可能不會比ERP系統小。

這時如果你選擇的是前者,我想這時程式應該已經複雜到很難改變的地步了,要再找人訓練應該有困難了。如果你選的是後者,那至少系統比較好理解,可以分派給不同的人,擴充性是比較好的。

這樣講好像很簡單,問題是一開始都只是一二個小問題,怎會知道後面會變化這麼大?都改了這樣一大堆程式了,那是要回去重頭選擇第二種方式,把程式改回去,還是就這樣用第二種方式,程式繼續給他複雜下去?

判斷是程式人員最重要的工作,選對上天堂,選錯下地獄。千萬不要聽信USER給你的訊息,你一定要自己加以判斷,後續的變化和追加是不是會很多?因為那都會變成你的工作量。我相信你想過,做了決定,不論是對是錯,你心理都會舒服一些,因為那是你選的。

選錯了沒關係,在系統沒變複雜前,修正過來就行了。重要的是你想過,知道你為什麼做了這樣的選擇。這樣經驗多了,你的選擇對的機率會提高很多。

2015年7月14日 星期二

Flow,再討論一下Flow

Flow這個幾年前電腦公司大力宣傳的口號,日前正用另一種方式在企業界發聲--線上簽核。
筆者覺得線上簽核對資訊人員而言是一個大工程。線上的保密、資料的傳送,加上IOS和android不同平台的程式要寫,工程真的很浩大。
不過線上簽核對企業的幫助是不是很大?用小小的螢幕要簽核文件真的方便嗎?
工作流程和待辦事項 這篇文章大家可以參考看看。雖然有提到一些Flow的做法和應用,不過筆者覺得,目的是什麼?它有沒有被達成,是比較重要的。技術只是達成目的的手段。

2015年7月9日 星期四

WEB前端列印

最近筆者和客戶見面,談到WEB的一些解決方案。發現有些工程師覺得Browser就是在WINDOWS上執行的程式,所以列印方式應該和在WIN FORM上的列印方式應該很接近。其實Browser為了安全性和本身作業的獨立性,不會和作業系統做很緊密的結合。
因為Browser有這樣的特性,所以要做類似ERP報表套印的程式,就變的比較麻煩,筆者寫了一篇有關 WEB列印 的文章,大家如果有興趣,可以連進去看看,參考一下。
對WEB老手來說,這應該是基本知識了,如果你剛進入WEB寫HTML,希望這篇文章對你有幫助。

2015年7月1日 星期三

DataAware簡易說明

最近一直在忙做產品的影片,其中有做到在WEB上的DataAware。如果對DataAware案例有興趣的朋友,可以參考一下 DataAware的簡介說明 這個影片。

既然都提到DataAware了,就來說明一下它的應用和好處吧。我們在做程式設計時,畫面顯示的資料和資料庫儲存的資料,基本上是連動的,一般而言,以下圖為例

左方的GRID如果筆數更改,右方EDIT的對應欄位也要跟著改變。同樣的如果右方EDIT修改內容,左方的GRID內容也要跟著改變。因為是他們都是同一筆資料。


現在問題來了,每個對應的欄位都要寫程式去改變其他元件(GRID、EDIT、CHECKBOX等),工程是不是太大了。如果資料TABLE加一個欄位,是不是程式又要加一堆互動的程式?

DataAware就是為了解決這個問題。它的原理是以DataSet為中心,所有和DataSet有關的元件,只要有值變更,就會通知DataSet,然後DataSet再通知相關元件做資料的更新,達成資料的一致性。

有了DataAware和資料感知元件,程式人員就不用花心力在資料的同步上,可以減少大量的程式負擔。

2015年6月17日 星期三

Delphi XE8安裝後沒有Android SDK

Embarcadero Delphi XE8 安裝時會讓使用者選取是否要安裝Android SDK及NDK,但是不知是否因為我是裝在VirtualBox中的關係,安裝後在Tools > Options 中的 SDK manager會有錯誤,顯示找不到檔案。該怎麼辦呢?
安裝後發現有3個錯誤警告

2015年6月16日 星期二

建立GCM API key

在建立GCM專案時需要API Key,網路上找到的範例是舊版的介面,因此重新整理了新版介面的操作過程供大家參考。


1建立專案

進入https://console.developers.google.com,建立有Cloud Message功能的專案。


2015年5月29日 星期五

Delphi技術探討

近來看了二篇Delphi的技術文章,Delphi 在Script 不缺席 和 Delphi 寫DLL需注意的事項 這二篇文章,第一篇提供了一些Delphi的支援訊息,第二篇則提供了作者的實作經驗。有興趣的人可以參考一下。
筆者一般寫的都是BPL,DLL比較少做,不過以前曾經用DELPHI5寫過MRP的DLL展算程式,看到DLL不能用ADO Connection,心中覺得納悶,那我是如何解決?於是回頭去看了一下以前寫的程式,發現我是用BDE做的。這下尷尬了,BDE已經進入末期了,不知客戶還有沒有在用這個程式是不是要重新改寫。
也許對DLL也要再花點時間研究、測試了。