Any child with a screwdriver and a hammer can take things apart. Unless another child can look at the pieces and determine how to put them together again (or even more important, see how to take a piece from one pile and use it to replace a piece missing from another pile), the first child’s decomposition was flawed.
Both data and function are poor choices for being a decomposition tool. Parnas provided several reasons for rejecting function. Among them are the following:
Resulting program code would be complicated, far more so than necessary or desirable.
Complex code is difficult to understand and test.
Resulting code would be brittle and hard to modify when requirements changed.
Resulting modules would lack composability—they would not be reusable outside the context in which they were conceived and designed.
Робімо декомпозицію правильно!
Some other common computer science concepts and vocabulary credited to Dijkstra include separation of concerns (which is important to object thinking), synchronization, deadly embrace, dining philosophers, weakest precondition, and the guarded command. He introduced the concept of semaphores as a means of coordinating multiprocessing. The Oxford English Dictionary credits him for introducing the words vector and stack into the computing context.
З чого відомий Едсгер Вайб Дайкстра...
The Taoist butcher used but a single knife, without the need to sharpen it, during his entire career of many years. When asked how he accomplished this feat, he paused, then answered, “I simply cut where the meat isn’t.”
Отак читаю книжку про екстремальне програмування і дивуюсь, чому в університетських курсах з філософії про такі речі ніхто не розказував.
In Rome, one’s first duty was to the group, clan, class, or faction upon which one depended for status. Known as gravitas, this meant sacrificing oneself for the good of the organization, and giving up one’s individuality and identifying closely with the group. In a Roman environment you go to work, the company hands you your tools, and then it holds you and your mind hostage until you sever your relationship with the organization. You are not an individual: you are owned by the organization body and mind, twenty-four hours a day. There are substantial rewards for this, however. The organization provides you with security, money, and power.
І за лояльність тебе буде винагороджено. Якщо ти є лояльним 24/7.
In ancient Greece, an individual would act as his own agent in his own behalf, or combine with other people to act together as a team. In a Greek work environment, you bring your tools to work with you, you do your stuff, and then you pack up your tools and take them home. You are an individual—an independent contractor. You are not owned body and mind.
Цікава концепція-порівняння типів мислення і роботи розробників (радше незалежних розробників) з мисленням і роботою давньогрецьких митців та як протилежність їм робітників Стародавнього Риму, як осіб, які не уявляють свого існування поза межами своєї спільноти та для яких інтереси спільноти є важливішими за власні.