An ____ Vu 

Computing to enable humanity in knowledge, ability, and creativity


mood~

<3
Est. 1999 ++
  1. What I’m thinking
  2. What I’m reading
  3. What I’m listening to


Social Impact
Est. 2017 ++
  1. Reach Out  education gap


Photo
Est. 2019 ++
  1. Buddy   concert
  2. Women’s March journalism
  3. Earthgang
  4. BAYNK
  5. Phonecall   abstract
  6. Fire   35mm


An ____ Vu —

  1. “Normal science, the activity in which most scientists inevitably spend almost all their time, is predicated on the assumption that the scientific community knows what the world is like”

    ― Thomas S. Kuhn, The Structure of Scientific Revolutions

  2. “The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.”

  3. ―George Bernard Shaw, Man and Superman

    Read more︎





<3
Mark

Home       Blog       About  

21. Object Oriented Design





calculating the first 50 triangular numbers with recursive evaluation and references

BOS / 2019
At: GitHub.com (Private, available upon request)

           
        I built this for my Object Oriented Design class! It’s a fullly functional spreadsheet program with formulas, dependencies/references, fully segregated MVC pattern, and ~infinite scroll~. It was build with Java and Java’s 🤢Swing🤢 library. Not a fan of java UI!
This project really cemented my design practices for large programs. 
       
        A large part of the design of this program was focused on making all parts modular, encapsultaed, extensible, and future proof. Each part was designed and implemented with the S.O.L.I.D. principles and various GOF design patterns were employed: Builder, Composition, Visitor, Command, Observor. Each allowed for fully modular functionality while allowing new functionality to easily extend on designed interfaces rather than modifying old code (Open-Closed principle).

Visitors allowed for dynamic polymorphism in how we store, access, and evaluate data types within cells, while allowing for raw data to be stored in a highly native class definition.

Observers allowed for our dependencies and cycle checkers to function efficiently and within reasonable memory + performance constraints while composition allowed us to extend upon and use old functionality without editing or duplication old code.

        Additionally, we performed code reviews of our classmates, and implemented each others interfaces to get an idea of what design choices bake in (in)flexibility and what can be done going forward to ensure best design. Very extensive unit tests (JUnit4) were a part of every iteration.



Mark