[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: The Wrong Way
Страницы: 1, 2, 3, 4, 5, 6
twin
Спасибо, похоже. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
И концовка главы

Цитата
All experience starts with the interface. The interface experience is the result of the underlying technology and the amount of layers of abstraction. The more abstraction you use, the less efficient the interface becomes and the more error-prone the application becomes. The higher the abstraction, the more detail and efficiency is lost.

Understand this clearly: The ideal number of lines of code in any project is as few as possible whilst being as clear and readable as possible!

What everyone doesn’t need is a general purpose framework. Nobody has a general problem, everyone has a very specific problem they are trying to solve.

– Rasmus Lerdorf

Some companies began listening to the hype about PHP frameworks and they started their next projects using one of these popular general purpose frameworks only to end up in a disaster. Not only did they discover that the general purpose framework was really bad at solving their very specific need, but it was also extremely slow in doing so. It was impossible to scale and as a result they started ripping the framework apart in a desperate attempt to pull out all those things they really didn’t need.

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: Always use a framework on top of PHP.


Перевод.

Познание программы начинается с интерфейса. Знание интерфейса, это результат знания базовой технологии, а так же и всех уровней абстракции. Чем больше количество уровней абстракции используется, тем менее эффективным становится интерфейс, и тем приложение более подвержено ошибкам. Чем выше уровень абстракции, тем больше деталей и тем меньше эфективность.

Примите, как очевидное: Идеальное количество строк в проекте - наименьшее из возможного, без потерь максимальной четкости и читабельности.

То, что вам совершенно не нужно, это фреймворк. Нет общих проблем, каждый человек имеет свою, очень специфичную проблему. Её он и пытается решить. © Расмус Лердорф

Некоторые компании с воодушевлением приняли фреймворки, и начали свои следующе проекты с использованием одного из них. Только в конце концов это привело к катастрофе. Мало того, что они обнаружили, что фреймворки плохо решают их специфические потребности, но они ещё и очень медленны при том. Их было невозможно масштабировать, и в результате разработчики стали ломать саму основу в попытках удалить оттуда все ненужное.

Всегда используйте прагматический подход:

Действие или мышление продиктованы рассмотрением непосредственных практических последствий, а не теорий или догм.
© – Collins English Dictionary, Complete and Unabridged, 12th Edition 2014

Неправильный путь: Всегда используйте фреймворк поверх PHP.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Следующая.

Цитата
Always use a design pattern

I have this big allergy to ivory-tower design and design patterns. Peter Norvig, when he was at Harlequin, he did this paper about how design patterns are really just flaws in your programming language. Get a better programming language. He’s absolutely right. Worshiping patterns and thinking about, “Oh, I’ll use the X pattern.”

– Brendan Eich in Coders at work - Reflections on the Craft of Programming

In software engineering, a design pattern is a reusable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or an idea for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.

PHP supports imperative, functional, object-oriented, procedural, and reflective paradigms. PHP is a huge toolbox with lots of different tools that makes it possible to solve many problems in many different ways - not just one way.

PHP is all about freedom, fast and scalable solutions, and having many different ways to deal with problems.

When we try to improve ourselves, and in this case more specifically our code, we sometimes get hung up in the philosophy of a particular pattern or idea and tend to forget to think practically.



Перевод:

Всегда использовать шаблоны проектирования.

У меня есть большое отвращение к башням цвета слоновой кости и к шаблонам проектирования. Питер Норвиг, когда он был в Harlequin Inc, написал статью о том, что паттерны представляют собой недостатки языка программирования. Возьмите более лучший язык. И он обсолютно прав. Поклоняясь паттернам можно думать только о том, что "О! Я буду использовать шаблон X!" (последнее предложение не понял, перевел как смог. sad.gif )
© Брендан Айк в "Кодеры за работой - Размышления о ремесле программирования"

В программной инженерии, шаблон проектирования представляет собой многократно используемое решение для часто встречающихся проблем в разработке программного обеспечения. Дизайн модели - не окончательный дизайн, который может быть преобразован непосредственно в программный код. Это описание или представление о том, как решить проблему, которая может быть использована в различных ситуациях. Шаблоны проектирования в объектно-ориентированных языках, как правило, показывают отношения и взаимодействия между классами или объектами, без указания классов и объектов конечного приложения.

PHP поддерживает императив, функциональную парадигму, объектно-ориентированный, процедурный и рефлексивный подход. PHP, это огромная коробка с множеством различных инструментов, которые позволяют решить многие проблемы многими различными способами, а не только в одной форме.

PHP, это свобода, быстрые и масштабируемые решения, он предоставляет множество различных путей устранения проблемы.

Когда мы пытаемся улучшить себя, а в данном случае свой код, и зацикливаемся на философии конкретного паттерна или идеи, то, как правило забываем, как думать практично.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Вторая часть марлезонского балета:

Цитата
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

Неправильный путь : Искать шаблон, чтобы решить проблему.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (twin @ 29.08.2016 - 14:54)
Сейчас еще Сергей появится. Вообще разнесет в пух и прах мой перевод)))

Хто тут меня "к ночи помянул"? wink.gif Не буду претендовать на абсолютную истину. Кое-где я бы немного подтянул стилистику (далеко не всё процитировал из того, что не совсем нравится стилистически) и местами грамматику (лишние запятые встречаются). Ну и по отдельным позициям моё мнение, с каментами. Сначала цитата оригинала, затем цитата перевода, затем мой вариант перевода и, местами, мои каменты.

Цитата (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 )

Так и правильно перевел smile.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, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.