如何快速瞭解一個系統
引言:
有時候我們開發專案不是從專案一開始就參與的,那麼,如何在專案進行到一半時,儘快的瞭解並上手這個專案,或者在專案已經完成的情況下,如何進行重構優化維護,這些都需要我們儘快瞭解專案。
------------------------------------------------------------------------------------------------------------------
1. 「當個小白」
把自己當做使用者吧,看看自己的需求是什麼,自己的問題是什麼。這個會從巨集觀上決定你的大方向不會走偏,同時也可以很好的幫助你瞭解這個系統是幹嘛的。
從使用者的角度出發,我是幹什麼的,我平時都要做哪些事情,我現在有哪些問題需要解決,這個系統能幫我做哪些事情,這個系統用的是否容易上手……在這個體驗的過程中,相信你就會清楚自己要幹什麼了。
2. 「開發文件 & 資料庫」
目前個人認為,熟悉資料庫是很快捷的一個方式。
因為資料庫是根據需求來的,那些表,欄位是不會無緣無故冒出來的,相信前面的程式設計師也是費了一些心思根據需求設計的。而且,從程式碼來看,實現方式多種多樣,但是資料庫還是比較固定的,各種邏輯功能都是以它為基礎建立的。理清楚這些表的結構關係,每個欄位的意義,這個系統你也就瞭解的七七八八了。
當然,開發文件,交接文件,這些前人留下來的資料也是很好的參考資料。而且,有時候, 本人指導也不如文件來的實際,因為本人記得沒他文件記得全,同時文件的資訊不會失真。
3. 「 模式 | 框架 | 架構 | 平臺 」
很多時候專案難以上手的原因也在於不瞭解的專案中的設計模式、框架、架構、平臺。
因為你可能知道每句程式碼是什麼意思,但是放在一起就不知道它們在幹什麼。或者你知道它們在幹什麼,但是不知道為什麼要這麼寫。如果讓你寫程式碼,你不知道怎麼從哪裡寫,寫些什麼。
這時候你就需要知道,這個系統用什麼設計模式了?為什麼要用這個設計模式?這個系統的架構是什麼?在這個架構上如何實現功能的?以及自己是否熟悉這個框架,這個平臺。如果其中有不熟悉,查資料,看視訊,儘快的去掌握這些。
4. 「走一條線」
很多人會說,走一條線你就明白這個系統了。
的確,在你上面的基礎打好了之後,通過熟悉系統中的原始碼。走幾條線是一個很好的方法。上面的內容很像是理論,而這個就很像是動手實踐了。
關於理論和實踐,結合起來是一個很好的辦法。這裡我的個人經歷就是,理論有時候過於抽象枯燥,難以結合實際;而實踐有時候難以明白原理,或者與一反三。這時候,理論聯絡實踐也需要結合自己的情況進行優化,可以上來簡單的實踐明白難點,提出問題,為理論學習提供方向,理論學習中也可以不斷實踐,驗證自己的成果。
至於這個節奏,需要自己探索。
5. 「研究技術難點」
在上面的內容都完成之後,就可以上手開發或維護了,如果還是不知道怎麼寫,照著之前的程式碼寫一條線就OK了。現在來說,應該可以說已經上手了。至於業務範圍內的具體技術難點,自己研究就好了。
------------------------------------------------------------------------------------------------------------------小結:
這裡只是提供一個簡單的流程以作參考,相信在做過一些專案之後,這些已經成為一種本能或者習慣。如果你是技術大牛,有多年工作經驗的人,可能只需要瞭解一下需求,簡單走一遍程式碼,就可以很好的上手了。所以,如果說經驗較少,自己很不瞭解要做的專案,難以下手,可以參考一下流程,看看自己在什麼問題上止步不前。
最後,希望通過不斷的總結,將一些事情具體流程化,從而不斷自己的效率。
相關推薦
如何快速瞭解一個系統
引言: 有時候我們開發專案不是從專案一開始就參與的,那麼,如何在專案進行到一半時,儘快的瞭解並上手這個專案,或者在專案已經完成的情況下,如何進行重構優化維護,這些都需要我們儘快瞭解專案。 -----
如何快速瞭解一個業務,融入開發
1、業務維度 應用場景 使用者角色(各角色使用系統) 業務架構 核心鏈路(主線) 關鍵節點展開(核心鏈路) 周邊功能 業務目標 2、技術維度 工程情況 程式碼腳手架 技術棧 部署情況
如何快速瞭解一個接手的舊專案
最近接手維護一箇舊專案,瞭解起來頗為費力,專案經理給我們說了一個方法,我覺得挺好,在這裡記錄一下。 首先了解這個專案由那些框架架構,先了解這些框架,然後選擇一個主流程,建一個test類,模仿其他類,將該類與相關的框架集合,比如spring,struts2,hibernat
瞭解一個新系統的3種主要方法
對於接手一個新系統的人來說,需要儘快的瞭解系統功能,上手,解決問題,主要的3個途徑是: 1、資料庫表結構:核心的表結構是一個功能設計最終落地資料的提現,通過表結構和欄位的資訊,確定資料流的流向與程式最終結果的儲存。 2、程式碼:主流程的核心程式碼,是業務功能實現的直觀提現。一些細節的邏輯
如何快速瞭解並分析一個行業
本文轉自知乎 作者:空白白白白 ————————————————————————————————————————————————————— 我們先模擬一個場景:現在讓你一週瞭解船舶業,面對一個聞所未聞的行業,你怎麼分析? 你知道這個行業排名前十的企業嗎? 你知道這個行業這幾年的發
做專案的研發模式,即怎麼研發一個系統,一步一步怎麼做:UP、RUP、迭代式、瀑布式、快速原型、敏捷開發,區別
做專案的研發模式,即怎麼研發一個系統,一步一步怎麼做:RUP、迭代式、瀑布式、快速原型,區別 1首先說迭代式,和瀑布式,這兩個理解了,就基本理解了,研發模式。 1)瀑布式,一步一步做,所有工作都做完,如6個月,即整個系統研發完成,才能看到產品。 典型例子:就是蓋房子,不可
6小時手把手帶你快速做一個自己的Java學生資訊管理系統之Java學生資訊管理系統專案原始碼視訊教程
本視訊教程一共分為四個階段,每個階段都會是上一個階段的擴充套件,每一個階段的系統都可獨立作為一個完整的系統。第一階段是Java學生資訊管理系統,完成了學生資訊的管理、班級資訊的管理、教師資訊的管理、以及
一個系統,搞定閒魚服務端複雜問題告警-定位-快速處理
引言 服務端問題排查(服務穩定性/基礎設施異常/業務資料不符合預期等)對於開發而言是家常便飯,問題並不可怕,但是每天都要花大量
linux 快速備份恢復系統目錄
linux 快速備份恢復系統目錄#!/bin/bashsrc=/server/system_backup/dst=/backup () {rsync -av --exclude={"/proc","/sys","/run","/server"} $dst $src}recovery () {rsync -av
如何教你快速通過一個cmd命令啟動Oracle的兩個相關服務
安裝目錄 startup ice 11.2 start 服務 文件 我們 font 你安裝好了Oracle數據庫之後。 它都會默認開機自啟服務。 而我們為了節省電腦資源就把它給調為手動。 我們調為手動之後以後要用到Oracle數據庫就必須再去服務裏面一個一個去啟動。 這樣是
快速構建一個 Springboot
pan -1 conf tomcat one feature 添加 自動配置 span 快速構建一個 Springboot 官網:http://projects.spring.io/spring-boot/ Spring Boot可以輕松創建可以“運行”的獨立的,生產級的
六招助你快速建設一個優秀網站
怎樣建網站 網站建設 站長都知道一個優秀的網站對網站的影響有多重要,不僅可以為用戶帶來驚喜,還可以給網站帶來意想不到的收獲。而要建一個優秀的網站該怎樣建網站,一般有哪些步驟呢?下面就一起來分析一下。 第一、對網站的目的定位要清晰。對於網站目的的定位,每個人都不一樣的看法,但是從整體上來說,網站建
快速部署一個LNMP
lnmp1.安裝nginx # wget http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.8.1-1.el7.ngx.x86_64.rpm # rpm -ivh nginx-1.8.1-1.el7.ngx.x86_64.rpm 2.安裝
Laravel入門及實踐,快速上手社交系統ThinkSNS+二次開發
title 瀏覽器 extend 成了 migration 如果 編寫 三種 views 【摘要】自從社交系統ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之後,很多人都說技術門檻擡高了,其實你與TS+的距離僅僅只是學習一個新框架而已,所以,我們今天來
快速排序,一個愛情故事-java版
-- .com span 得到 跳出循環 div public while 五步 public static void myquicksort(int[] ages,int girl,int boy){ //這是一個站在數組兩端,追求完美愛情的故事 //年齡
如何快速知道一個顏色的rgb值
編輯 如何 win7 rgb 參考 cnblogs mage 技術分享 顏色表 1.如果你想使用某種顏色缺不知道rgb值是多少,可以將一張圖片用系統自帶的畫圖(我的系統是win7)0工具打開,點擊編輯顏色就會出現調色板,然後就可以選擇查看具體顏色的rgb值了 2.如果
使用 pyenv 可以在一個系統中安裝多個python版本
當前 pypy can 寫入 應該 環境 bash ssl local Installl related yum install readline readline-devel readline-static -y yum install openssl openss
我當即點了接受馬上傳來另一個系統鈴聲
fff dea acf aced cdc caf aca html ccf http://baobao.baidu.com/article/246f8b739fb8c8f130b6e1483f196c58.html http://baobao.baidu.com/arti
弄一個系統登錄菜單
eset etc () name nco clas path public str 1 <%@ page contentType="text/html" pageEncoding="UTF-8"%> 2 <% 3 String path = re
感悟:決定一個系統走勢是多因素構成,而非單一因素決定。
.get key eve while src 一個數 遺傳 隨機 初始化 例如癌癥,醫生常說抽煙致癌,不要抽煙,但實際生活中抽煙長壽的人不少,我的姨婆九十多歲了,每日抽煙喝酒,身體也不錯。決定癌癥的因素很多,例如遺傳,飲食,起居時間,居住環境,化工汙染等等。下圖轉自一份醫學