SLIDE 1
SOLID is Solid Enterprise principles in OOP architectural - - PowerPoint PPT Presentation
SOLID is Solid Enterprise principles in OOP architectural - - PowerPoint PPT Presentation
SOLID is Solid Enterprise principles in OOP architectural design-phase pattern-level constructs Hillel Wayne SOLID Single responsibility Openclosed principle Liskov substitution principle Interface segregation principle
SLIDE 2
SLIDE 3
Why SOLID?
@hillelogram
SLIDE 4
Why SOLID?
@hillelogram
SLIDE 5
Why SOLID?
@hillelogram
SLIDE 6
Why SOLID?
@hillelogram
SLIDE 7
Why SOLID?
@hillelogram
SLIDE 8
Why SOLID?
@hillelogram
SLIDE 9
What We Can Learn From Software History
Hillel Wayne hillelwayne.com @hillelogram
SLIDE 10
www.hillelwayne.com/talks/software-history
@hillelogram
SLIDE 11
When you create the new classes, make sure you properly test them and create them using SOLID principles so they will be easier to change in the future. If it’s too complex, it’s violating a ton of SOLID principles. Don’t be STUPID: GRASP SOLID!
@hillelogram hillelwayne.com/talks/software-history
SLIDE 12
The Process
@hillelogram hillelwayne.com/talks/software-history
SLIDE 13
@hillelogram hillelwayne.com/talks/software-history
SLIDE 14
Do you know CS?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 15
Do you know CS? Can you think quickly?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 16
- 1. When did it happen?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 17
@hillelogram hillelwayne.com/talks/software-history
SLIDE 18
- 2. What was the context?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 19
Primary Source
Artifacts and information from that time
Secondary Source
Information produced after the fact
@hillelogram hillelwayne.com/talks/software-history
SLIDE 20
@hillelogram hillelwayne.com/talks/software-history
SLIDE 21
@hillelogram hillelwayne.com/talks/software-history
SLIDE 22
Do you know CS? Can you think quickly?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 23
- 3. What were the reasons?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 24
Dynamic allocation
@hillelogram hillelwayne.com/talks/software-history
SLIDE 25
Dynamic allocation
Fortran Nope
@hillelogram hillelwayne.com/talks/software-history
SLIDE 26
Dynamic allocation
Fortran Nope Lisps just cons it Smalltalk copyWith: newElement
@hillelogram hillelwayne.com/talks/software-history
SLIDE 27
Dynamic allocation
Fortran Nope Lisps just cons it Smalltalk copyWith: newElement C Manual memory manipulation
@hillelogram hillelwayne.com/talks/software-history
SLIDE 28
Do you know CS?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 29
Do you know CS? Can you think quickly?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 30
Do you know CS? Can you think quickly? Have you used C?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 31
- 4. What does this predict?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 32
@hillelogram hillelwayne.com/talks/software-history
SLIDE 33
Does anyone know of a version of Smalltalk that runs on Apollo workstations? [...] i’ve heard rumors that such a program exists at Utah or Brown but have no firm pointers.
- nly full Smalltalk-80 please – not little Smalltalk.
@hillelogram hillelwayne.com/talks/software-history
SLIDE 34
Does anyone know of a version of Smalltalk that runs on Apollo workstations? [...] i’ve heard rumors that such a program exists at Utah or Brown but have no firm pointers.
- nly full Smalltalk-80 please – not little Smalltalk.
@hillelogram hillelwayne.com/talks/software-history
SLIDE 35
@hillelogram hillelwayne.com/talks/software-history
SLIDE 36
@hillelogram hillelwayne.com/talks/software-history
SLIDE 37
@hillelogram hillelwayne.com/talks/software-history
SLIDE 38
@hillelogram hillelwayne.com/talks/software-history
SLIDE 39
- 5. What are the loose ends?
@hillelogram hillelwayne.com/talks/software-history
SLIDE 40
@hillelogram hillelwayne.com/talks/software-history
SLIDE 41
Pointers require a complex form of doubly-indirected thinking that some people just can’t do, and it’s pretty cru- cial to good programming. A lot of the “script jocks” who started programming by copying JavaScript snippets into their web pages and went on to learn Perl never learned about pointers, and they can never quite produce code of the quality you need.
@hillelogram hillelwayne.com/talks/software-history
SLIDE 42
Pointers require a complex form of doubly-indirected thinking that some people just can’t do, and it’s pretty cru- cial to good programming. A lot of the “script jocks” who started programming by copying JavaScript snippets into their web pages and went on to learn Perl never learned about pointers, and they can never quite produce code of the quality you need. That’s the source of all these famous interview ques- tions you hear about, like “reversing a linked list” or “de- tect loops in a tree structure.”
@hillelogram hillelwayne.com/talks/software-history
SLIDE 43
@hillelogram hillelwayne.com/talks/software-history
SLIDE 44
Conclusion
@hillelogram hillelwayne.com/talks/software-history
SLIDE 45