Changes between Initial Version and Version 1 of IMM_COLLECTIONS_REFACTOR


Ignore:
Timestamp:
05/13/10 15:20:18 (15 years ago)
Author:
stefan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IMM_COLLECTIONS_REFACTOR

    v1 v1  
     1[[BackLinksMenu]] 
     2 
     3[[TicketQuery(summary=TASK_NAME_HERE, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] 
     4 
     5= Analysis = 
     6The goal of this task is to review/refactor the {{{org.sophie2.base.commons.structure}}}'s classes - so called immutable collections. There are several reported problems and possible improvements in the classes:  
     7 1. '''Quite complex constructing of {{{ImmCollection}}}s''' - This is due inner implementation of tree structure:: 
     8        solution: create several factory method for the specific collections - there can be hashing or non-hashing collection, also with or without iterator. 
     9 2. '''There is no easy method for creating an immutable collection of another collection''' - Now, it mostly done by adding element by element in new collection:: 
     10        solution: create method which by a given collection constructs an immutable collection. (investigate for faster creating in specific cases. 
     11 3. '''Need of faster iterators''' - Interators in this moments are needed to be faster. 
     12        solution: investigate for way to improve iterators. 
     13 4. '''Missing {{{indexOf(...)}}} method''' - There is need for such method, mainly by text usage. 
     14        solution: make apropriate method. 
     15 5. '''Slow {{{foreach}}}''' 
     16        solution: investigate for way to improve performance of {{{foreach}}}. 
     17 6. '''Bug: {{{get(K)}}} throws exception when {{{K}}} is missing''' 
     18        solution: make it returns {{{null}}} instead of exception. 
     19 
     20indexOf 
     21remove(индекс) 
     22бавен foreach 
     23get(K) гърми ако няма ключ 
     24== Overview == 
     25^(Provide a brief overview of the whole task in its first revision. Stick to the current revision of the task, but keep an eye to the whole task progress, and stay alert for possible smells.)^ 
     26 
     27== Task requirements == 
     28^(List the necessary requirements that the task must fulfill.)^ 
     29 
     30== Task result == 
     31^(List the end product of the task (for example "Source code", "Wiki page", etc.))^ 
     32 
     33== Implementation idea == 
     34^(Provide some rough implementation idea(s).)^ 
     35 
     36== Related == 
     37^(Add links to related tasks that could be useful or helpful.)^ 
     38 
     39== How to demo == 
     40^(Provide instructions for demonstration of the task.)^ 
     41 
     42= Design = 
     43^(Describe your design here.)^ 
     44 
     45= Implementation = 
     46^(Describe and link the implementation results here (from the wiki or the repository).)^ 
     47 
     48= Testing = 
     49^(Place the testing results here.)^ 
     50 
     51= Comments = 
     52^(Write comments for this or later revisions here.) 
     53 
     54 
     55[[BackLinksMenu]] 
     56 
     57[[TicketQuery(summary=TASK_NAME_HERE, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] 
     58 
     59= Analysis = 
     60 
     61The goal of this task is to review/refactor the {{{org.sophie2.base.commons.structure}}}'s classes - so called immutable collections. There are several reported problems and possible improvements in the classes:  
     62 * '''Quite complex constructing of {{{ImmCollection}}}s''' - This is due inner implementation of tree structure. 
     63  * solution: create several factory method for the specific collections - there can be hashing or non-hashing collection, also with or without iterator. 
     64 * '''There is no easy method for creating an immutable collection of another collection''' - Now, it mostly done by adding element by element in new collection. 
     65  * solution: create method which by a given collection constructs an immutable collection. (investigate for faster creating in specific cases. 
     66 * '''Need of faster iterators''' - Interators in this moments are needed to be faster. 
     67  * solution: investigate for way to improve iterators. 
     68 * '''Missing {{{indexOf(...)}}} method''' - There is need for such method, mainly by text usage. 
     69  * solution: make appropriate method. 
     70 * '''Slow {{{foreach}}}'''. 
     71  * solution: investigate for way to improve performance of {{{foreach}}}. 
     72 * '''Bug: {{{get(K)}}} throws exception when {{{K}}} is missing'''. 
     73  * solution: make it returns {{{null}}} instead of exception. 
     74 
     75== Overview == 
     76^(Provide a brief overview of the whole task in its first revision. Stick to the current revision of the task, but keep an eye to the whole task progress, and stay alert for possible smells.)^ 
     77 
     78== Task requirements == 
     79^(List the necessary requirements that the task must fulfill.)^ 
     80 
     81== Task result == 
     82^(List the end product of the task (for example "Source code", "Wiki page", etc.))^ 
     83 
     84== Implementation idea == 
     85^(Provide some rough implementation idea(s).)^ 
     86 
     87== Related == 
     88^(Add links to related tasks that could be useful or helpful.)^ 
     89 
     90== How to demo == 
     91^(Provide instructions for demonstration of the task.)^ 
     92 
     93= Design = 
     94^(Describe your design here.)^ 
     95 
     96= Implementation = 
     97^(Describe and link the implementation results here (from the wiki or the repository).)^ 
     98 
     99= Testing = 
     100^(Place the testing results here.)^ 
     101 
     102= Comments = 
     103^(Write comments for this or later revisions here.)