Вторая часть марлезонского балета:
Цитата |
When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I’m using abstractions that aren’t powerful enough - often that I’m generating by hand the expansions of some macro that I need to write.
– Paul Graham
We shouldn’t get to caught up in the philosophy or idea behind a specific pattern or solution. Our main concern is to keep the code as easy to navigate and understand as possible and as a result easy to maintain and easy to keep secure.
We must also remember that there exists such a thing as an anti-pattern. It is a pattern that may be commonly used but is ineffective and/or counterproductive in practice.
I think patterns started off as generally recognized best solutions for common problems. But now that they have been around for a while and we have experienced applications being made ten times more complicated than they need to be because people try to cram in all the patterns that they have read about (“my application is well architected, because it is loaded to the gills with patterns.”) my impression of the value of the pattern has shifted a bit.
– Paul Weaton in Evil Design Patterns
Always use the pragmatic approach:
Action or policy dictated by consideration of the immediate practical consequences rather than by theory or dogma.
– Collins English Dictionary, Complete and Unabridged, 12th Edition 2014
The wrong way: Looking for a pattern to solve a problem. |
Перевод:
Когда я вижу закономерности в моих программах, я считаю это признаком неисправности. Модель программы должна отражать только ту проблему, которую должна решить. Любая другая закономерность в коде, по крайней мере для меня, является признаком того, что я использую недостаточно мощные абстракции, - часто я вручную расширяю некоторые макросы, которые нужно написать.
© Пол Грэм
Мы не должны быть втянуты в философию или идею конкретного шаблона или решения. Наша главная задача - сохранить код, в котором легко ориентироваться и который легко понимать, насколько это возможно. А в результате легко поддерживать и сохранять безопасность.
Мы также должны помнить, что существует такая вещь, как анти-паттерн. Это тоже шаблон, который может быть использован, но он делает код неэффективным и контрпродуктивным.
Я думаю, что паттерны начинали как общепризнанные лучшие решения для общих проблем. Но теперь, когда они окружают нас, мы видим приложения, разрабатываемые в десять раз сложнее, чем должны быть, только потому, что люди пытаются втиснуть в них все шаблоны, о которых когда-либо читали (мое приложение хорошо спроектировано, потому что до краев напичкано разными паттернами), мое впечатление о них немного изменилось.
© Pol Weaton в "Зло шаблонов проектирования"
Всегда используйте прагматический подход:
Действие или мышление продиктованы рассмотрением непосредственных практических последствий, а не теорий или догм.
© – Collins English Dictionary, Complete and Unabridged, 12th Edition 2014
Неправильный путь : Искать шаблон, чтобы решить проблему.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
sergeiss
29.08.2016 - 22:03
Цитата (twin @ 29.08.2016 - 14:54) |
Сейчас еще Сергей появится. Вообще разнесет в пух и прах мой перевод))) |
Хто тут меня "к ночи помянул"?
Не буду претендовать на абсолютную истину. Кое-где я бы немного подтянул стилистику (далеко не всё процитировал из того, что не совсем нравится стилистически) и местами грамматику (лишние запятые встречаются). Ну и по отдельным позициям моё мнение, с каментами. Сначала цитата оригинала, затем цитата перевода, затем мой вариант перевода и, местами, мои каменты.
Цитата (twin @ 29.08.2016 - 14:44) |
Цитата In the software industry you can compare a pre-built house to a general purpose framework. Building software using general purpose frameworks doesn’t make you a coder or a programmer any more than putting together a pre-built house makes you a carpenter. |
Цитата (twin @ 29.08.2016 - 14:44) |
В индустрии программирования фреймворк можно сравнить с заранее построенным домом. Разработка с использованием фреймворка делает из вас кодера или программиста не более чем использование такого дома делает из вас столяра или плотника. |
Я бы сказал так:
1. "В индустрии программирования фреймворк общего назначения можно сравнить со сборным домом из типовых панелей" Имеется ввиду, что дом построен по некоему типовому проекту, то есть таких домов много. И он легко собирается из готовых больших частей.
2. "Разработка программ на основе таких фреймворков не делает вас кодером или программистом, подобно тому, как сборка такого дома не делает вас столяром.". Такой перевод, мне кажется, сохраняет именно то, что речь идет о сборке из блоков, как во фреймворке, так и при строительстве (сборке) pre-build дома.
Цитата (twin @ 29.08.2016 - 15:34) |
которая поможет вам создавать программное обеспечение, но в то же время она заставляет вас работать в рамках правил и ограничений самой структуры. |
"которая помогает вам создавать программное обеспечение, но в то же время она заставляет вас работать в рамках правил и ограничений самой структуры." - чисто стилистически мне так больше нравится
Цитата (twin @ 29.08.2016 - 16:40) |
When you use a framework in PHP you add a layer of abstraction on top of yet another layer of abstraction, one that was already in place for you to use to begin with. |
Цитата (twin @ 29.08.2016 - 16:40) |
При использовании фреймворка поверх PHP, вы добавляете новый слой абстракции туда, где уже нужно начать использовать возможности самого PHP. |
"Когда вы используете фреймворк в ПХП, вы добавляете новый слой абстракции поверх другого, уже существующего слоя абстракции, который уже был готов для использования."
Цитата (twin @ 29.08.2016 - 17:24) |
The higher the abstraction, the more detail and efficiency is lost.
|
Цитата (twin @ 29.08.2016 - 17:24) |
Чем выше уровень абстракции, тем больше деталей и тем меньше эфективность. |
"Чем выше уровень абстракции, тем больше деталей и эффективности будет потеряно" - чисто стилистически, мне кажется, так лучше будет.
Цитата (twin @ 29.08.2016 - 17:24) |
Action or policy dictated by consideration of the immediate practical consequences rather than by theory or dogma. |
Цитата (twin @ 29.08.2016 - 17:24) |
Действие или мышление продиктованы рассмотрением непосредственных практических последствий, а не теорий или догм. |
"Действие или мышление продиктованы скорее рассмотрением непосредственных практических последствий чем теориями или догмами." - тоже стилитически лучше, мне кажется.
Цитата (twin @ 29.08.2016 - 18:54) |
"О! Я буду использовать шаблон X!" (последнее предложение не понял, перевел как смог. sad.gif ) |
Так и правильно перевел
Цитата (twin @ 29.08.2016 - 19:43) |
When I see patterns in my programs, |
Цитата (twin @ 29.08.2016 - 19:43) |
Когда я вижу закономерности в моих программах, |
"Когда я вижу
шаблоны/паттерны в моих программах," - шаблоны или паттерны (дальше ты используешь паттерны), но уж точно не "закономерности".
Ну и вообще, надо "прошерстить" весь перевод, чтобы везде были либо шаблоны, либо паттерны. Чтобы однозначность была.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)