Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1137 • Страница 55 из 57<  1 ... 52  53  54  55  56  57  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
opv88 писал(а):
Если на этапе системного проектирования Вы будете разбивать решение на процедуры и функции

Вот и я говорю, вы говорите не о том уровне. (Мы говорим просто о разных вещах) Если бы я будучи новичком вас читал, я бы решил что вы предлагаете писать весь код в конструкторе одного класса.

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G



Партнер
 

Member
Статус: Не в сети
Регистрация: 22.05.2010
Откуда: Москва
Vladson Не собираюсь больше отвечать на Ваш бред по поводу ООП и бред в целом. Вы уже доказали своими постами, что ничего в нем не понимаете, для Вас даже передача данных в функцию традиционного подхода и в метод в ООП одинаково происходит (как раз вопрос джуниору на собеседовании в чем отличие), начинаете вести пространственную беседу вместо конкретики. Вообще ввязался в этот разговор лишь потому, что жаль тех, кто начитается вот такого, пойдет по собеседованиям и будет получать везде отказы. Вот так и рождается "говнокод", видимо, у людей.

_________________
Config: Ryzen 9 5900X * Gigabyte X570S UD * 32GB RAM * RTX 3080 10Gb * SSD/HDD | XBOX Series X
Origin:AccurceD
Steam:opv1988

https://pavel-orlov.com


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
opv88 писал(а):
бред

Суслика видишь ? ©

То что ты не видишь в моих словах смысла, вовсе не значит что там его нет.

Добавлено спустя 8 минут 39 секунд:
opv88 писал(а):
Вот так и рождается "говнокод", видимо, у людей.

Он рождается по огромному количеству разных причин, от ужатых сроков, до неправильного планирования (когда тимлид вместо рисования схемы требует чтоб все хреначили код на скорость) к качеству программистов и то и другое не относится, даже опытный программер будет писать говнокод, если ему не предоставить выбора, как и новичок может писать хороший код, если тимлид позаботился о грамотном распределении сил в команде.

Добавлено спустя 2 минуты 50 секунд:
opv88 писал(а):
для Вас даже передача данных в функцию традиционного подхода и в метод в ООП одинаково происходит

Не опишите ли разницу ? В двух словах, например что в компьютерах где работают ООП программы не существует оперативной памяти, или что она там какая нибудь особенная с квантовой телепортацией... Я просто не трындю без дела, примеры привожу, итд, а вы только и пишите "ты не прав - ты не прав - ты не прав", хоть один аргумент можно посмотреть ?

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
opv88 писал(а):
Вы уже доказали своими постами, что ничего в нем не понимаете, для Вас даже передача данных в функцию традиционного подхода и в метод в ООП одинаково происходит (как раз вопрос джуниору на собеседовании в чем отличие), начинаете вести пространственную беседу вместо конкретики.

да ничем. Методы - это те же функции с ограничением на область видимости. Классы - структуры с указателем на нужную таблицу методов. ООП, как выше сказали, это развитие идеи модульного программирования, которое в свою очередь, развитие структурного.

Тов. Vladson в целом прав, все классы и методы в итоге транслируются в один и тот же ассемблер, что для навороченного C#, что для брейнфака.

Ну а если вы отличаете "примитивные типа данных" как в С, и "крутые навороченные классы" как в том же C#/Java... То это печально, как раз для вас и вашей корпоративной разработки...

Если собираетесь как-то меня "опускать" и говорить, что я ни в чем не разбираюсь, потрудитесь обоснованно аргументировать разницу между функцией и методом :D

Надеюсь не будет легенд про "магическую" работу перекрытых и переопределенных методов.

Ах да, на закуску: насколько, по-вашему, трудно реализовать ООП в структурных языках? Вопрос открыт)

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Просто оставлю это здесь https://github.com/Herzult/SimplePHPEasyPlus :)

Добавлено спустя 5 минут 11 секунд:
По русски кто не шарит в инглише http://habrahabr.ru/post/172119/

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
Vladson к чему все это? ООП не хуже и не лучше структурного программирования. Никто не программирует контроллеры на ООП. Но никто и никогда не будет делать сложную корпоративную систему на С, велосипедить свои собственные функции MySqlConnectionEstablish, MySqlCommandSend, с кучей малопонятной контроллерной магии.

Я могу привести ассемблерный код моей не самой сложной программки на 2к строк C#, она будет переусложнена несколько больше, чем то, что вы написали. :)

по вашей же ссылке очень мудро написано:
Цитата:
Думаю, остальные не переусложняют. Все эти паттерны, фреймворки и ООП придумали как-раз чтобы было легче работать с кодом и повторно его использовать. С большой кучей функций гораздо сложнее работать, чем с несколькими хорошо продуманными классами.

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

короче, вмешиваться в холивар, когда обе стороны не понимают, чего хотят, вредно. Оставлю до лучших времен вас.

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
Psilon писал(а):
к чему все это? ООП не хуже и не лучше структурного программирования.

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

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
Vladson на том и порешим.

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 10.02.2013
Vladson писал(а):
"любая программа это блоки кода (функции) код работает с данными (циферками/буковками) набор функций для работы с одними и теми же данными можно объединить в классы (классы это наборы функций)" вот и всё, теперь ты знаешь ООП

Правильно в двух словах ООП описывается так: "Всё — объекты". Далее идут уточнения. (Собственно это и есть весь принцип ООП абстракция и ее уточнение).

Psilon писал(а):
Классы - структуры с указателем на нужную таблицу методов

Наоборот, у метода есть указатель на объект, в котором он вызывается. И это заодно ответ на вопрос:
Psilon писал(а):
потрудитесь обоснованно аргументировать разницу между функцией и методом

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

Psilon писал(а):
Классы - структуры с указателем на нужную таблицу методов.

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

Psilon писал(а):
Никто не программирует контроллеры на ООП

Весьма спорное утверждение.

Vladson писал(а):
По русски кто не шарит в инглише http://habrahabr.ru/post/172119/

Все бред и забивание гвоздей микроскопом. Можно и срать садиться исключительно в синих ластах и на капот феррари, это не значит, что так делать правильно.

ЗЫ: имею опыт разработки на C++, C# и Java лет так 9 в сумме. Не могу сказать, что знаю ООП.
ЗЗЫ: совсем начинающему советую таки посмотреть лекции этого чувака, прочитать Thinking in Java. Для начинающего сойдет, все доступно и понятно, одновременно с этим можно начинать быдлокодить. Когда понимание "как написать программу, чтоб она делала то, что я хочу" придет, можно начинать РЕАЛЬНО изучать ООП. Дальше Кнут, паттерны, Фаулер, Мартин, TDD, Agile. Где-то на этапе чтения Фаулера можно просить хорошую зарплату, если выхлоп есть от этого чтения(Обычно он заключается в осознании того что "Весь мой предыдущий код - говно, я не знаю ООП").


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
drinkermann- писал(а):
Всё — объекты

- Что есть объекты ?
- Это тупо классы, то есть это переменные (те самые переменные разных типов) и функции для работы с ними (называют их методами, хотя это функции просто с ограниченной видимостью) и включая собственно интерфейсы, т.е функции ничем от методов не отличающиеся просто которые возвращают эти переменные и по этому называющиеся интерфейсами.

Вывод ?
Всё объекты, да, никто не спорит, но до того как упрощать всё, надо понять как это работает.
drinkermann- писал(а):
Thinking in Java

Можно начать программирование с бейсика (я сам с него в 89-м начинал) там все цифры float и что такое integer никто не знает (подобные вещи не только в бейсике, в РНР похожая история, но там автоматом ставится int/float и это кстати реально усложняет дело) но можно ли называть себя программистом не зная кто это такое ? Не верите вы мне, я не удивлён, вы думаете что какой-то чувак в интернете круче какого-то эстонца, но почитайте тогда Джоеля Спольски. Его авторитет надеюсь посильнее моего. У него немало есть статей о вреде от "думания на яве" и уж тем более об изучении ООП в качестве панацеи от всех бед.

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 10.02.2013
Vladson писал(а):
Это тупо классы, то есть это переменные (те самые переменные разных типов) и функции для работы с ними (называют их методами, хотя это функции просто с ограниченной видимостью) и включая собственно интерфейсы, т.е функции ничем от методов не отличающиеся просто которые возвращают эти переменные и по этому называющиеся интерфейсами.

Смешались в кучу кони, люди..
Vladson писал(а):
Можно начать программирование с бейсика

Можно и с брейнфака начинать. Какой смысл? Человек ясно обрисовал свои задачи. В разумные сроки начать писать код за который можно просить приличные деньги. Изучение бейсика сгодится для общего развития в начальной\средней школе(как было у меня), но не для тех целей, что указаны.


Последний раз редактировалось drinkermann- 14.11.2013 1:05, всего редактировалось 1 раз.

 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
drinkermann- писал(а):
Какой смысл?

Да точно такой же как начинать с явы, надо понять что такое байты и биты, а уже что такое ООП и прочие извращения, само со временем придёт !!!

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 10.02.2013
Vladson писал(а):
надо понять что такое байты и биты

Как тебе бейсик в этом поможет? Ассемблер и брейнфак более подходящие в данном аспекте языки. Тем более если человек работал админом я надеюсь про байты и биты он знает.


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
drinkermann- писал(а):
Человек ясно обрисовал свои задачи

Я ему явно дал ответ кстати, и не смотря на то что вы все пытаетесь опровергнуть мои слова, вы убеждаете его именно в том что я изначально сказал (т.е вы пытаетесь его убедить в том что я неправ, тем что убеждаете его в том что я был прав...)

drinkermann- писал(а):
Как тебе бейсик в этом поможет?

Ты читал ? Нет.. Ты читать умеешь ??? ГДЕ Я ТВОЮ МАТЬ СКАЗАЛ ЧТО БЕЙСКИК ПОМОЖЕТ, ЕСЛИ Я СКАЗАЛ
Vladson писал(а):
там все цифры float и что такое integer никто не знает

МАТЬ ВАШУ, ВСЕ КТО СПОРИТ ХОТЬ ПРОЧИТАЙТЕ МЛЯТЬ С ЧЕМ ВЫ СПОРИТЕ ТО !!!!!!!!!!!!!!!!!!!1

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 10.02.2013
Vladson писал(а):
ТВОЮ МАТЬ

Vladson Воу воу, "палехче". В жизни по роже бы схватил незамедлительно, вне зависимости от размера и степени физ. подготовки.
У меня есть большие проблемы с распознанием сарказма, так что твой тонкий юмор был принят за чистую правду.

Почему с ООП начинать? Все просто. Это самый правильный способ эффективной разработки, переучиваться с ООП на ФП проще и быстрее, чем наоборот, не требует понимания практически никаких дополнительных концепций.
Почему Java? Потому что из всех современных языков этот самый универсальный, при этом максимально приближен к концепции ООП. Если ограничиваться только виндами, я бы рекомендовал C#, хотя различий по сути минимум. Гробить психическое здоровье, зарабатывать лысину и импотенцию изучая C++, если не собираешься разрабатывать высоконагруженные сервисы или приложения требующие максимальной скорости(игры например) бессмысленно.

Vladson писал(а):
вы пытаетесь его убедить в том что я неправ, тем что убеждаете его в том что я был прав

Щито? Я не осилил смысла этого выражения.

Понимание ООП у тебя отсутствует в принципе. ООП это просто не биты с байтами, классы это не просто набор данных и функций. Еще раз, ООП для самых маленьких и тупых:
Основная мысль - всё объекты. Уточнения: объект это независимая память состоящая из других объектов, объект обладает поведением присущим его родителю, объект обменивается сообщениями с другими объектами указывая им что делать. Все.
Где тут функции? Где переменные? Ты пытаешься представить ООП в контексте ФП, это заведомо неправильный и ущербный подход который приведет к созданию быдлокода в итоге, вместо нормально расширяемого объектного кода написанного изначально с пониманием того как и что работает.

Да, я согласен все в итоге транслируется в ассемблер, но если тебе нужны такие подробности - пиши на ассемблере. Для эффективной разработки такие подробности не нужны, они избыточны и слишком ресурсозатратны.
Уж не помню где, но где-то читал. Время потраченное на низкоуровневую разработку всегда больше времени на разработку высокоуровневую плюс время жизни продукта(Естесственно речь не идет о вышеупомянутых ситуациях, когда применение ООП затруднительно или невозможно).

Добавлено спустя 7 часов 23 минуты 54 секунды:
И да, забыл добавить, вылетело из головы ибо время позднее было. Есть еще несколько аксиом от К.О.

Понять биты с байтами, ссылки, указатели, принципы выделения памяти, всякие протоколы обмена информацией и что там как внутри работает ГОРАЗДО ПРОЩЕ, чем научиться писать надежный, чистый и быстрый объектный код.
Заниматься программированием не понимая как работает машина - бессмысленно, на любом языке. Даже на этом вашем пехепе или бейсике.
Не стоит даже начинать изучать мертвые языки(типа дельфи или ди), хотя изучить их, если они вам вдруг понадобятся обычно значительно проще, если есть опыт работы с нормальными языками.
Не нужно выбирать язык, нужно выбирать подход к проектированию. ООП, ФП, АОП и тд. Язык не важен, важно чтоб он поддерживал выбранную вами концепцию. Хорошо спроектированный и чистый код читается и работает так, как если бы язык программирования на котором он написан проектировался именно для решения задачи этого кода. Это простое с виду правило применимо для любого языка и любых задач, но чтобы научиться так писать нужно потратить хреналион часов на практику и теорию проектирования.


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
drinkermann- писал(а):
Где тут функции? Где переменные?

Да, в ваших словах их нет, я именно об этом говорил выше. В компьютерной памяти они ЕСТЬ и не зная об этом быть хорошим программистом нельзя. И вы сами это говорите
drinkermann- писал(а):
Заниматься программированием не понимая как работает машина - бессмысленно, на любом языке

Но касаемо же именно ООП, это не какая либо неведомая магия, это лишь "стиль написания" кода. Запихни весь код в один класс и получишь то самое "линейное" программирование, как ассемблер или батник.

Добавлено спустя 4 минуты 3 секунды:
drinkermann- писал(а):
Ты пытаешься представить ООП в контексте ФП

Нет, я пытаюсь дать вам понять что именно происходит в ООП, на физическом уровне !!! Что нет никакой магии и прочего, и как код не назови, он всё равно выполняется процессором в памяти, и что когда-то давно какие-то дяди придумали упростить программирование и придумали ООП и теперь народ даже не знает кто такие типы/ссылки/итд и уже пытается называть себя программистом.

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 10.02.2013
Vladson писал(а):
я пытаюсь дать вам понять что именно происходит в ООП, на физическом уровне !!!

И именно по этой причине ты ничерта в ООП не понимаешь. ООП подразумевает полное абстрагирование от подробностей реализации, да похрену что там, конденсаторы заряжаются в памяти, африканские детишки палкой на песке рисуют или черная магия. Ты работаешь с объектом через его интерфейс, все. Подробности реализации тебя абсолютно не волнуют, если они тебя волнуют, то ты НИКОГДА не сможешь писать грамотный ООП код.
Vladson писал(а):
это лишь "стиль написания" кода

Нет. Это способ проектирования, даже философия проектирования, я бы сказал, это не стиль. Стиль написания кода это вертикальное\горизонтальное выравнивание, использование разных регистров букв и выбор имен.
Еще раз:
Ты можешь знать как работает компьютер на уровне одного электрона, но ты никогда не станешь хорошим ООП программистом, если не понимаешь базовых вещей в ООП, таких как Скрытие реализации, Закон Диметры и тд. В лучшем случае быдлокодером способным реализовать алгоритм. Твои программы работать будут, но все то, ради чего используется ООП подход работать не будет.
Знание подробностей реализации работы компьютера существенно упрощает разработку, а не делает ее возможной. Тебе не нужно думать что там внутри сокета, тебе нужно думать как с ним работать. Знаешь как работает сокет? Хорошо, будет проще понять поведение объекта, не более.


 

member+
Статус: Не в сети
Регистрация: 16.01.2004
Откуда: Estonia,Tallinn
drinkermann- писал(а):
даже философия проектирования, я бы сказал

Вся ваша "философия" (по крайней мере из того что читал я) заключается в том что надо писать код максимально абстрактно, увы почему-то никто из ООП-шников не может понять что так надо писать любой код.
drinkermann- писал(а):
таких как Скрытие реализации

От кого скрытие ? От программиста который этот код писал ?

Нет, это скрытие одних функций от других функций и работа с данными через 3-е функции которые почему-то называются интерфейсами, хотя сами по себе тоже просто функции возвращающие эти данные в том или ином виде. Я не спорю вещь полезная, но меня выворачивает когда ради таких простых и понятных вещей, придумывают слова типа "философия" и прочий бред. Ощущение что это комплексы играют, людям хочется верить что они делают что-то "великое и таинственное" но программисты как ООП так и ФП пишут код, а это переменные, условия, и функции (хоть методами их обзови, хоть интерфейсами, они всё равно будут простым и банальным кодом)

А то что к проектированию надо относиться более тщательно, так это не философия чисто ООП, это первое правило программистов вообще, увы почему-то ООП-шники думают не ООП-шники проектировать не умеют...

_________________
X99-TF/E5-2678v3+Evo212/2x16Gb-DDR4-Gloway-TYPE-a@2133-12-13-13-26/GTX1070TI/KINGSTON-SNV2S1000G


 

Member
Статус: Не в сети
Регистрация: 20.03.2011
Откуда: Москва
drinkermann- Vladson
оставлю это здесь

_________________
I would tell you a joke about UDP, but you probably wouldn't get it.


 

Member
Статус: Не в сети
Регистрация: 10.02.2013
Vladson писал(а):
увы почему-то никто из ООП-шников не может понять что так надо писать любой код.

Очень хреново себе представляю максимально абстрактный обработчик нетипизированных данных в ФП. Сделать можно, но это ад.

Vladson писал(а):
От кого скрытие ? От программиста который этот код писал ?

От того, кто код использует разумеется. Сам используешь, значит от себя самого, да.

Vladson писал(а):
3-е функции которые почему-то называются интерфейсами

Чем интерфейс от функции отличается знаешь?

Vladson писал(а):
Нет, это скрытие одних функций от других функций и работа с данными через 3-е функции которые почему-то называются интерфейсами, хотя сами по себе тоже просто функции возвращающие эти данные в том или ином виде

Ну очередной же фейл. Представь точку. С точки зрения ФП это структура {x,y}, с точки зрения ООП это объект который умеет получить координаты. Координаты могут быть любыми, в любой СК, на внутреннюю реализацию это НИКАК не повлияет.
Работа через 3и функции это не ООП подход, это быдлокод.
Vladson писал(а):
программисты как ООП так и ФП пишут код, а это переменные, условия, и функции (хоть методами их обзови, хоть интерфейсами, они всё равно будут простым и банальным кодом

Что в лоб, что по лбу. Важно не то ЧТО ты пишешь, важно КАК ты это делаешь. Функция имеет ссылку на объект в котором она вызвана? Может на область определения? С хрена ли они одно и то же? Чушь городишь же. если сидеть только внутри одного объекта, да метод и функция одно и то же, но если смотреть в комплексе, то это полный бред.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1137 • Страница 55 из 57<  1 ... 52  53  54  55  56  57  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan