成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

當我完善幾年前的一個老項目時,我做了哪些改進

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

[[134665]]

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

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

經過幾個月的辛苦開發,終于完成了這次的功能升級,拿到了報酬。針對這種遺留系統,我來談談我具體都進行了那些改動。

1. 不用動的地方盡量不動。由于代碼是08年我作為實習生寫的,那代碼自然慘不忍睹,有些地方寫的非常累贅。經過幾年打磨的我對代碼質量要求已經上升了很多個層次,看到這些爛代碼不禁忍不住要重構。但是我忍住了,因為這是個遺留系統,當時就沒有寫單元測試,所以重構過程肯定風險較大。另外工期只能用業余時間,要以新需求為主,只改開發新需求時需要碰的那些代碼。

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

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

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

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

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

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

其實我還想引入的幾個點由于種種原因都沒有完成。

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

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

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

4. 使用成熟的log框架給系統關鍵邏輯打上log。這個純粹是自己懶,不想做。因為加log方便自己以后排查錯誤,對客戶來說沒有任何影響,自己就懶得弄了。

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

責任編輯:chenqingxiang 來源: 網絡整理
相關推薦

2021-02-07 18:19:44

RabbitMQ客戶端

2018-12-11 11:30:09

代碼互聯網編程語言

2022-08-15 14:07:29

機器學習模型

2023-02-19 09:12:23

GNOME指示器

2018-01-15 15:00:06

工程師項目設計師

2016-01-08 14:45:40

前端技術發展方向

2022-12-05 18:17:06

技術

2018-11-08 15:37:35

機房建設

2018-11-12 17:19:48

招商銀行

2022-02-22 20:35:22

公鑰私鑰數據

2025-03-06 13:10:32

2023-11-28 12:00:22

應用程序API

2013-09-22 09:36:11

2021-04-08 15:12:03

碼農開發CTO

2021-10-22 21:00:38

微軟Windows 11Windows

2020-07-15 15:09:21

Python掃雷游戲Windows

2020-05-08 13:28:53

新擬物UI設計

2018-01-19 12:56:19

Linux進程

2020-11-16 09:02:38

Python開發工具

2021-04-29 15:53:21

AI 數據人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区中文字幕在线观看 | 亚洲精品一区二三区不卡 | 亚洲一区二区中文字幕 | 久久成人免费观看 | 2022国产精品 | 国产成人精品午夜 | 亚洲午夜在线 | 成人在线精品视频 | 精品久久久一区二区 | 国产精品高清一区二区三区 | 午夜视频一区二区 | 日韩精品一区在线观看 | 成人在线一区二区 | 国产性色视频 | 欧美不卡 | www.国产 | 一级视频在线免费观看 | 免费黄色a视频 | 国产黄色av电影 | 日韩和的一区二区 | 亚洲嫩草 | 亚洲一区国产精品 | 亚洲色图综合网 | 最新免费av网站 | 日本亚洲一区二区 | 伊人网站在线 | 日韩成人一区 | 免费午夜剧场 | 久久久精彩视频 | 欧美精品一区二区三区在线播放 | 国产亚洲一区二区三区 | 欧美久久久久久 | 日本亚洲精品成人欧美一区 | 九色av | 日本a v在线播放 | 国产福利一区二区 | 涩涩视频在线观看 | 懂色av一区二区三区在线播放 | 高清视频一区二区三区 | 6996成人影院网在线播放 | 国产午夜在线 |