1、拿到代碼查看項目當中是否有readme這樣的文件,如果沒有查看是否有文檔之類的
2、代碼當中沒有文檔,那麼就想你的同事或者其他人要這個框架的介紹或者資料
3、先請教別人這個框架的大體思路
4、自己獨立去按照文檔或者其他人說的思路去看代碼
5、不懂的地方全部記錄下面,一次行去問,有的時候很多問題在你看到後面的東西的時候就自然明白了
6、看懂了代碼之後自己嘗試著寫一個,看自己的理解是否正確就這么多了。
Ⅱ 如何高效地學習 Laravel 框架
推薦學習路徑
1. 框架的使用知識學習
基於以上的思想,我創建了 《Laravel 實戰課程》,計劃中有三本(也有可能更多),分別是:
第一本 —— 《Laravel 入門教程 - 從零到部署上線》
第二本 —— 《Laravel 進階課程 - 從零開始構建論壇系統》
第三本 —— 《Laravel 高級課程 - 構架 API 伺服器》
第一本書教授如何使用 Laravel 一步一步構建一個類似新浪微博的應用,書中很多技術話題會被一帶而過,這是有意而為之的,我們希望讓讀者保持對編碼線索的專注,不被篇幅悠長的名詞解釋分心。通過閱讀本教程,你將學到如 HTML、CSS、JavaScript、php 和 Laravel 等 Web 開發相關的基礎知識。不僅如此,本書還會對這些基礎知識點進行延伸擴展,為你講解一些在 Web 開發中更為專業、實用的技能,如 Git 工作流、Laravel Mix 前端工作流、Bootstrap 框架基本使用等。這些知識將為你未來的編程開發奠定下堅實的基礎。
第二本以構建論壇項目 LaraBBS 為線索,展開對 Laravel 框架的全面學習。編碼規范遵循 Laravel 項目開發規范 ,應用程序架構思路貼近 Laravel 框架的設計哲學。在論壇系統的構建中,我們將學到多角色用戶許可權系統、管理員後台、注冊驗證碼、圖片上傳、圖片裁剪,XSS 防禦、自定義命令行、自定義中間件、任務調度、隊列系統的使用、應用緩存、Redis、模型事件監控、表單驗證、消息通知、郵件通知、模型修改器等知識。在本課程的學習中,你不僅能學到使用 Laravel 開發一個論壇項目,還能學到安全優先、高擴展性的大型項目架構經驗。
第三本將以構建 API 伺服器為目標,來展開。目前本課程正在緊張撰寫中,敬請期待。
2. 框架的底層實現學習
學完了以上三本書,你將擁有一定的項目開發經驗,對框架的功能使用也會有一個比較全面的系統性理解。這時候,會是學習『底層實現』的好時機。
底層實現的知識學習,可以從文檔開始,打開 Laravel 的文檔中心 ——d.laravel-china.org,找到最新版本的 Laravel 文檔,然後仔細閱讀 2、3 遍。因為有了上面的項目經驗,此時的文檔閱讀啃起來會輕松多了。
閱讀文檔後,可以嘗試看下 Laravel 底層的源碼,看看這些框架的功能都是怎麼實現的。
學習過程中可以適當做筆記,例如:
zhangbao同學的Laravel 文檔閱讀筆記
leoyang同學的Laravel 源碼分析筆記
錯誤的學習方法
一上來就開始啃文檔d.laravel-china.org。
如果你是新手,有太多的新概念你需要學習,你會發現學習起來非常艱難,甚至懷疑文檔是不是寫的太爛了(社區里經常出現這種抱怨)。
事實上,不是文檔寫的太爛,而是你把文檔用錯了。文檔的『目的』是快速查閱,一份優秀文檔的標準是語言簡練,釋義,這個 Laravel 的文檔做的很棒。但是,文檔並不適合做入門學習使用,上面我們已經講過,原因是信息量太大。
尋找網路上零散的課程進行學習。
如果你想學習單個概念,這些零散的小課程會很方便。但是,如果是想以閱讀大量課程來達到系統性學習的目的,你將會很失望。很多時候你會感覺 —— 你好像學了很多,學了很久,以為自己學會了,但是心裡還是沒底氣。
你需要的是通過項目,完整的項目,將所有的知識串起來去記憶。你的作品,清清楚楚擺在面前,看著你一步步構建出來的一套系統,自信心也會有所增加。
一開始就學習高級話題,如服務容器、服務提供器、Facades、Contracts、Repository 等
很多時候你會發現這些話題晦澀難懂,很難學習。並且即使你毅力比較好,死記硬背,很快也會忘記,學習效率非常低下。然後最重要的,學會這些概念,並無法使你掌握構建一個完整項目的能力。
Ⅲ 如何學習bootstrap框架
全局樣式
1
Bootstrap 中用到一些 HTML元素和CSS屬性需要將頁面設置為 HTML5 文檔類型,即在頁面頂部添加「<!DOCTYPE html>」
2
布局容器:Bootstrap 需要為頁面內容和柵格系統包裹一個 .container或container-fluid(占據全部視口viewport的容器)容器。
3
柵格系統,Bootstrap 提供了一套最多12列的流式柵格系統,通過 .row表示行 和 .col-xs-4 這種表示寬度的列快速創建柵格布局。
4
Bootstrap 排版、鏈接樣式設置了基本的全局樣式。
font-size 設置為 14px,line-height 設置為 1.428。
<p> (段落)元素還被設置了等於 1/2 行高(即 10px)的底部外邊距(margin)。
基礎樣式
【排版】,
1. 標題,可以用來.h1 到 .h6 類給內聯屬性的文本賦予標題樣式,標題內通過<small> 標簽或帶.small 類的元素標記副標題。
主體文本:.lead 類讓段落突出顯示。
2. 內聯文本,使用<mark> 標簽表示標注文本,<del>刪除,<s>無用,<ins>插入,<u>下劃線,<small>小號(父容器字體大小的 85%),<strong>著重,<em>斜體。
3. 文本對齊類,text-left,text-center,text-right,text-justify,text-nowrap
4. 文本大小寫類,text-lowercase,text-uppercase,text-capitalize
5. 縮略語類,為 <abbr> 元素設置 title屬性並使用.initialism 類讓 font-size 變得稍微小些。例:<abbr title="attribute" class="initialism">attr</abbr>
6. 地址,以日常使用的格式呈現,在行結尾加 <br> 保留需要的樣式即可。
7. 引用,將 HTML 元素包裹在 <blockquote> 中即可表現為引用樣式。對於直接引用,建議用 <p> 標簽。
8. 列表,list-unstyled類移除默認 list-style 樣式和左側外邊距的一組元素(只針對直接子元素)。list-inline類通過設置 display: inline-block; 並添加少量的內補(padding),將所有元素放置於同一行。dl-horizontal類讓 <dl> 內的短語及其描述排在一行。
【代碼】
<code> 標簽包裹內聯樣式的代碼片段,
<kbd> 標簽標記用戶通過鍵盤輸入的內容,
<pre> 展示代碼塊 。可用pre-scrollable 類設置最高350px帶垂直滾動條。
<var> 標簽標記變數,
<samp> 標簽標記程序輸出的內容。
【表格】
.table 類指定基本樣式,
.table-striped 條紋樣式,
.table-bordered 類為邊框樣式,
.table-hover 類帶滑鼠懸停樣式,
.table-condensed 類緊湊樣式。
狀態類(行或單元格設置顏色):active,success,info,warning,info。
將任何 .table 元素包裹在 .table-responsive 元素內,即可創建響應式表格,其
響應式表格: 會在小屏幕設備上(小於768px)水平滾動。當屏幕大於 768px 寬度時,水平滾動條消失。
【表單】
1. 基本實例,所有設置了 .form-control 類的 <input>、<textarea> 和 <select> 元素都將被默認設置寬度屬性為 width: 100%;。 將 label 元素和前面提到的控制項包裹在 .form-group 中可以獲得最好的排列。
不要講表單組直接和輸入框組混合使用。建議將輸入框組嵌套到表單組中使用。
form-group,input-group,control-group,
2. 內聯表單,<form> 元素添加 .form-inline 類可使其內容左對齊並且表現為 inline-block 級別的控制項。只適用於視口(viewport)至少在 768px 寬度時(視口寬度再小的話就會使表單折疊)。
在內聯表單中單選/多選框控制項的寬度設置為 width: auto;
如果你沒有為每個輸入控制項設置 label 標簽,屏幕閱讀器將無法正確識別。對於這些內聯表單,你可以通過為label 設置 .sr-only 類將其隱藏。
3. 水平排列的表單
通過為表單添加 .form-horizontal 類改變 .form-group 的行為,使其表現為柵格系統中的行(row)
4. 多選和單選框
.radio、.radio-inline、.checkbox、.checkbox-inline 。
5. 靜態控制項
水平布局的表單中,如需將一行純文本和 label 元素放置於同一行,為 <p> 元素添加 .form-control-static類即可。
6. 控制項狀態
.disabled類禁用控制項,為<fieldset> 設置disabled 時則禁用包含的所有控制項。
a標簽不受此類影響。
readonly 屬性可以禁止用戶輸入
.has-warning、.has-error 或 .has-success 類到這些控制項的父元素即可。任何包含在此元素之內的 .control-label、.form-control 和 .help-block 元素都將接受這些校驗狀態的樣式。
你還可以針對校驗狀態為輸入框添加額外的圖標(注意依賴於label標簽)。只需設置相應的 .has-feedback 類並添加正確的圖標即可。
7. 控制項尺寸
通過 .input-lg .input-sm類似的類可以為控制項設置高度,通過 .col-lg-* 類似的類可以為控制項設置寬度
通過添加 .form-group-lg 或 .form-group-sm 類,為 .form-horizontal 包裹的 label 元素和表單控制項快速設置尺寸。
用柵格系統中的列(column)包裹輸入框或其任何父元素,都可很容易的為其設置寬度。
8. 輔助文本
help-block類,針對表單控制項的「塊(block)」級輔助文本。
【按鈕】
1. 基本樣式,btn、btn-default、btn-primary、btn-success、btn-info、btn-warning、btn-danger、active
2. 展現形式,btn-link、btn-block、close
3. 尺寸樣式,.btn-lg、.btn-sm 、.btn-xs 。
可通過 <a>、<button> 或 <input> 元素應用按鈕類,但建議用 <button> 元素來獲得在各個瀏覽器上獲得相匹配的繪制效果。
6
【圖片】
圖片形狀,img-rounded,img-circle,img-thumbnail,IE8 不支持 CSS3 中的圓角屬性。
7
【輔助】
text-muted、text-primary、text-success、text-info、text-warning、text-danger
bg-primary、bg-success、bg-info、bg-warning、bg-danger、
三角符號,caret
浮動
居中
組件樣式
【圖標】
200個來自 Glyphicon Halflings 的字體圖標,
圖標類只能應用在空元素上,且不可與其它組件聯合使用。
<span class="glyphicon glyphicon-search"></span>
【菜單】
將下拉菜單觸發器和下拉菜單都包裹在 .dropdown 里
菜單對齊:默認情況下,下拉菜單自動沿著父元素的上沿和左側被定位為 100% 寬度。 為 .dropdown-menu 添加 .dropdown-menu-right 類可以讓菜單右對齊
菜單分組:dropdown-header表描述項,.disabled 表禁用項
向上彈出: .dropup 類就能使觸發的下拉菜單朝上方打開
【按鈕組】
按鈕組.btn-group,通過.btn-group-* 指定組中按鈕尺寸。
按鈕欄.btn-toolbar
鈕垂直堆疊排列顯示btn-group-vertical
兩端對齊排列的按鈕組btn-group-justified
【導航】
標簽頁.nav-tabs 類依賴 .nav 基類。
膠囊式標簽頁.nav-pills 類,添加 .nav-stacked 類改為垂直堆疊。
.nav-justified 類可以很容易的讓標簽頁或膠囊式標簽呈現出同等寬度。
navbar navbar-default
對於不包含在 <form> 中的 <button> 元素,加上 .navbar-btn 後,可以讓它在導航條里垂直居中。
將表單放置於 .navbar-form 之內可以呈現很好的垂直對齊,
.navbar-text
.navbar-link
.navbar-left 和 .navbar-right 工具類讓導航鏈接、表單、按鈕或文本對齊。
.navbar-fixed-top 類可以讓導航條固定在頂部
.navbar-fixed-bottom 類可以讓導航條固定在底部
.navbar-static-top 類可讓導航條隨著頁面向下滾動而消失。
.navbar-inverse 類可以改變導航條的外觀。
breadcrumb 創建帶有層次的導航結構(麵包屑)。
【分頁】
pagination,並根據情況對頁碼使用.disabled 類、 .active 類。
.pagination-lg 或 .pagination-sm 類提供了額外可供選擇的尺寸。
pager上一頁和下一頁的簡單翻頁。並可通過previous,next類標示。
【標簽】
label標簽基類,可通過label-default, label-primary, label-success, label-info, label-warning, label-danger改變標簽的外觀。
badge,可以很醒目的展示新的或未讀的信息條目。
7
【其它】
縮略圖
提示框
進度條
媒體對象等
定製樣式
1
BootStrap提供了根據自己需要的組件及jquery插件進行定製,使用者也可以直接修改Less源碼。
END
總結
1
本篇經驗僅從全局簡單介紹Bootstrap的內容,細節部分並不具體,Bootstrap的使用非常靈活,可以對各種組件進行合並使用(如:為標簽頁項 添加帶下拉菜單),建議使用過程中實時參考官方文檔,官方文檔有更詳細的下載及使用說明,針對具體樣式有直觀樣例,而且有豐富的主題案例。
Ⅳ 如何學習java spring框架
1、打好基礎是重中之重
基礎部分可能很枯燥,但是一定要耐心堅持下去。因為打基礎好比是在造輪子造汽車,沒有打好基礎在後面的學習就好比走路,可以說後面遇到的百分之七八十的問題都是基礎沒學好造成的。
2、多看官方文檔多讀源碼
一定要看JDK相關類庫、常用框架各種功能的源碼,去了解其底層實現的原理。總的來說這個也是在打基礎的部分,Java基礎非常扎實才能看懂,在我們學習一個類的源碼時,肯定會衍生出其他各種各樣的問題,供我們來了解和學習,這也就是我們下一步學習的目標和方向。慢慢的,我們就會學習更多的知識,並積累更多的經驗。
3、系統性學習,循序漸進
不要急於求成,每個知識點都要看,並且每個知識點都要勤加練習。有的同學在學習過程中覺得這個知識點簡單,就跳著學習,其實這是個很大的問題,知識點細節必須要了解。我們學習Java需要循序漸進,一步一步來,不能操之過急。
4、遇到問題
遇到不會做的問題,當然不能置之不理。先在網上查,目前網路上針對很多問題都有完美的解決方案,如果網上沒有類似的問題,那可能是你犯了什麼小錯誤。也不要在這個問題上花費太多時間,這需要一定的學習技巧。Java中的知識有很強的相關性,有不懂的地方,可以用其他周邊相關知識再回過頭來理解,這樣既不會耽誤學習進度,又能理解自己不懂的地方
1)jvm有很多種,其實jvm是一個標准,sun做的那個叫hotspot,作者就是後來v8的作者lars bak,其他公司也做過jvm,其中做得比較好的有bea的jrockit,其他的包括ibm的r9,apple的jvm等在內,都做得不行,所以jvm主要是整合淘汰掉這些做得不好的jvm(s),整合成一個統一的openjdk。
2)java是典型的oop語言,其執行效率的優化,最早就是lars bak等人從smalltalk等長期優化的經驗中總結出來並apply到hotspot上去滴,而smalltalk在早期apple機上搞出了那種拖拖拽拽就開發出app的做法,後來vc,delphi之類的其實都是抄襲或者說借鑒apple的smalltalk的做法,jobs說微軟從頭到尾都在抄襲apple是空穴來風,這里空穴來風跟王垠使用的空穴來風是一個意思,有趣的是,java的gui並沒有繼承這種搞法,反而對這種拖拖拽拽就作出app的做法批判有加,到今天,其實java的gui都還不能真正做到拖拖拽拽就作出來,問題很多,個人建議對於純java的gui開發,還是以寫代碼為主。
3)jee也是一個或者說是一堆標准,知乎上有些人把maven,jenkins都算做jee是不對滴,jee的標准核心是ejb,其實就是一個xml配置化的java文件,這個標准在4的時候,達到了頂峰狀態,幾乎所有的挨踢大廠都主動支持該標准,之後開始走下坡路,支持的廠越來越少。
4)java和javascript的關系比很多人認為的要密切,javascript裡面的java這四個字母可不是白叫的,比如js的版權和商標都控制在oracle手裡,oracle對於js的支持甚至超過其對java的支持,並且喜歡捆綁銷售,比如jvm裡面就有一個js引擎。
5)jvm裡面除了js engine以外還有一個瀏覽器排版引擎webkit,就是apple safari和google chrome用的那個那個。
6)java支持絕大多數腳本語言,你能叫得上名字的腳本語言,幾乎都可以在jvm上執行,比如常見的js,ruby,python,甚至php,lua,只不過除了js以外你需要找到相關的腳本引擎。
7)spring的版權被控制在vmware手裡,其實spring的那一大堆東西,本質上是一個非標準的jee實現,比如在jee裡面用的inject,在spring裡面就是autowire,當然spring曾經深刻滴影響了jee,所以有些東西比如di標准,是spring影響下制定出來的,所以spring的做法會比較特例一點。
8)maven上的jars數量前兩天突破800萬,其他語言的類庫,排名第二的是npm,大概數量是maven的十分之一,也就是幾十萬,不知道現在突破100萬沒有,然後是gem,也就是ruby那個,大概是十幾萬,下來是python的mole,大概數量級是幾萬,沒突破十萬。
9)java的標準是由一個叫做jcp的組織制定的,所有標准需要經過jcp的執行委員會通過方可執行,jcp幾乎包括了你所知道的絕大多數知名挨踢公司和組織,比如google,apple,ibm,intel,arm,red hat,twitter等,還有一些教育機構,比如我國的北京大學,阿里最近一次申請jcp執行委員會成員資格,似乎投票不通過,最近一次執行委員會新增兩個成員是arm和jetbrains。
10)微軟也曾經是jcp甚至是java的主要貢獻者,但是利益驅使下,想擴展java,從而破壞java跨平台的特性,所以跟sun鬧翻,其本質原因就是想讓客戶寫的java代碼跟windows綁定,sun堅決不同意,鬧翻,今天回頭看這個結果,只能說:雙輸,sun掛了,微軟的ria也離掛不太遠了,silverlight已經放棄了,比起當年ie自帶有jvm的支持來說,那完全就是兩回事。
11)除了微軟以外,jcp還缺少一個重要組織apache,因為apache跟oracle也鬧翻了,oracle似乎並不在乎開源組織,而更在意商業公司的支持。
12)java曾經有一個內置的資料庫,9之後被剝離。
13)j2me是j2se的子集。
14)vert.x作者tim fox最早在vmware做spring時候看到了node.js,萌生出了製作支持多核的node.x的想法,並在離開vmware後加入red hat將其實現,vmware看到後開始耍無賴,claim node.x後來改叫vert.x的版權,不惜跟red hat打官司,後來各方妥協,將其交給eclipse foundation。
15)oracle在收購bea之前,一開始的目標並不是bea和bea的weblogic,而是jboss,但是jboss表現出了極為有種的一面,在oracle收購成功之前,投入了red hat的懷抱,因為都是開源組織,從此jboss成了red hat的一個子部門,oracle收購jboss失敗之後,轉向bea,庄思浩氣死了,但是沒用,最後還是被惡意收購。
16)sun在玩不下去之前最早嘗試接觸的目標是ibm,ibm嫌太貴,放棄之後,被轉手給了oracle。(Java學習交流QQ群:589809992 我們一起學Java!)
17)vert.x的作者tim fox在離開red hat之前曾經發過twitter抱怨,外人比如我們,猜測是因為red hat內部已經有了一個jboss,所以跟vert.x在應用上有了重疊,所以導致tim fox的出走,但是出走之後,red hat答應對vert.x做持續性的戰略投入,所以vert.x core的幾個developers,其實拿的是red hat的工資,但是vert.x的版權並不在red hat手裡,而在eclipse foundation手裡。
18)vert.x的幾個核心開發人員都是google summer of code的導師,每年年初時候會招收在校大學生搞項目。
19)教育機構相關:scala的作者馬丁是德國人,eth的博導,groovy的主要領導人是法國人,jruby背後是東京大學,jboss的作者是法國大學校x的校友,x就是伽羅瓦考不進去的那所大學,伽羅瓦進不了x,所以改讀巴黎高師,tim fox畢業於帝國理工,主席去的那個,netty作者trustin lee是acm銀牌,現在line工作,畢業於sky裡面的延世大學,kotlin是毛子公司jetbrains的作品,看linkedin,很多人畢業自聖彼得堡大學,spring作者rod johnson是悉尼大學的音樂博士,hibernate作者gavin king是澳洲莫那什大學的數學本科畢業生,james gosling這種cmu和calgory的估計爛大街了,sun是斯坦福大學網路的意思,夾帶兩個私貨,aspectj有一個維護小組在mcgill,hbase跟waterloo關系密切。
20)java早期被人認為慢,跟java堅持不用硬體加速渲染有關,死活就是不肯接入directx和opengl,7之後總算開竅,搞了一個圖形引擎接入了directx/opengl。
21)casssandra是facebook做失敗的項目,被貢獻給了apache之後老樹開花。
22)groovy被貢獻給了apache,現在叫做apache groovy,ceylon被貢獻給了eclipse,現在叫做eclipse ceylon。
23)netflix現在是java shop,之前是用.net的。
先想到這么多,有空再寫。
Ⅳ 怎麼學習mybatis框架的源碼
剛剛好我前段時間做了一個基於SpringMVC + Mybatis + Redis + Freemarker(JSP)的許可權控制Demo。地址看下面代碼:/** * 網路不讓輸入網址 * 地址為 */String url = "
Ⅵ 關於所有編程語言框架的源代碼教學的小小建議
初學者都會認為
講得簡單=講得好
你要是只為了大學順利畢業
可以選擇這個
你要是為了就業或考研
找本看起來比較「難」的書
《JAVA編程思想》什麼的
看進去你就會一半了
Ⅶ 求java三大框架整套教學視頻 越全越好 萬分感謝
Ⅷ 如何深入了解一個mvc框架或開源產品的源碼,或者說從什麼地方入手,流程是什麼,需要注意什麼
首先找一個好的框架,可以找一本相關的案例書入手會好一些,
否則就選擇知名的有二次開發文檔的開源項目,學習流程:1,下載運行源碼,2查看項目結構框架,3,首先從簡單功能入手,然後一步步准備深入,
選擇好開源項目了,可以網路找一下文檔,有很多人有學習筆記,這樣可以少走很多彎路,祝你學習進步,早日學有所成!
Ⅸ php開發框架怎麼使用,剛接觸框架
平常我也不發言。今天寫個代碼給你看看:簡單的Model層
proct.class.php:
<?php
class proct{
public function getAllProcts(){
$q="SELECT * FROM Proct";
$r=$db->query($q);
$proArr=array();
while($row=db->fetchAssoc($r)){
$proArr[]=$row;
}
return $proArr;
}
}
?>
視圖和控制層:
getallprocts.php:
<?php
$proct=new proct();
$ps=$proct->getAllProcts();
foreach($ps as $p){
//輸出資料庫中查出來的
echo $p['name'];
}
我一般就是這樣寫的 PHP說多了,就是大部分對數組進行編程 ,
大部分都是在頁面里輸出SQL語句,嵌套HTML,顯得頁面臃腫,不易維護和擴展
這樣分層以後修改比較簡單
Ⅹ 如何去閱讀並學習一些優秀的開源框架的源碼
對於開發者來說,社區里豐富的開源代碼其實是筆極為寶貴的財富。如果能充分利用好開放源代碼的資源,不僅可以掌握多種編程方法,提高實踐能力,還能獲得好的思想,激發編程靈感。開源代碼怎麼學以及怎樣才能學好是大家經常關注的話題,日前,在問答網站知乎上,有人拋出了「如何更有效地學習開源項目的代碼?」的話題,眾技術好手各抒己見,CSDN軟體研發頻道對本文內容進行了整理,方便大家學習與參考。盛大創新研究院研究員 庄表偉:學習開源 盡可能在代碼里找答案 庄表偉提供了以下9個建議:1.在下載源代碼之後,首先要跑起來,編譯通過、正常運行;2.在你覺得最有可能運行到的地方,設置斷點或者拋出異常,這樣,就能夠找到一個項目在正常運行時的入口點;3.從入口點所在的那個源文件開始閱讀,逐步把握整個項目是如何啟動起來;4.隨便改點代碼,看看會不會報錯,如果報錯,會從哪裡報錯;5.試著把報錯屏蔽、修復、或者繞開;6.嘗試理解一個系統的內部結構,多少組成部分,主線模塊是哪些?輔助模塊是哪些?7.從實際需要出發,修改這個項目,滿足自己的某一個小的需求。(注意在此之前,盡量不要在網路上找答案);8.看看相關的討論與心得,是否與自己的理解相一致;9.提交bug fix或者某個新的功能代碼。在學習開源的過程中,有幾個方面會獲得大量收獲,1.架構與模式;2.開源社區常見的一些慣用法;3.相關領域的結構與演算法。總結一點:學習開源,盡可能在代碼里找答案,而不是在代碼之外找答案,那些都是二手的,而且很可能不準確。互聯網評論員 朱曉陽:從簡單做起 理論聯系實踐朱曉陽對此發表了兩點看法:首先,從簡單做起。剛開始的時候學習一些領域內基礎理論,然後找一些簡單的東西去實現,不能一開始就去找開源項目。建議大家經常動手寫一些小程序,如改進宿舍網路登錄客戶端等。積小成多,能顯著提高自己的編程能力。其次,學習的知識一定要和自己生活或工作有聯系,這樣才會有樂趣或動力。互聯網評論員孫竟:先構想一個想做的項目首先,構想一個想做的項目(比如論壇、博客、微博等);然後,思考需要什麼功能,應該怎麼去實現,盡可能包括各種細節,有必要時記錄下來;最後,去找個類似的開源應用,看看它是怎麼實現的,和你的想法有什麼差異,有什麼可以學習或需要改進的地方。互聯網草根hqman:我的5個建議:1.反復地使用軟體,熟釋軟體的組成文件和軟體功能,注意IE地址欄內的地址變化;2.打開資料庫文件或存放數據的XML文件,參照數據字典了解各個表和欄位的數據含意;如果沒有數據字典,就運行軟體輸入數據,參照所輸入的數據,了解各個表和欄位的數據含義;3.利用Visio進行反向工程,將類圖抽出來;4.研究類之間的關系,注釋各個類的屬性和方法,弄清程序的整體框架;5.另開一個項目,按照軟體開發的流程,將代碼分段復制進新的項目,進行編譯調試,關注一些實現細節,學習一些編程的技巧。在讀研究生張偉:在校學生空閑時間多參加一下比賽張偉的建議是大家在空閑時間多參加一些比賽。一個完整的項目,不管再小,只要做完了,就會有收獲。多看一些比較大的開源項目源代碼,每次看完後都會受益匪淺。從網上成熟的開源代碼里,可以學到很多的設計思想。他認為,從項目入手,以項目為驅動,可激勵自己進步。當然,是否一定需要看開源代碼,這將取決於個人的興趣和需要。畫出程序流程圖 理解程序流程思想CSDN博客專家i_like_cpp:曾在CSDN分享了《如何將源代碼學好》的博文,對此,他給出了四點建議:1. 畫出整個程序的流程圖,理解整個程序流程的思想。畫流程圖的方式更讓人很直接的理解程序的整體流程,而不會被代碼所干擾,讓程序員總體上把握整個程序;2. 對流程各節點(函數或過程)的理解,流程的每一節點是構成整個流程的不可缺少的部份;3.再把流程和流程各節點串起來理解整個程序,可能的話最好寫出讀書筆記;4. 如果想深刻的學習到源代碼的精髓所在,請寫一個相近的程序進行操練。理解了這個程序並不表明掌握了這個程序,只有在操練一個相近的程序時,才知道你到底理解了多少,掌握了多少。編後語:源代碼的學習是一個從整體到不斷細化的過程,是一個極為繁瑣的過程同時也是一個不斷認清事物本源的過程。本文總結的源代碼的學習經驗,希望對您有所幫助。那麼,CSDN的網友們,你們是如何對待開源項目源代碼的呢?