@oop_ru

Страница 731 из 785
Andrey
30.08.2018
11:02:31
Почему?

Дмитрий
30.08.2018
11:02:50
Поэтому и говорю, что не буду говорить то, что ты всё равно воспримешь в штыки, пока не проверишь сам

Дмитрий
30.08.2018
11:03:39
Потому что считаешь ui на джаве идеальным

Google
Andrey
30.08.2018
11:03:51
Я сказал, что он для меня удобен.

Дмитрий
30.08.2018
11:04:06
Сворачиваю демагогию, моё дело сказать, твоё — с гневом отрицать объективные факты

Для меня это идеальный интерфейс.

Andrey
30.08.2018
11:04:51
Ок.

Дмитрий
30.08.2018
11:05:03
Я дико извиняюсь

Adel
30.08.2018
11:05:23
насчет JB скажу только что Rider пока сильно хуже чем студия. Им там еще догонять и догонять.

Andrey
30.08.2018
11:05:52
насчет JB скажу только что Rider пока сильно хуже чем студия. Им там еще догонять и догонять.
Зависит от сферы. В вебе/cli я полностью перешёл на райдер. Для остального студия + райдер попеременно.

Adel
30.08.2018
11:06:00
вероятно именно попрогав в VS можно делать некие претензии к интерфейсу идеи

Dmitry
30.08.2018
11:06:36
то есть в твоем виденьи нет никакой разницы между ООП и не ООП на уровне рантайма и вся разница выражается только в коде. Ни тебе повсеместного late binding, ни тебе децентрализации (потому что всегда есть main рутина)
В моём видении объект – это что-то, что живёт своей жизнью, что-то в себе делает и как-то с окружением взаимодействует. Для меня это глобальный термин, применимый на любом уровне абстракции: Парень нажал кнопочку на сайте, кнопочка дёрнула контроллер, контроллер дёрнул юзкейс, юзкейс обратился к доменному сервису, он обратился к сайту знакомств, сайт выплюнул капчу, сервис обратился к веб-сервису AntiGate, API дёрнуло свой юзкейс, он отправил уведомление смартфону свободных индусов, смартфоны запустили приложение, приложение скачало капчу, индус разгадал капчу, смартфон отправил код обратно на сервер, сервер вписал вознаграждение индусу, сервер ответил нашему сайту, сайт отправил разгаданный код сайту знакомств, он вернул список девушек, сервис запросил микросервис с нейронкой на поиск соответствия, он вернул результат сайту, сайт отобразил парню список кандидаток. Это всё – большая система, состоящая из частей, выполняющих свою работу и общающихся друг с другом по определённым контрактам. Сайты написаны на PHP или Ruby, приложения на Java или ObjC, нейронка на Python, вебсокет висит на NodeJS, маршрутизаторы на C, индус вообще живой, а не спрограммированный. Это всё – объекты. И мне вообще не важно, классы это или микросхемы, клетки или компьютеры, сидит ли там живые индусы или их уже заменили на нейронку. И код я пишу также, именно моделируя объекты товаров, складов, контексты бухгалтерии и всего такого прочего. И с такой философией я с недоумением отношусь к низкоуровневым техническим определениям вроде тех, что "ООП это обязательно классы" и подобным.

Andrey
30.08.2018
11:06:53
а что в остальном там такого?
Многочисленные платформы от майков, которые райдер не поддерживает нормально. Типа WPF и UWP

Google
Sergey
30.08.2018
11:07:24
В моём видении объект – это что-то, что живёт своей жизнью, что-то в себе делает и как-то с окружением взаимодействует. Для меня это глобальный термин, применимый на любом уровне абстракции: Парень нажал кнопочку на сайте, кнопочка дёрнула контроллер, контроллер дёрнул юзкейс, юзкейс обратился к доменному сервису, он обратился к сайту знакомств, сайт выплюнул капчу, сервис обратился к веб-сервису AntiGate, API дёрнуло свой юзкейс, он отправил уведомление смартфону свободных индусов, смартфоны запустили приложение, приложение скачало капчу, индус разгадал капчу, смартфон отправил код обратно на сервер, сервер вписал вознаграждение индусу, сервер ответил нашему сайту, сайт отправил разгаданный код сайту знакомств, он вернул список девушек, сервис запросил микросервис с нейронкой на поиск соответствия, он вернул результат сайту, сайт отобразил парню список кандидаток. Это всё – большая система, состоящая из частей, выполняющих свою работу и общающихся друг с другом по определённым контрактам. Сайты написаны на PHP или Ruby, приложения на Java или ObjC, нейронка на Python, вебсокет висит на NodeJS, маршрутизаторы на C, индус вообще живой, а не спрограммированный. Это всё – объекты. И мне вообще не важно, классы это или микросхемы, клетки или компьютеры, сидит ли там живые индусы или их уже заменили на нейронку. И код я пишу также, именно моделируя объекты товаров, складов, контексты бухгалтерии и всего такого прочего. И с такой философией я с недоумением отношусь к низкоуровневым техническим определениям вроде тех, что "ООП это обязательно классы" и подобным.
ты не ответил на вопрос - можно ли говорить о ООП когдау тебя в системе один объект.

Дмитрий
30.08.2018
11:08:13
Но ведь тогда он и является системой ?

Sergey
30.08.2018
11:13:11
объект есть - системы нет?

Дмитрий
30.08.2018
11:13:37
Парадокс

Sergey
30.08.2018
11:14:06
системы объектов нет - это да. Но в моем понимании это именно то что делает ООП ООПой

когда у тебя децентализованная система объектов

а все остальное - нюансы

Дмитрий
30.08.2018
11:15:53
Вообще вопрос про один объект — это провокация изначально)) В математике из-за такой фигни понятие множества пришлось делать заново

"Включает ли множество всех объектов само себя"

Dmitry
30.08.2018
11:28:51
объект есть - системы нет?
Вопрос из разряда "Являешься ли ты участником финансовой, социальной, и политической систем, когда ты один на необитаемом острове?" Так то ты также гражданин, но только государство кончилось :)

Aleh
30.08.2018
11:31:20
Я есть государство как не говорил людовик

Dmitry
30.08.2018
11:32:39
системы объектов нет - это да. Но в моем понимании это именно то что делает ООП ООПой
Ну программирование само по себе есть создание динамических алгоритмов, моделирование процессов. Просто императивно объявить: begin var a end без каких-то других процессов можно, но есть ли от такой программы смысл...

Dmitry
30.08.2018
11:35:51
Ping-сервер, который никто не дёргает. Объект? Объект. Стоит объект Ваз-2101 у кого-то под окном пятнадцать лет и только ржавеет. Кроме химических больше ни в каких взаимодействиях не участвует. Объект? Объект. Объект есть, но самой программы нет.

Dmitry
30.08.2018
11:46:23
То есть идею что сам по себе объект не важен ты предпочитаешь игнорировать уходя в демагогию
Програ́мма (от греч. προ — пред, греч. γράμμα — запись) — термин, в переводе означающий «предписание», то есть предварительное описание предстоящих событий или действий. Данное понятие непосредственно связано с понятием алгоритм. Отсутствие внешних процессов (отсутствие программы) уже не делает такое ООП или любое П вообще П-ой.

Дмитрий
30.08.2018
11:46:31
Можно поgробовать рассказать про абстракции и что никаких объектов не существует, это лишь слой поверх битов и байтов поверх дремучей архитектуры процессоров, в которые интел запихнула даже minix

Dmitry
30.08.2018
11:52:50
Можно поgробовать рассказать про абстракции и что никаких объектов не существует, это лишь слой поверх битов и байтов поверх дремучей архитектуры процессоров, в которые интел запихнула даже minix
Ну так высокоуровневые вещи вроде объектов в программировании как раз и придумали для более человеческого абстрактного моделирования объектов из изучаемого мира, когда напрямую с низкоуровневыми регистрами и байтами ковыряться надоело.

Google
Dmitry
30.08.2018
11:54:11
Программный код есть, объектов, как и деда мороза — нет ?
Те же "абстрактные типы данных" – это как раз про придумывание своих типов вместо стандартных int и string.

Дмитрий
30.08.2018
11:55:23
Я к тому, что это всего лишь вопрос предпочтений при выборе абстракций, как только объекты перестают помогать и становятся костылём — про них можно смело забывать и переходить к другой форме описания алоритмов. Вот ооп и есть одна из таких форм

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

Sergey
30.08.2018
12:28:18
Ну да. Одна из возможных парадигм. Не более. Используйте любую, какая больше нравится.
я не вижу в ООП парадигмы, я рассматриваю ООП исключительно как модель вычислений. А как парадигма ООП ничем не отличается от старого доброго структурного программирования

Артур Евгеньевич
31.08.2018
10:13:18
Пацаны помогите я затупил. Когда я делаю insert в базу и там ошибка по причине того, что я пытался вставить значение не совпадающего с типом колонки, это же LogicException а не рантайм, верно?

Serge
31.08.2018
10:17:08
скорее InvalidArgumentException

F01134H
31.08.2018
10:18:11
InvalidArgumentType)

Артур Евгеньевич
31.08.2018
10:19:20
ну то есть лоджик, спс)

Полиморфизм
Я в последней книжке дяди боба вычитал что основное свойства ооп, которое отличает от всех остальных, это инвресия зависимостей

там он приводит примеры что полиморфизм, инкапсуляция и в других языках без ооп прекрасно достижимы

Adel
31.08.2018
10:21:04
полиморфизм и утиной типизацией... без проблем

Aleh
31.08.2018
10:21:41
ну то есть лоджик, спс)
Да разницы нет, если ты нашел ее только в момент выполнения, то это рантайм. Называть так эксепшн тупо, потому что все твои эксепшены рантайм

Артур Евгеньевич
31.08.2018
10:24:11
Инверсия зависимостей возможность которую дает полиморфизм
Там приводтися пример, что полиморфизм есть в том же С, например мы можем читать что то через STDIN и похуй кто туда пишет, т.е можем работать полиморфно с разными источниками...Ну это к тому что полиморфизм может быть а инферсии зависимостей нет

Артур Евгеньевич
31.08.2018
10:24:28
Google
Sergey
31.08.2018
10:25:33
Полиморфизм
полиморфизм это не отличительная черта ООП

Aleh
31.08.2018
10:25:54
так если я на пыхе пишу, у меня что, всё рантаймом объявлять??
все эксепшены - рантайм, называть хоть какой-то так глупо

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

Sergey
31.08.2018
10:26:37
Admin
ERROR: S client not available

Артур Евгеньевич
31.08.2018
10:26:44
Говоря про полиморфизм, имеем ввиду возможность в языке передавать разные подпрограммы подпрограммам
ммм мне кажется ты больше сейчас описал именно инверсию, т.к "возможность в языке передавать разные подпрограммы подпрограммам" подразумевает работу с каким то общим интерфейсом, а не с конкретнйо реализацией

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

Артур Евгеньевич
31.08.2018
10:28:40
я с late binding знаком только в контексте self vs static так что не могу ниче скзаать)

illiatshurotshka❄️
31.08.2018
10:29:22
Артур Евгеньевич
31.08.2018
10:31:21
UnknownDatabaseException, правда красивее можно представить например в свифте через DatabaseError.unknown
Я еще называю именно Runtime такие штуки так как рантайм исключение не относятся к контракту класса, и я не обязан как то особенно их обрабатывать и описывать во всех сигнатурах методов, использующих мой

Артур Евгеньевич
31.08.2018
10:33:10
в пхп в принципе исключения не являются частью контракта метода))))

illiatshurotshka❄️
31.08.2018
10:33:22
ну тогда лучше дать значимое название

Артур Евгеньевич
31.08.2018
10:33:23
но разрабы в док блоках прописывают

F01134H
31.08.2018
10:33:56
ты путаешь контракт и сигнатуру

Артур Евгеньевич
31.08.2018
10:34:22
а RuntimeException и наследники не требуют такого описания, т.к в идеале ты ен знаешь откуда они могут выскочить

Google
Артур Евгеньевич
31.08.2018
10:36:10
ты путаешь контракт и сигнатуру
сигнатура же часть контракта?

F01134H
31.08.2018
10:36:16
Хотя да, я путаю

Aleh
31.08.2018
10:36:20
благодаря наследованию?)
Тем что стало возможно передавать методы в объектах

Артур Евгеньевич
31.08.2018
10:36:33
...
шо? даже шторм не подсвечивает и не требует его описывать во @throws

Aleh
31.08.2018
10:37:34
?
Раньше передать функцию было прям очень неудобно стремно и ваще атата, передавая объекты мы передаем еще и поведение

Неизбежно передаем

это что-то сродни тому, чтобы сделать функцию first-class citizen короч

Aleh
31.08.2018
10:46:58
да

Sergey
31.08.2018
10:47:05
не ну в целом да

но в линуксе до сих пор так скажем и все довольны)

таблички указателей на функции)

Aleh
31.08.2018
10:47:29
да вопросов нет, у них задачи скажем так чуть другие)

как DHH сказал “мы не коллеги с Торвальдсом"

Миша
31.08.2018
12:11:39
Как вы относитесь к названию функции, где фигурирует 'By'? Например allOrdersByUser(User $user) У нас нету строго правила по этому поводу и люди просто иногда пишут by, а иногда не пишут. Мне кажется странным дублировать User и в названии, и во входных параметрах. То есть и так понятно, что по юзеру.

Страница 731 из 785