Difference between revisions of "Patterns and anti patterns 2015"

From Rost Lab Open
Jump to: navigation, search
(Presentation Schedule)
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''PRE-MEETING FOR THE SEMINAR ANNOUNCED: Feb 2. 16:00-17:00 meet in front of the seminar room '''
+
'''THE PAGE FOR THIS COUUSE IS NOW DEPRECATED AND WILL SOON BE DELETED. [https://rostlab.org/owiki/index.php/Patterns_and_anti_patterns_2015-2 GO TO PATTERNS AND ANTI PATTERNS 2015 WINTER SEMESTER]'''
 
 
''Write better code''
 
   
 
== Description ==
 
== Description ==
Line 51: Line 51:
 
! Topic
 
! Topic
 
! Assigned to
 
! Assigned to
  +
| Slides
  +
| Source
 
|-
 
|-
| March 16
+
| April 27
 
| 12:00
 
| 12:00
 
| Design patterns and antipattterns and their importance in software maintainability and sustainability
 
| Design patterns and antipattterns and their importance in software maintainability and sustainability
|
+
| Hesham Massoud
  +
Habtom Gidey
  +
| [https://drive.google.com/open?id=0B9eK2qP4-wvdUU40bGNPSlVFWmc&authuser=0]
  +
| [https://github.com/heshamMassoud/goblins-and-beers]
 
|-
 
|-
| March 16
+
| April 27
 
| 13:00
 
| 13:00
 
| General patterns
 
| General patterns
|
+
| Aleksejs Voroncovs
  +
Andreas Eichner
  +
| [https://drive.google.com/open?id=0B9eK2qP4-wvdYUtleDRIM1FFeEE&authuser=0]
  +
| [https://github.com/alex-vo/seminarJS.git]
 
|-
 
|-
| March 17
+
| <strike>April 28</strike>
| 12:00
+
| <strike>12:00</strike>
| Literals and Constructors Patterns
+
| <strike>Literals and Constructors Patterns</strike>
|
+
| <strike>Efe Amadasun</strike>
  +
|
  +
|
 
|-
 
|-
| March 17
+
| April 28
 
| 13:00
 
| 13:00
 
| Structural Patterns
 
| Structural Patterns
|
+
| Ahmed Khattab
  +
| [https://drive.google.com/open?id=0B9eK2qP4-wvdQVh2akVRejhJbzA&authuser=0]
  +
|[https://github.com/ahmedkhattab/Javascript-Seminar]
 
|-
 
|-
| March 18
+
| April 29
 
| 12:00
 
| 12:00
 
| Functional patterns and Reactive Functional Programming
 
| Functional patterns and Reactive Functional Programming
|
+
| Stefan Fochler
  +
|[https://drive.google.com/open?id=0B9eK2qP4-wvdZTFhNDN5YlZGNmM&authuser=0]
  +
|
 
|-
 
|-
| March 19
+
| April 29
 
| 13:00
 
| 13:00
 
| Object Creation Patterns
 
| Object Creation Patterns
|
+
| Abu Zakaria
  +
| [https://drive.google.com/open?id=0B9eK2qP4-wvdMkk1aThkR1JELW8&authuser=0]
  +
|[https://github.com/abuzakaria/quickwiki-patterned]
 
|-
 
|-
| March 19
+
| April 30
 
| 12:00
 
| 12:00
 
| Code Reuse Patterns
 
| Code Reuse Patterns
|
+
| David Martín González
  +
Enrico Gigantiello
  +
|
  +
|[https://github.com/davidmartingonzalez/jspattenrs]
 
|-
 
|-
| March 19
+
| April 30
 
| 13:00
 
| 13:00
| jQeury specific patterns
+
| Behavioral patterns
|
+
| Mark Budiak
  +
Benjamin Helgert
  +
|[https://drive.google.com/open?id=0B9eK2qP4-wvdUnhMRlZsTkZSQUk&authuser=0]
  +
|[https://github.com/markb21/behavioral-patterns]
 
|-
 
|-
| March 20
+
| May 1
 
| 12:00
 
| 12:00
 
| jQuery Plugin Patterns
 
| jQuery Plugin Patterns
|
+
| Christoph Heidelmann
  +
Agon Lohaj
  +
|[https://drive.google.com/open?id=0B9eK2qP4-wvdTnExX1ptd3gxbVU&authuser=0]
  +
|[https://github.com/AgonLohaj/seminar-patterns-and-anti-patterns]
 
|-
 
|-
| March 20
+
| May 1
 
| 13:00
 
| 13:00
| Behavioral patterns
+
| jQeury specific patterns
|
+
| Akshit Malhotra
  +
|[http://akshit-.github.io/jQueryPatterns/#/]
  +
|[https://github.com/Akshit-/jQueryPatterns/]
 
|}
 
|}
   
Line 107: Line 109:
 
# '''(Highly recommended:)''' JavaScript: The Good Parts http://shop.oreilly.com/product/9780596517748.do
 
# '''(Highly recommended:)''' JavaScript: The Good Parts http://shop.oreilly.com/product/9780596517748.do
 
# http://sourcemaking.com/design_patterns
 
# http://sourcemaking.com/design_patterns
# http://www.jspatterns.com
 
 
#The Essentials of Writing High Quality JavaScript http://net.tutsplus.com/tutorials/javascript-ajax/the-essentials-of-writing-high-quality-javascript/
 
#The Essentials of Writing High Quality JavaScript http://net.tutsplus.com/tutorials/javascript-ajax/the-essentials-of-writing-high-quality-javascript/
 
# JSPatterns http://www.jspatterns.com/
 
# JSPatterns http://www.jspatterns.com/

Latest revision as of 16:26, 27 July 2015

THE PAGE FOR THIS COUUSE IS NOW DEPRECATED AND WILL SOON BE DELETED. GO TO PATTERNS AND ANTI PATTERNS 2015 WINTER SEMESTER

Description

Participating students will research and prepare presentation about ways to structure computer code in an efficient way that can be shared, re-used and maintained by others. Students will research the literature on some of the most (and less so) known coding patterns and anti-patterns and will present their finding to the class using an existing code base found on github and demonstrate the potential for code optimization. They summarize their findings in a seminar thesis.

In this seminar you will be asked to look at existing javascript code, understand its functionality, identify its weaknesses and refactor the code using one of the design patterns we are covering. Please note that I expect you to search for existing javascript code on GitHub[1] (trying to refactor your own code is not acceptable).

Tips for presentation

Note that each session will include one 30 minutes presentation by each student.

  1. give an overview of the topic you chose to present
  2. give an introduction describing the project you are re-factoring/optimizing
  3. a through code critique should identify the strength and weaknesses of the code.
  4. suggest an improvment using a JS pattern you think is suitable.
  5. be ready to defend your choice, while a JS pattern may seem a good fit there are always some tradeoffs.

NOTE you should only use the patterns that are available to you from the topic you chose. If you chose Functional patterns then Object creation patterns are not relevant to your project. Keep this in mind when searching for a project to refactor on GitHub.


[1] https://github.com

Learning outcome

In the end students know about common patterns and anti-patterns, they can communicate sophisticated technological matters to their peers and they can summarize this in a written report.

VERY IMPORTANT INFORMATION

READ THIS PAGE: Hints and Rules for the seminar

Important Dates

Feb 2. 16:00-17:00: Seminar pre-meeting.

TBD - presentations due.

Seminar Dates: March 16 - March 20

Seminar Times: 12:00 - 13:45

Room: Rostlab seminar room I12

Presentation Schedule

Date Time Topic Assigned to Slides Source
April 27 12:00 Design patterns and antipattterns and their importance in software maintainability and sustainability Hesham Massoud

Habtom Gidey

[1] [2]
April 27 13:00 General patterns Aleksejs Voroncovs

Andreas Eichner

[3] [4]
April 28 12:00 Literals and Constructors Patterns Efe Amadasun
April 28 13:00 Structural Patterns Ahmed Khattab [5] [6]
April 29 12:00 Functional patterns and Reactive Functional Programming Stefan Fochler [7]
April 29 13:00 Object Creation Patterns Abu Zakaria [8] [9]
April 30 12:00 Code Reuse Patterns David Martín González

Enrico Gigantiello

[10]
April 30 13:00 Behavioral patterns Mark Budiak

Benjamin Helgert

[11] [12]
May 1 12:00 jQuery Plugin Patterns Christoph Heidelmann

Agon Lohaj

[13] [14]
May 1 13:00 jQeury specific patterns Akshit Malhotra [15] [16]

References

  1. (Highly recommended:) JavaScript: The Good Parts http://shop.oreilly.com/product/9780596517748.do
  2. http://sourcemaking.com/design_patterns
  3. The Essentials of Writing High Quality JavaScript http://net.tutsplus.com/tutorials/javascript-ajax/the-essentials-of-writing-high-quality-javascript/
  4. JSPatterns http://www.jspatterns.com/
  5. jQuery Anti-Patterns for Performance & Compression http://paulirish.com/2009/perf/
  6. How DRY Affects JavaScript Performance http://velocityconf.com/velocityeu/public/schedule/detail/21634
  7. Object Oriented JavaScript http://www.packtpub.com/object-oriented-javascript/book
  8. JavaScript Patterns http://shop.oreilly.com/product/9780596806767.do
  9. Pro JavaScript Design Patterns http://jsdesignpatterns.com/
  10. Essential JavaScript Design Patterns For Beginners, Volume 1. http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/
  11. Eloquent JavaScript http://eloquentjavascript.net/
  12. http://en.wikipedia.org/wiki/Anti-pattern#Programming
  13. http://c2.com/cgi/wiki?CodeSmell
  14. JavaScript Garden - the most quirky parts of the JavaScript programming language https://github.com/BonsaiDen/JavaScript-Garden/tree/master/doc/en
  15. RECOMMENDED VIDEO http://www.paulirish.com/2010/10-things-i-learned-from-the-jquery-source/