最近工作第一階段告一段落,有了一些深刻的體會,其中再彙總一下程式設計的時候,如何高質量、高效率的完成程式設計任務。我這次兩個月的程式設計是這樣做的,分三個階段:
一、1到2周,半個月:解決最重要的play模組開發軟體架構問題,這個是硬骨頭,啃了兩周時間,基本上把問題都解決了。
二、3周到7周,一月零一周:做出最主要的功能,拿出可執行的東西出來,這段時間大概半個月左右是快速做功能,功能出來以後,需求、測試提出修改意見,花費時間大概也是半個月。
三、8周到12周:不斷進行**優化,優化主要**邏輯,大規模的優化有四次,主要根據需求、功能做優化,調整**結構,把邏輯理清楚。
(1)重要的**邏輯或因為初期的需求,或因為初期理解不深刻,隨著開發的深入,發現不少問題,修改了好幾次。
(2)細節方面就是把**做拆分、主要確保乙個函式只實現乙個功能,公共方法提取出來作為公共類。其他方法放置的位置做了一些特別的優化。
(3)寫了一堆防禦性的程式設計**,已經完成了不少。目前發現還缺少一些防禦性程式設計的**,特別是關於sql注入、指令碼注入等這類安全問題。系統所有外來的輸入都需要做詳細的確認。目前sql指令碼注入問題得以解決,全部採用引數化方式進行傳參查詢。指令碼注入還需要確認一下,由於是網頁無狀態模式,所以頁面間沒有傳值,就看其他填寫的值有沒有做轉碼。
概括總結:為了軟體原型的搭建,將很多任務作都放到後面了,特別是關鍵性的邏輯、關鍵性的**前期寫的邏輯都是有問題的,後期專門重新做了修改、優化。這是有利有弊的。
(a)好處:開發速度感覺確實快了,特別是需求方面的驗證、修改工作都提前了,前期工作確實能紮實不少,這就能保證專案完成的方向基本上是正確的,需求層面、設計層面的問題能夠提前發現、變更,這是非常重要的。
(b)壞處是:做切換任務、優化完善**這類工作會多不少,並且還是必須要花的時間,不能跳過去就發布程式,否則軟體質量沒法保證。這中間花費的時間確實稍多一些,初期的**質量看起來確實太寒酸了點,看初期的**有嘔吐的感覺。
總之:這次需求、設計階段完成的最好!乙個專案完成的關鍵兩要素:做正確的事和正確的做事。
第乙個要素:做正確的事就是需求、設計階段,這次首先滿足了。
第二個要素:正確的做事,目標沒有問題以後。執行的時候確實因為做新功能,難免要走點彎路,很少有一步到位的情況。後面花了將近乙個月的時間做優化**。這**優化就是一項很關鍵的工作了,如果不做**優化,那**確實沒有質量可言,目前**優化還在繼續。
近兩個月工作日誌
從3月18日到今日,接近兩個月的時間,一直在做的一件事,就是為 xx公司開發庫存管理系統。最近終於開發完畢,想著坐下來好好總結總結。1 入庫模組 對入庫產品進行登記,並可列印出條形碼。可匯出入庫記錄。2 出庫模組 對出庫資訊進行登入,並可匯出出庫記錄。3 查詢模組 可查詢庫存資料 可匯出庫存資料,並...
筆記 使用VIM開發軟體專案
學習 easwy的vim專欄 記的筆記。1.在檔案中開啟外部檔案 gf 開啟當前游標處的檔案 ctrl w f 在水平分隔視窗開啟當前游標處的檔案 find 在 path 裡找到檔案並編輯 2.顯示source的檔案 scriptnames 3.tags tag 跳轉到指定的標籤 tags 顯示標籤...
pandas獲取近兩個月時間的index
為了通過近兩個月的日期作為index,製作pandas庫的dataframe,因此我需要分別獲取近兩個月的天數,再用pandas.data range start,end,periods 生成近兩個月的表頭。有兩種思路 1 獲取兩個月的起始與結束日期 2 獲取兩個月的起始日期和天數。天數其實就是基於...