偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

當(dāng)我完善幾年前的一個老項目時,我做了哪些改進(jìn)

移動開發(fā)
最近幾個月利用業(yè)余時間完成了一個項目。這個項目其實(shí)是2008年我在前公司做的一個web項目。后來客戶想要對項目做升級,牽扯到一些功能的變動及界面的修改。由于當(dāng)時整個項目的架構(gòu)和主要編碼都是我做的,所以前公司老總喊我來接這個項目,使用業(yè)余時間完成。我考慮了一下答應(yīng)了。為了掙點(diǎn)錢養(yǎng)家就拼點(diǎn)唄。

[[134665]]

最近幾個月利用業(yè)余時間完成了一個項目。這個項目其實(shí)是2008年我在前公司做的一個web項目。后來客戶想要對項目做升級,牽扯到一些功能的變動及界面的修改。由于當(dāng)時整個項目的架構(gòu)和主要編碼都是我做的,所以前公司老總喊我來接這個項目,使用業(yè)余時間完成。我考慮了一下答應(yīng)了。為了掙點(diǎn)錢養(yǎng)家就拼點(diǎn)唄。

幾個月前在接這個活前,我曾寫過一篇文章如果讓我完善幾年前的一個項目,我會做哪些改進(jìn)?。主要從工程實(shí)踐的角度講述了我將進(jìn)行那些改進(jìn)。

經(jīng)過幾個月的辛苦開發(fā),終于完成了這次的功能升級,拿到了報酬。針對這種遺留系統(tǒng),我來談?wù)勎揖唧w都進(jìn)行了那些改動。

1. 不用動的地方盡量不動。由于代碼是08年我作為實(shí)習(xí)生寫的,那代碼自然慘不忍睹,有些地方寫的非常累贅。經(jīng)過幾年打磨的我對代碼質(zhì)量要求已經(jīng)上升了很多個層次,看到這些爛代碼不禁忍不住要重構(gòu)。但是我忍住了,因?yàn)檫@是個遺留系統(tǒng),當(dāng)時就沒有寫單元測試,所以重構(gòu)過程肯定風(fēng)險較大。另外工期只能用業(yè)余時間,要以新需求為主,只改開發(fā)新需求時需要碰的那些代碼。

2. 使用github作為代碼托管服務(wù)。即使是一個人開發(fā),也需要使用源代碼管理工具,這樣做起來自己心里才有底。而github自己用了好幾年了,非常好用,而且自己買了github的會員。所以這次把代碼以私有倉庫的方式放在上面。隨時寫,隨時提交,比自己搭建源代碼服務(wù)器方便的多。

3. 引入bootstrap框架作為前端框架。這次升級一個重要任務(wù)是對前端進(jìn)行優(yōu)化,使其能兼容多個瀏覽器。08年的時候大家都在用IE6,IE7,IE8都很少有人用。過了這么多年網(wǎng)站早都不能兼容現(xiàn)代瀏覽器了,而且屏幕分辨率適配也很差勁。作為一個前端菜鳥,我只花了一點(diǎn)時間學(xué)習(xí)了bootstrap,就快速把它引入到了我的項目中。我基本上把以前的css、js代碼都刪除了,使用bootstrap輕輕松松的就把這個老站改成了一個兼容多個瀏覽器,多種屏幕尺寸的網(wǎng)站。

4. 升級.net中使用的各種組件。這個網(wǎng)站使用的是WebForm框架,版本為2.0。我發(fā)現(xiàn)在現(xiàn)代瀏覽器下WebForm組件生成的前端HTML,CSS及JavaScript存在大量不兼容的問題。網(wǎng)站頁面變得很不穩(wěn)定。當(dāng)升級到4.0平臺后,問題得到大大改善。另外我還使用了AjaxControllToolKit組件,發(fā)現(xiàn)在某些瀏覽器下(比如360瀏覽器)頁面局部刷新不了。所以我也一并升級到了最新的15.3版本。雖然把各種組件都升級了,還存在一些JavaScript問題,比如日歷選擇框無法正常顯示與選擇。我采用的方法就是拋棄掉舊的JS代碼,尋求成熟的JS框架來替代。比如使用bootstrap-datepicker組件來實(shí)現(xiàn)日歷框的選取。

5. 采用最新的Visual studio編輯器。微軟終于想通了,與其讓我們天朝成天用盜版的Visual Studio,不如直接開放一個社區(qū)版出來。我下載了Visual Studio 2013社區(qū)版,并給其裝上了ReSharper組件。由于ReSharper是收費(fèi)的,但是有差不多1個月的試用期。之前一直使用Intellij開發(fā)工具做開發(fā),能在Visual Studio 2013中使用它也是覺得很爽。

6. 引入了package管理工具,使用Nuget來安裝、管理各種項目依賴。使用過程中我發(fā)現(xiàn)Nuget沒有Java平臺下的Maven或Gradle強(qiáng)大。很多依賴都不是最新版本,管理理念也不太一樣。不過聊勝于無吧。像bootstrap等前端組件以及ajaxcontrolToolkit等后端組件我都是通過Nuget來管理的。

7. 使用事務(wù)機(jī)制處理系統(tǒng)中的核心邏輯。這個系統(tǒng)是一個編碼管理系統(tǒng),主要處理炸藥、雷管編碼的整個流通過程。系統(tǒng)有的時候會出現(xiàn)重復(fù)編碼的情況,比如一發(fā)雷管的編碼同時存在于庫存中和消耗庫中。這是由于雷管從在庫狀態(tài)轉(zhuǎn)換為消耗狀態(tài)時出了問題,并沒有在庫存中刪除該編碼。這次升級我把類似的邏輯都用事務(wù)來處理,一旦發(fā)生異常就會整體回滾,不會造成臟數(shù)據(jù)的情況。

其實(shí)我還想引入的幾個點(diǎn)由于種種原因都沒有完成。

1. 沒有添加單元測試。本來想給Vistual Studio 2013添加單元測試框架,奈何花了幾個小時都沒整好。另外工程目錄方面也需要進(jìn)行一定的調(diào)整來引入測試項目,整了一次沒搞定后也不了了之。由于這次升級80%功能是前端頁面的改進(jìn),涉及后端代碼修改的不多,所以沒有單元測試的情況下修改已有代碼還是比較有信心的。

2. 沒有引入持續(xù)集成。還是時間成本的原因。畢竟這個活都是使用業(yè)余時間完成的,搭建C#棧的CI估計要花上好幾天,所以最后并未實(shí)現(xiàn)。

3. 自動化部署。之前對.NET下的網(wǎng)站的部署都是手動的,將編譯生成后的文件復(fù)制到服務(wù)器上,暫停IIS,重載文件,重新啟動IIS。其實(shí)這些都是可以自動化完成的,自己沒花時間研究,所以也未實(shí)現(xiàn)。

4. 使用成熟的log框架給系統(tǒng)關(guān)鍵邏輯打上log。這個純粹是自己懶,不想做。因?yàn)榧觢og方便自己以后排查錯誤,對客戶來說沒有任何影響,自己就懶得弄了。

5. 沒有引入自動化測試。還是時間成本的原因,編寫web的自動化測試太花時間了,所以只能舍棄。

責(zé)任編輯:chenqingxiang 來源: 網(wǎng)絡(luò)整理
相關(guān)推薦

2021-02-07 18:19:44

RabbitMQ客戶端

2018-12-11 11:30:09

代碼互聯(lián)網(wǎng)編程語言

2022-08-15 14:07:29

機(jī)器學(xué)習(xí)模型

2023-02-19 09:12:23

GNOME指示器

2018-01-15 15:00:06

工程師項目設(shè)計師

2016-01-08 14:45:40

前端技術(shù)發(fā)展方向

2018-11-08 15:37:35

機(jī)房建設(shè)

2022-12-05 18:17:06

技術(shù)

2018-11-12 17:19:48

招商銀行

2022-02-22 20:35:22

公鑰私鑰數(shù)據(jù)

2025-03-06 13:10:32

2023-11-28 12:00:22

應(yīng)用程序API

2013-09-22 09:36:11

2021-04-08 15:12:03

碼農(nóng)開發(fā)CTO

2021-10-22 21:00:38

微軟Windows 11Windows

2020-07-15 15:09:21

Python掃雷游戲Windows

2020-05-08 13:28:53

新擬物UI設(shè)計

2018-01-19 12:56:19

Linux進(jìn)程

2020-11-16 09:02:38

Python開發(fā)工具

2021-04-29 15:53:21

AI 數(shù)據(jù)人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號