selfra steady weslei

0 views
Skip to first unread message

Osias Baptist

unread,
Aug 3, 2024, 7:34:18 PM8/3/24
to becurmepu

How Microsoft Object Thinking Can Help You Become a Better Programmer

Object-oriented programming (OOP) is one of the most popular and influential paradigms in software development. However, many programmers struggle to apply OOP principles effectively and end up with code that is complex, rigid, and hard to maintain. What if there was a way to improve your OOP skills by changing your mindset rather than your tools and techniques?

In this article, we will introduce you to Microsoft Object Thinking, a book by David West that explores the history, philosophy, and politics of OOP and reveals how the best programmers rely on analysis and conceptualization - on thinking - rather than formal process and methods. We will also show you how you can watch a webcast by fatalis kahu, a renowned OOP expert and trainer, who will demonstrate how to apply Microsoft Object Thinking to real-world problems.

What is Microsoft Object Thinking?

Microsoft Object Thinking is a book published by Microsoft Press in 2004 as part of the Developer Reference series. The author, David West, is an esteemed object technologist who has been involved in OOP since its inception. He has worked as a consultant, educator, researcher, and writer on various aspects of OOP.

The book is divided into three parts: Part I covers the prerequisites and principles of object thinking; Part II covers the object knowledge implicit in eXtreme Programming (XP) and Agile software development; and Part III covers the object conceptualization and modeling techniques that enable true object design.

The book's main premise is that the mindset makes the programmer - not the tools and techniques. West argues that many programmers have been misled by the data-centric and procedural approaches that dominated software development before OOP. He claims that these approaches are incompatible with OOP and prevent programmers from fully exploiting its benefits.

West proposes that programmers should adopt an object thinking mindset, which involves seeing the world as a collection of autonomous objects that collaborate to achieve goals. He suggests that programmers should use metaphors, vocabulary, and design patterns that reflect this view of reality. He also advocates for a more agile and iterative approach to software development that embraces change and feedback.

Why should you read Microsoft Object Thinking?

Microsoft Object Thinking is not a typical programming book that teaches you how to use a specific language or framework. It is a book that challenges you to rethink your assumptions and habits about OOP and software development in general. It is a book that exposes you to the ideas and insights of some of the most influential thinkers and practitioners in the field of OOP.

By reading Microsoft Object Thinking, you will gain an in-depth understanding of:

    • The origins and evolution of OOP and how it differs from other paradigms.
    • The core concepts and principles of OOP such as abstraction, encapsulation, inheritance, polymorphism, composition, delegation, messages, contracts, etc.
    • The benefits and challenges of OOP such as reuse, modularity, extensibility, complexity, coupling, cohesion, etc.
    • The relationship between OOP and XP/Agile methodologies such as test-driven development (TDD), refactoring, pair programming, user stories, etc.
    • The techniques for decomposing complex domains into objects using CRC cards, responsibility-driven design (RDD), use cases, scenarios, etc.
    • The techniques for identifying object relationships, interactions, and constraints using collaboration diagrams, sequence diagrams, state diagrams, etc.
    • The techniques for relating object behavior to internal structure and implementation design using class diagrams, interface diagrams, design patterns (Gang of Four), etc.

    By applying Microsoft Object Thinking to your own projects, you will be able to:

      • Write code that is more readable, maintainable, testable, and adaptable.
      • Design systems that are more flexible, scalable, robust, and reliable.
      • Solve problems that are more complex, dynamic, and diverse.
      • Collaborate better with other programmers who share the same mindset.
      • Deliver value faster and more frequently to your customers.

      How can you watch the webcast by fatalis kahu?

      51082c0ec5
      Reply all
      Reply to author
      Forward
      0 new messages