Andrii Borovyi Andrii Borovyi

14 апреля 2017 г.

what you code is dependent on how you have thought about the problem space and how you have decomposed that space into objects.

Andrii Borovyi Andrii Borovyi

25 марта 2017 г.

Фраза про поганого танцютиста заграла новими барвами

A better metaphor for assembling objects to collectively perform tasks is theater

Andrii Borovyi Andrii Borovyi

4 февраля 2017 г.

Цікаво, чи приципи згідно з якими Епл вказує користувачам, як використовувати їх пристрої, узгоджуються з цим твердженням?

You don’t like to work for a boss who doesn’t trust you and allow you to do your job, so why should your software objects put up with similar abuse?

Andrii Borovyi Andrii Borovyi

4 февраля 2017 г.

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.

Andrii Borovyi Andrii Borovyi

11 января 2017 г.

Робімо декомпозицію правильно!

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.

Andrii Borovyi Andrii Borovyi

11 января 2017 г.

З чого відомий Едсгер Вайб Дайкстра...

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.

Andrii Borovyi Andrii Borovyi

11 января 2017 г.

Отак читаю книжку про екстремальне програмування і дивуюсь, чому в університетських курсах з філософії про такі речі ніхто не розказував.

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.”

Andrii Borovyi Andrii Borovyi

11 января 2017 г.

І за лояльність тебе буде винагороджено. Якщо ти є лояльним 24/7.

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.

Andrii Borovyi Andrii Borovyi

11 января 2017 г.

Цікава концепція-порівняння типів мислення і роботи розробників (радше незалежних розробників) з мисленням і роботою давньогрецьких митців та як протилежність їм робітників Стародавнього Риму, як осіб, які не уявляють свого існування поза межами своєї спільноти та для яких інтереси спільноти є важливішими за власні.

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.

Andrii Borovyi Andrii Borovyi

11 января 2017 г.

Software development is neither a scientific nor an engineering task. It is an act of reality construction that is political and artistic.

Andrii Borovyi Andrii Borovyi

11 января 2017 г.

Although the claim is made that C++ is a general-purpose programming language, that assertion should be modified. C++ is a general-purpose language for describing and efficiently implementing programs that model software implementation constructs (for example, control structures, data structures, and algorithms), virtual machines, or hardware elements.

Andrii Borovyi Andrii Borovyi

9 января 2017 г.

Цікаво чи є відео, де він програмує.

Mathematicians use an “Erdos Number” as an indicator of their association with Paul Erdos, one of the most prolific and brilliant mathematicians of the past century. Erdos himself had the number 0, those who coauthored a paper with him had the number 1, coauthoring with a coauthor yielded 2, and so on. Extreme programmers are given a “Ward Number” based on pair programming with him (1), pair programming with someone who paired with him (2), and so forth.

Andrii Borovyi Andrii Borovyi

9 января 2017 г.

Humans and human abilities are still the key to software development success. This, in turn, suggests that we need to reconsider how we go about enhancing human abilities instead of attempting to replace them with machine capabilities.

Andrii Borovyi Andrii Borovyi

5 января 2017 г.

Refactoring is a way for “lazy” objects to give all the hard work to other objects.

Andrii Borovyi Andrii Borovyi

3 января 2017 г.

Lines of code, for example, in a well-thought-out object application will be at least an order of magnitude fewer (sometimes two orders of magnitude). This means that a 1 million–line program, written conventionally by developers thinking like a computer, can be duplicated with object thinking in 100,000 lines of code or fewer. Time to delivery is reduced by at least 50 percent and often by as much as 70 percent. Projects scheduled to take 2 years to complete can be done in 8 to 12 months.

Andrii Borovyi Andrii Borovyi

31 декабря 2016 г.

Схожу інформацію я зустрічав і раніше, коли порівнювали середню довжину слів у військових командах китайців та росіян: у китайців вона складала 7 літер, а у росіян - лише 5. Правда у критичних ситуаціях росіяни могли зменшувати середню кількість літер у командах до трьох. Я вважав, що це байка.

Benjamin Lee Whorf and Edward Sapir advanced a theory (overstated here) to the effect that what you could and did think was determined by the language you spoke and that some languages allowed you to think “better” than others. Whorf was particularly interested in the Hopi language.

Andrii Borovyi Andrii Borovyi

26 декабря 2016 г.

Fact 1: The most important factor in software work is not the tools and techniques used by the programmers but rather the quality of the programmers themselves.
Fact 2: The best programmers are up to 28 times better than the worst programmers, according to “individual differences” research. Given that their pay is never commensurate, they are the biggest bargains in the software field.
—Robert L. Glass[3]

Andrii Borovyi Andrii Borovyi

26 декабря 2016 г.

Слова написані у 2004 актуальні і у 2016. А ви все про методології розробки говорите.

Bloated, inefficient, bug-ridden, user-unfriendly, and marginally useful—these are still common adjectives used to describe software.