Jerry的个人维基



Jerry的个人维基

各色Java开源项目是笔巨大的财富,阅读这些源代码能有很多收获。但是这些程序设计上都非常"OO", 一下钻进源码里只会一头雾水,迷惑不已。其实最好的办法是先收集一些相关的文档,认识一下其高层次的架构, 分清楚里面的模块和角色,然后分而治之地深入阅读比较好。

以Jetty为例,在读源代码之前,先了解一下Jetty的高层次架构:Reactor模式,了解这个模式要解决的问题和模式里主要的几个角色, 在此基础上再深入阅读源码更清晰。

2. 模板方法

OOP中的模板模式恐怕是使用得最多的地方。虽然模板模式是很有用很不错的设计模式,但一个应用了模板模式的类层次的代码都是比较 支离破碎的,读起来比较吃力。要解决这个问题,个人感觉要先跳出代码细节,先看整体的类层次,了解其职责,再从上到下,看每一层的 类封装了哪些 不变 的东西,又将哪些 可变 的部分交给了子类来实现。边看边做笔记应该是个不错的方法。


Read full article from Jerry的个人维基


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts