Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
там где не нужно наследование можно вполне написать на процедурках и разложить по разным файлам, никто разницы не заметит авторООП не используется при разработке операционных систем. Единственная (BeOS) умерла так и не пожив. вот кстати, в nginx-ах всяких есть ООП, и много где ещё авторООП в БДлол ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 03:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу? так он это делает на каждом запросе, а так бы 1 раз и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 03:22 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу? так он это делает на каждом запросе, а так бы 1 раз и всё. Давно написан - HHVM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 06:39 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinНет также сведений о сравнении двух одинаковых или похожих проектов разработанных с ООП или без. с точностью до моего склероза - гном и кде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 07:08 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinжаль я не зная Си. Так бы заколбасил бы "2+2" в процедруном стиле и на опе. Открою тайну: С не ООП, а процедурный. ООП это С++. Как уже написали ООП синтаксический сахар для удобства написания кода и не более того. Как ООП превращается в процедурный: допустим у нас есть класс Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. В процедурном стиле свойства превращаются в структуру, а методы в функции с доп.параметром указатель на структуру Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Именно так компилятор избавляется от ООП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 07:27 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу? так он это делает на каждом запросе, а так бы 1 раз и всё. Потому что это скриптовое дерьмо. Т.е. все равно придется линковать весь интерпретатор, для того, чтобы оно как-то работало. Ну или выносить интерпретатор в библиотеки, как например Java или C#. И не факт, что после "компиляции" бинарник будет работать быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 08:42 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinжаль я не зная Си. Так бы заколбасил бы "2+2" в процедруном стиле и на опе. Всё очень просто. У тебя не НЕ хватает знаний ООП. У тебя не хватает ПРОСТО знаний. Когда я изучал ООП (После Ассемблера и Бейсика) у меня не возникало вопросов. Всё зашло естественным образом. По поводу 2+2 это сарказм? Надеюсь ты понимаешь что никто овер-проектированием не занимается и 2+2 в ООП складывают так-же как и в процедурном. Может ты хотел сложить два вектора или две матрицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:05 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgulНу или выносить интерпретатор в библиотеки, как например Java или C#. Чё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:05 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Dima TИменно так компилятор избавляется от ООП Семантически, имеет смысл переименовать первый аргумент в this. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:09 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tchingizaliskinНет также сведений о сравнении двух одинаковых или похожих проектов разработанных с ООП или без. с точностью до моего склероза - гном и кде Не думаю что их можно сравнивать. Давайте найдем диаграммы стеков их используемых технологий и посмотрим. Если будет слишком большая разница в слое API (GTK+) то мы не сможем ставить знак равенства или нам придётся как-то дополнительно доказывать что изначально условия были одинаковые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Зря вы полезли в абстракции. ТС просто не знает, как работает компилятор =) Хотя догадывается в нужную сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 10:31 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 10:57 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
schi +++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 11:19 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
maytonСемантически, имеет смысл переименовать первый аргумент в this. А, учитывая уже существующий синтаксис, его тип должен быть указателем. Именно так мы и приходим к коду Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 14:23 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА, учитывая уже существующий синтаксис, его тип должен быть указателем. Именно так мы и приходим к коду Код: plaintext 1. Учитывая существующий синтаксис возникает вопрос: а зачем вообще писать this->x, когда можно просто x. Это же вам не джава какая-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 16:12 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Изопропилtip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу? так он это делает на каждом запросе, а так бы 1 раз и всё. Давно написан - HHVM хм авторAs a process virtual machine that provides the execution environment, HHVM has the ability to use live type information to produce more efficient native code, leading to a higher web server throughput and lower latency. In Q4 2012, the execution of facebook.com's source code on HHVM achieved performance parity with HPHPc,[8] and in December 2013 HPHPc was even surpassed by around 15%. это в 2013 а в PHP7 какие результаты, интересно. Он типа на 40% быстрее PHP5 получился ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 16:24 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskin, Знаете такой анекдот... Воскресили коммунисты ВИЛ. На следующее утро ищут - нигде нет. На столе записка - "Жду в разливе. Начинаем всё сначала." Возвращаясь к баранам... Рекомендую прочитать альма-матер по ООА и ООП. (к слову: "П" - это НЕ программирование) Гради Буч "Объектно-Ориентированный Анализ и Проектирование" с примерами приложений на C++ Первые главы, ОБЯЗАТЕЛЬНО! прочитать и попытаться ПРИМЕНИТЬ! к своей простой задаче. Отвечая на Ваш вопрос: ОО подход - это МЕТОДИКА ПЕРЕХОДА ОТ БИЗНЕС МОДЕЛИ К КОДУ. - других методик тупо нет (умные словосочетания не объясняют стэп-бай-стэп как в ОО сам переход от "ХАЧУ" к "ТО ЧТО НУЖНО!") - при использовании ОО один из профитов = СТАТИЧНОСТЬ кода. Т.е. меньше всего переделок. Если это не так - то разработчику надо читать теорию - т.е. указанную книгу. удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 22:36 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
kolobok0- при использовании ОО один из профитов = СТАТИЧНОСТЬ кода. Т.е. меньше всего переделок. Если это не так - то разработчику надо читать теорию - т.е. указанную книгу. дам ещё раз ссылку: https://habrahabr.ru/company/hexlet/blog/303160/]как сопровождать 10 миллионов строк кода и не сойти с ума - 10 правил от NASA «The Power of 10: Rules for Developing Safety-Critical Code»В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего станда Вот перевод этого списка. 1. Нужно сильно ограничивать ветвления и условия. Не использовать goto, setjmp или longjmp, не использовать прямую или косвенную рекурсию. 2. У всех циклов должен быть предел. Проверяющая программа должна иметь возможность легко доказать, что определенное количество итераций не может быть превышено. Если предел невозможно доказать статически, то правило считается нарушенным. 3. Не использовать динамическое распределение памяти после инициализации. 4. Любая функция должна уместиться на одном стандартном листе бумаги, одно выражение на строку и одна строка на определение. Обычно это означает, что функция не должна быть длиннее 60 строк. 5. Плотность assert-ов в коде должна быть не менее двух assert-ов на каждую функцию (!!! ТУТ ОШИБКА ПЕРЕВОДА БЫЛА: не более 2х assert-ов). Assert-ы используются для проверки аномальных условий, которые не могут произойти при реальном запуске. Assert-ы не должны содержать сайд-эффектов, и по формату должны быть Boolean-тестами. Когда assert падает, должно запуститься специальное действие по восстановлению, например, возврат условия падения обратно в вызывающую функцию. Если проверяющая программа доказывает, что assert никогда не фейлится или никогда не удовлетворяется, то правило считается нарушенным. (Нельзя обойти это правило с помощью бессмысленных “assert(true)”). 6. Объекты с данными должны быть задекларированы на самом низком (из возможных) уровне области видимости. 7. Возвращаемое значение не-void функции должно проверяться вызывающей функцией. Валидность параметров должна проверяться внутри каждой функции. 8. Препроцессор можно использовать только для включения header-файлов и простых макро-определений. Token pasting, вариативные функции и рекурсивные макро вызовы запрещены. Использование условных директив компиляции нежелательно, но иногда неизбежно. Это означает, что только в редких случаях уместно использовать больше чем одно или два условия в директивах компиляции, даже в больших проектах. 9. Использование указателей должно быть ограничено. Допустимо не больше одного уровня разыменования. Операторы разыменования не должны быть скрыты в макро определениях или внутри typedef. Указатели на функции запрещены. 10.Весь код должен компилироваться при всех включенных warning'ах, на самых дотошных настройках компилятора с самого первого дня разработки. Весь код должен компилироваться с такими настройками без единого warning'а. Весь код должен проверяться каждый день (как минимум раз в день, но желательно чаще), с использованием лучшего из доступных на текущий день статического анализатора кода, и должен проходить анализ без единого warning'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 01:59 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tip78как сопровождать 10 миллионов строк кода и не сойти с ума - 10 правил от NASA Код: plaintext 1. Правила хорошие. Годные. Единственное. Последнее 10 правило КМК для современного компиллятора (а тем более статического анализатора) практически невыполнимо. Если вы подключаете SonarQube к примеру то даже в очень хорошем коде может выдавать "параноидальные" советы. Всем участникам топика - посмотрите на свои собственные проекты. В части логов компилляции. Действительно ли у вас компилляция всегда проходит без WARNINGS в включенными опциями "на самых дотошных настройках" как описано в статье. И прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS вы получаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 09:16 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mayton...И прошу отписаться... подтверждаю, что максимальный warning, отсутствие ругани в логах и использование этого подхода ВСЕГДА - это хорошая практика. Проекты разные(разные языки, компиляторы, оси) от единиц до тысяч классов (читай файлов). правда не понял каким боком ПРАВИЛА КОДИРОВАНИЯ(НЕ!!! отвечают на вопрос как перейти от мысли к коду) относятся к МЕТОДИКЕ(превращает бизнес слова в код) анализа и проектирования - хз... лично для меня - это принципиально разные вещи, хоть и связанные... удачи усем (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 11:31 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mayton... ЯП и размер проекта (сколько тысяч строк) и сколько... ээээээээээээээ если в цифрах. то мне кажется как то так: что вспомнил, за последние года... азм (51, avr, stm32) / 15-20 файлов строк по 200-500 где то / 0 warnings / года 2004-2014 где то c (avr, stm32) / 15-20 файлов строк по 100-200 где то / 0 warnings / года 2006-2015 где то c++ (ms) / 8-10 файлов строк по 300-400 где то / 0 warnings / года 2015-2016 qt, c++ (ms) / 20-30 файлов строк по 400-600 где то / десятки warnings (из за кути там лезут) / 2015-2016 java (android) / 5-10 файлов строк по 100-200 кажется / 0 warnings / года 2013-2015 где то как то так... всё по памяти = плюс-минус трамвайная остановка. это чиссо свои проекты. нету явного отключения warnings. уровень - на полную катушку. и? (круглый) ЗЫ О блин... забыл ышо парочку проектов по си плас плас, парочку по вэбовским делам типа пых-пыха, js и прочая фигня... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 11:45 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
maytonПравила хорошие. Годные. А мне кажется, что как минимум половина из них идиотские. С какой стати нужно избегать рекурсии, к примеру, при обходе узлов дерева? Или откуда в универсальной подпрограмме должно возникнуть ограничение на количество итераций? Пару раз получал сбой работы оттого, что мои коллеги считали это правило разумным с т.з. "реального запуска". maytonИ прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS вы получаете. Delphi, проект с со всеми плагинами порядка 2 млн. (может и больше, не считал). Сразу отключаю предупреждения типа "unsafe typecast", за остальными слежу и не допускаю. Вплоть до того, что вставляю бессмысленные с т.з. кода конструкции чтобы компилятор не нервничал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 12:31 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, По поводу рекурсии. Кажется недавно здесь в sql. Ru Уже обсудили этот документ и решили что это NASA, аэрокосмос и как следствие повышенные Требования к real-time. Вобщем нишевый документ но в своем сегменте годный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 13:06 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mayton, сомневаюсь даже насчет сегмента. Помнится, именно у NASA один ракетоноситель грохнулся именно из-за таких "разумных ограничений" (softwarer подробно описывал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 13:27 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисА мне кажется, что как минимум половина из них идиотские. С какой стати нужно избегать рекурсии, к примеру, при обходе узлов дерева? Переполнение стека, не? :-) Соколинский БорисИли откуда в универсальной подпрограмме должно возникнуть ограничение на количество итераций? Пару раз получал сбой работы оттого, что мои коллеги считали это правило разумным с т.з. "реального запуска". Бесконечный цикл, не? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 14:02 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39631635&tid=1340130]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 284ms |
| total: | 593ms |

| 0 / 0 |
