工作那些年的事兒
也算是在這工作了一年多了吧,看到一些製造型企業工作方式及工作內容,發表一下我的自己感受吧!!
2012年3月份進了該公司,其實說真的從上班的第一天我就沒有安心下來工作,其主要原因是工作方式及管理方式吧,先談談我在其企業工作的內容吧,主要是維護系統及系統新功能開發,我們IT部門總共有二十幾個人,總共分三個級別:一個網絡組,主要維護公司網路、電腦維修、打印機等;一個是ERP組,感覺起來比我們還差,人員比我們還多,十來個人吧,系統比我們系統還要爛,他們主要用的是delphi,也只會寫寫存儲過程之類,涉及到delphi程序的很少;維護我們系統有五個人,當然其中一個是老大咯【老大不懂程序,只懂一些SQL語句,導致我們啥東西都寫到SQL中】,也只會叫我們做做而已,不關心其中的過程,只關心結果,結果OK就行,代碼寫的在爛都OK!!
說一下,先說一下系統的大小吧,系統的使用人數,應用不會超過兩百個人吧,由於沒很好的設計思想和架構,系統是天天是連接超時,天天報錯。說一下其功能吧,系統主要是一個工作流(聲稱WorkFlow系統,但實際上根本沒用上WF),部門文員申請單據、設置簽核流程、單據送核,送核之後郵件提醒第一個人簽核(單據在簽核過程中,填單人員不允許修改其單據),第一個人簽核可退件、可同意,如同意會郵件通知下一個人簽核,如不同意也會郵件通知送核人重新填單和退件理由,如果整個單據簽核人員全同意,則該單據生效。該系統總共有一百個單據,每個單據的簽核規則不同,有些單據是按照時間、按照不同廠別進行區別簽核規則(如,放行條,既安照廠別區分,也安照時間區分,每個廠別簽核人員不同,而且白天和晚上簽核的人員也不同),有些單據可能需十幾個人簽核,如果某個人超24小時間未簽核該單據,系統會自動提醒該人員、該人員單位主管、部門主管有多個小時未簽核。說一下系統使用到技術吧(其實也說不上什麽技術),整體是使用簡單三層(asp.net+sql server),但其中根本沒有體現出簡單三層的思想,邏輯跟數據根本就沒分開,代碼是亂寫,數據層可寫邏輯,表面層也可寫邏輯,呵呵,那邏輯層更加不用說了,你懂的,反正不管你怎麼寫,只要功能實現了就行,一個設置流程的過程中,那個if else不知道有多少(大概有幾十個吧),發送郵件人員有些還是寫死在裏面,我就想如果該人員離職了,我不知道要改多少個地方。那什麽OOP思想啊,設計模式啊,數據庫設計啊等根本在此地都談不上了,但說真的這也沒人懂咯!!說我們組的成員吧,一個是我老大,上面也提到過,SQL很精通,但他一般不寫程序的,只是關心你這個完成沒有,那個實現沒有,不會關心其過程是怎麼實現,裏面代碼是怎麼寫的,不會領導我們怎麼去實現這個功能!!還有一個是招我進來的那位吧,他在這干了三年多, 該系統的大部分功能是寫的吧,當然主要的架構不是他咯,呵呵,他還算這里比較資深的一位了,你們想想該技術部門該有多菜了,說一下他開發的東西吧,使用控件全是微軟封裝的控件(GridView控件、服務端TextBox、服務端Button),前端使用的樣式全還是網下載的,什麽Ajax、json、jsonp、js、CSS、jquery等在他的身上是用不上的,無刷新效果還是使用微軟自帶封裝的,什麽表單驗證會部是在服務端的,而且特別搞笑的是文件全是以二進制存儲在數據庫中,由於時間問題,其實他幾個人,我就不說了!!
個人關點(僅供參考,請大師們點評,謝謝),在軟體開發過程中應該先明確幾個基本的流程:
第一:了解用戶需要解決的問題;
第二:分析用戶需求是否合理及目前技術是否能達到;
(一)了解用戶的使用量(必要的時候使用分步式),系統是否對外開放等;
(二)在分析過程中,應該考慮系統的可擴展性及系統的維護性(不像該系統擴展性不強);
第三:程序設計(包含數據庫設計、前端UI設計、整體架構設計)
第四:編碼(代碼的規範性)
第五:測試(白盒測試、黑盒測試)
第六:發布
第七:維護及擴展