Studyforprogrammer
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Studyforprogrammer

on

  • 827 views

 

Statistics

Views

Total Views
827
Views on SlideShare
827
Embed Views
0

Actions

Likes
1
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Studyforprogrammer Document Transcript

  • 1. ? . / , , .‘ ’ . , . / . , , , (Extreme Programming XP) . , . . ( ) ( ) . . , . , . ( ) . 1. . , , . “ !” . . ‘ ’ . ‘ ’ . . . , , , ? . , ‘ ’(construct) ( . (Jean Piaget) , MIT ). , . . ? . ‘ ’ ‘ ’( , ) ? ? , . . ,“ , , ?” . ‘ ’ , . ?
  • 2. 2. , . (pseudo-code) . (C, ) (LISP, Scheme, Haskell), ( , ) . . . . , ‘ ’ ‘ ’ , , , . , . , . 1. 2. 3. 4. (correctness) . . , . .” ?” . . ‘ ’ . . . . . . , “, ” . , ‘ ’ . . , , . (ad hoc) . . , . . . , . . . , . . 3. . . , (concrete) (abstract) . . ‘be- to- ’ 2
  • 3. . ( ) , ACM ICPC(International Collegiate Programming Contest: ) . “ ” . , , . 4. , . . . (E. W. Dijkstra) (N. Wirth) ’ ’(Stepwise Refinement) . Program Development by Stepwise Refinement (1971, CACM 14.4, http://www.acm.org/classics/dec95) . ( ’goto ’ ). Stepwise Program Construction (Selected Writings on Computing: A Personal Perspective, Springer-Verlag, 1982,http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD227. PDF . . . . (loop invariant) . . . (Udi Manber) ( Introduction to Algorithms: A Creative Approach ) . . A Discipline of Programming (Gries) The Science of Programming . . . 5. . ‘ ’ . (Robert Floyd) (The Paradigms of Programming, 1978) . . . . . ‘ ’ . , . . . , , ? . . . ‘ ’ . , , . . .‘ ’ . (Robert W. Floyd) 1978 . , . , . (insight) . . , . . . . . (learn) (unlearn) . 3
  • 4. (George Polya) How to Solve it : , . . . ACM ICPC . , .“ . . ?” . , . . , , . . CLR(Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest) . (Jon Bentley) Programming Pearls . . . . 6. , 2001 11 . OOP . . DP RF . , . DP . RF (Bad Smell) . RF . . . . GoF . ( ) ( ) ( ) . . ? ‘ ’ . , . ( ) GoF . 7. , (Mechanics: ) . (Code Smell) - . , . . . . . TDD(Test Driven Development) . , . , ( ) . , 4
  • 5. . . . , . . , ‘ ’ . , . ‘ ’ . . ( ) ( ) . . . OAOO(Once And Only Once: ) . OAOO - . ‘ ’ . - . 3 ( 3 ) . . , . 1. : 2001 11 2. : ( ) . . 3. OAOO : OAOO , . . . GoF . 4. (Law of Demeter) : . ? 5. (Pair) : . , . , , 3 . . 6. ‘ ’ ‘ ’ : . ? , . (Collaborative Learn- ing) . , . , . . . (Tacit Knowledge) . , , , , , , . . . . (Apprenticeship) . . . , . . . (Jean Lave, Etienne Wenger) Situated Learning : Legitimate Peripheral Participation . . . . , ( ) . . , . . . . . . 2001 12 XP . ,‘ ’ ( ) ‘ ( ), ( ), ( )’ . ? 5
  • 6. . . , . 8. ‘ ’ . . . • , . • . . • . . ‘ ’ . • . , . • . (Toy Prob- lem) . (Christopher Alexander, ) . . The Timeless Way of Building ? . . , . . , , . (Betty Edwards) Drawing on the Right Side of the Brain . . . . . 1000 , . .“ ! !” . . ‘’ . 9. , . . . . “ ” . ,” ! , !” , . (Lev Vygotsky) . , . 6
  • 7. ’ ’ . . ’’ . , ’ ’ , . . , . . , , (GoF ) . . . GoF (Ralph Johnson) . [GoF] , [ ] . . . . . . 10. . . . .‘ + + ’ , ‘I love you’ ‘I hate you’ . , . . DP . , . GoF (John Vlissides) . , GoF . . GoF . . ! (immerse) . . . . . . . . . GoF . . , DP DP . ’ ’ . . , “ ” . GoF 7
  • 8. “ , ” . ‘ ’ . , (Joshua Kerievsky) A Learning Guide To Design Patterns http://www. industriallogic.com/papers/learning.html . Knowledge Hydrant http://www.industriallogic. com/papers/khdraft.pdf . . LG2DP( A Learning Guide To Design Patterns ) DP . DP . . sorry remorseful . . (Proximal Learning) . . LG2DP . . , , , . , . 11. GoF DP . . DP . . , DP . Smalltalk Best Practice Patterns . . . . OAOO . (Overengineering) , . Stop Over-Engineering! (Software Development Magazine, Apr 2002, http://www.sdmagazine.com/documents/s=7032/sdm0204b/0204b. htm . . 1980 . , , . (James Coplien) . (representation) . , . ‘ ’ . . , C++ , . ‘ ’ ( (Javarian) . (barbarian) ). ‘ ’ Diversify http://www.research.ibm.com/people/v/ vlis/pubs/gurus-99.pdf . ’ ’ . (implementation) (intent) , . DP GoF Design Patterns Smalltalk Companion . . ( ), . , ., . . ‘ ’ . “ ” . 8
  • 9. 12. . • Design Patterns Explained (Shalloway, Trott): DP • Design Patterns Java Workbook (Steven John Metsker): DPE . . • Refactoring (Martin Fowler): DP ( ) • Design Patterns : . • Design Patterns Smalltalk Companion : GoF DPSC • Pattern Hatching (John Vlissides): DP . . • Smalltalk Best Practice Patterns (Kent Beck): . . . • Pattern Languages of Program Design 1,2,3,4: • Pattern-Oriented Software Architecture 1,2: .2 . • Concurrent Programming in Java (Doug Lea): . • Patterns of Software (Richard Gabriel): . • Analysis Patterns (Martin Fowler): . . • A Timeless Way of Building (Christopher Alexander): . .‘ ’(‘ ’ The Nature of Order ). • A Pattern Language (Christopher Alexander): . • Problem Frames (Michael Jackson): DP (solution) . . DP , DPE DPJW RF RF ( . , ). GoF DPSC . . SBPP . DP SBPP . POSA PLOPD . . . ( “ ” ). ‘ ’ . , , . .“ ” . , . ‘OOP ’ ‘ ’ . . . . . . 9
  • 10. XP Explained XP . XP . XP XP . XP , . . ‘ ’ , XP . (XP , ‘ ’ ). 13. XP ( 2001 12 XP ). • XP Explained (Kent Beck): XP • XP Installed (Ron Jeffries et al): C3 , • Planning XP (Kent Beck, Martin Fowler): ( , ) • Refactoring (Martin Fowler): • XP Applied : • XP Explored : XP XPI XPX . XPE (2001 11 ). . • The Timeless Way of Building : . (On-site Cus- tomer), (Piecemeal Growth), (Communication) . • XP in Practice (Robert C. Martin ): XP . ( ). • XP Examined : XP • Peopleware (Tom DeMarco): • Adaptive Software Development (Jim Highsmith): . . • Surviving Object-Oriented Projects (Alistair Cockburn): OO • Software Project Survival Guide (Steve McConnell): SE . • The Psychology of Computer Programming (Gerald M. Weinberg): . (Egoless Programming) . • Agile Software Development (Alistair Cockburn): • Software Craftsmanship (Pete McBreen): • Agile Software Development with SCRUM (Schwaber Ken): (Scalability) XP+SCRUM . • A Practical Guide to eXtreme Programming (David Astels ): . . XPP . • Agile Modeling (Scott Ambler): , . • Agile Software Development Ecosystems (Jim Highsmith): . 10
  • 11. • Test Driven Development (Kent Beck): ( ) TDD . TDD XP (TDD ) • IEEE Software/Computer, CACM, Software Development Magazine • XP Conference, XP Universe ( ) • , , http://c2.com , , . , ( 10 , 20 . ). , (Ron Jeffries), (Ward Cunningham), (Alistair Cock- burn), , (Robert C. Martin aka Uncle Bob), (Michael Feathers), (Ken Auer), (William Wake), (Roy Miller), (Dave Thomas), (Andy Hunt), , (Scott Ambler), (Jim Highsmith), (Joshua Kerievsky), (Laurent Bossavit), (John Brewer) , XP . . XP , XP ( ) . ( ). . . . XP , . XP . 14. Refactor Me . ’ ’ , . ( ) . - - , . . . . . . “ , ” . . . . .‘ ’ . . . , , . . 11