Сохранен 29
https://2ch.hk/pr/res/887275.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Непосильная задача для программача

 Аноним 03/12/16 Суб 22:43:32 #1 №887275 
14807942121080.jpg
Программач, покажи пожалуйста пример годной ООП архитектуры для, ну скажем, приложения, которое должно получать ммм ну пусть даже погоду с сервера, с реализацией на Java. НО! Это должен быть код и архитектура, к которому не подъебешся, то есть чтобы глядя на него никто не мог сказать что "это говнокод", "это не ООП", "это неудобно для сопровождения" и прочее.
Зачем это нужно? Да вот просто я столкнулся на просторах интернета с тем, что в принципе нет никаких стандартов того, как должно выглядеть хорошее приложение, любое приложение обосрут. Более того, некоторые программисты имеют свойство противоречить друг другу в вопросах того , что является хорошим примером ООП. Абсолютно непонятно на что ориентироваться. Почему непосильная задача для программача? Да потому что я также ни разу не встречал здесь такого, чтобы чей-либо код назвали хорошим. Вот мне и интересно, каким видит хороший или даже идеальный код программач.
Аноним 03/12/16 Суб 23:11:02 #2 №887287 
>Java
>ООП
Нет пути. В Java оче сложно сделать чтобы было ООП.
Аноним 03/12/16 Суб 23:12:26 #3 №887289 
>>887287
Но Java и есть ООП. Это первая глава почти в любой книге про Java.
Аноним 03/12/16 Суб 23:21:04 #4 №887292 
>>887289
ООП - это архитектура, состоящая из полноценных и самодостаточных объектов, общающихся через отправку и получение сообщений. Всё состояние в программе инкапсулировано внутри объектов, объекты не обязаны предоставлять доступ к своему состоянию.
Java - это язык, позволяющий для некоторых типов переменных определять дополнительную структуру. Общение элементов происходит через вызовы методов, каждый объект рутинно вывешивает своё состояние наружу через геттеры, которые не просто можно - нужно вызывать.
Аноним 03/12/16 Суб 23:51:32 #5 №887309 
>>887292
а вызов методов по твоему не общение объектов?
Аноним 03/12/16 Суб 23:56:08 #6 №887310 
ООП - ничего общего к архитектуре не имеет, это подход.
Интуитивно понятный код - уже неплохо, код, который при этом еще и можно комфортно поддерживать и допиливать - вообще супер. Главное, чтобы код приносил пользу.
Сам почему-то всегда замечал, чем идеальнее внутри - тем с большей вероятностью продукт не приносит пользы ( = никому не нужен) и наоборот. Особенно ,если это какой-то стартап.
Аноним 04/12/16 Вск 00:19:02 #7 №887334 
>>887275 (OP)
Для твоей задачи вообще никаких ооп не нужно, без задней мысли пишешь функцию/метод которая дергает апи, и возвращает результат в виде какой-нибудь структурки.

>>887292
Что там твой изобретатель ООП подразумевал под этим тремином - никого уже не ебет. Де-факто наиболее распространенное определение - это как раз джава/с++ стайл, как бы таким как ты от него не пекло.

>>887310

"Я раньше поражался тому, как уродливы изнутри «взлетевшие» проекты. Сейчас я знаю: красивые проекты не взлетают, потому что они не успевают взлететь. Пока инженеры в белых халатах прикручивают красивый двигатель к идеальному крылу, бригада взлохмаченных придурков во главе с безумным авантюристом пролетает над ними на конструкции из микроавтобуса, забора и двух промышленных фенов, навстречу второму туру инвестиций. Авантюрист любезно раздаёт восторженным пассажирам талоны и бумажные пакетики."
Аноним 04/12/16 Вск 01:04:31 #8 №887351 
>>887309
Это может быть "общением объектов". Но для вызова метода нужен экземпляр получателя, а для отправки сообщения - нет. Улавливаешь или ещё больше разжевать?
Аноним 04/12/16 Вск 01:11:19 #9 №887353 
>>887351
Разжуй.
мимо другой анон
Аноним 04/12/16 Вск 01:22:41 #10 №887355 
>>887309
Само существование "метода" организует утечку прав объекта на управление своим состоянием. В этом плане даже objective-с больше ооп-язык, чем java.
Аноним 04/12/16 Вск 01:23:00 #11 №887356 
>>887353
Отправка сообщения безусловно требует только наличие среды для распространения сообщений, но любое сообщение может быть предназначено и для одного адресата, и для нескольких или вообще ни для кого, в зависимости от конфигурации или текущего состояния программы.
Причем отсутствие адресата не обязано быть проблемой отправителя, если отправитель не ожидает реакции адресата.

При вызове метода отсутствие отправителя приводит к NullPointerException, например, и из-за этого отсутствие адресатов всегда является проблемой отправителей.
Аноним 04/12/16 Вск 01:24:14 #12 №887357 
>>887356
>При вызове метода отсутствие адресата
Самопочин
Аноним 04/12/16 Вск 01:33:36 #13 №887361 
>>887334
> джава/с++ стайл
А ничего, что у это два разных оопа?
Аноним 04/12/16 Вск 02:00:24 #14 №887368 
>>887351
>Улавливаешь или ещё больше разжевать?
Ага.
>Это может быть "общением объектов". Но для вызова метода нужен экземпляр получателя
Двое друзей беседуют
>а для отправки сообщения - нет.
Долбоеб беседует с пустотой
Аноним 04/12/16 Вск 02:04:40 #15 №887370 
>>887368
> Двое друзей беседуют
Один деспот командует другим.
> Долбоеб беседует с пустотой
И мешает жить всем остальным.
> Ага.
Походу нет.
Аноним 04/12/16 Вск 02:06:14 #16 №887371 
>>887370
Не про фасад ли ты случаем?
Аноним 04/12/16 Вск 02:11:07 #17 №887375 
>>887356
Сообщения или методы - это сорта говна.
По сути одно и то же, различается реализацией.

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

Для сообщений ситуация обратная: никто никого не знает, но все могут подписаться на любого. Живешь как шалава: любой может воспользоваться. Никакого контроля.
Проблему ограничения доступа решают... те же менторы.

Т.е. в любом случае проблем с сообщениями нет.
Только в одном случае ментор обязателен и все безопасно по дефолту, а в другом ничего не безопасно, зато ментор по желанию.
Философия жабы - первый подход: он более строг и безопасен.
Философия сишек - второй подход: он более свободен, зато как всегда, по традиции сишек, небезопасен, и легко наворотить делов.
Аноним 04/12/16 Вск 02:14:08 #18 №887376 
>>887370
Зачем слать сообщения тому, кого не существует?
Опять со своим выдуманным другом Славиком разговариваешь?

Методы более логичны: ты обращаешься только к тому, кто существует.
Аноним 04/12/16 Вск 14:57:27 #19 №887678 
оопе - эта smalltalk
Аноним 04/12/16 Вск 18:00:18 #20 №887823 
Ну вот собственно очередное подтверждение. Вместо того чтобы искать решение, программач начинает маневрировать и самоутверждаться - "Ваше ООП это не ООП", "Ваш ЯП не ЯП", "Давайте устроим еще один ненужный языкосрач".
Аноним 04/12/16 Вск 19:11:01 #21 №887890 
>>887376
Потому что если твоему объекту надо нарисовать прямоугольник в центре экрана, то он запрашивает размеры экрана. В случае с сообщениями, ответственного за размер экрана объекта может вообще не быть. Или вместо него кто-то другой может вернуть размер листа принтера. Или при первом запросе разрешения экрана может ответить один объект, а при втором - другой, потому что его подменили в рантайме без рекомпиляции.
>любой может воспользоваться
Поговорить. Это только в ваших жабах и крестах могут воспользоваться.
Аноним 04/12/16 Вск 23:27:29 #22 №888076 
>>887361
И где они там разные? Те же самые классы-хуясы, полиморфизм-наследование-инкапсуляция.
Аноним 04/12/16 Вск 23:33:29 #23 №888084 
>>887823
А чего ты хотел-то? Так как даже понятие ООП неоднозначно определено.

Ну и конечно никто нахуй тут не заинтересован за тебя писать твой курсач или что там это у тебя про скачивание данных. Так что на код можешь не рассчитывать.
Аноним 05/12/16 Пнд 00:50:57 #24 №888133 
>>887275 (OP)
> НО! Это должен быть код и архитектура, к которому не подъебешся

Так не бывает. Архитектура не формализованное понятие, которое каждый дебил понимает по своему. Ты пытаешься технически решить проблему, которая решается фразой - "Пшел нахуй пес".
Аноним 05/12/16 Пнд 01:43:47 #25 №888157 
>>887890
Я и говорю, хуета какая-то получается: хочешь узнать размер экрана, а не у кого, или какой-то левый тролль тебе присылает вместо размера экрана размер листа принтера, а ты его принимаешь за размер экрана и получаешь пиздец.
В жабах хоть какие-то механизмы безопасности, сишка же пиздец, голой жопой светит, любой мимокрокодил может писать/читать что угодно, без спросу, и фиг ты что сделаешь с этим.
Аноним 05/12/16 Пнд 10:00:18 #26 №888255 
>>888157
> а что если я хочу узнать смещение поля относительно начала объекта
Батенька, если вы выбрали парадигму, которая не удовлетворяет вашим хотелкам, то это не значит, что ошибка в парадигме. Ошибка в ваших хотелках, вы организовали код так, что он приходится менять парадигму. В вашем примере, нужно писать так, чтобы вам не нужен был размер экрана.
Аноним 05/12/16 Пнд 11:12:26 #27 №888283 
>>887356
Очень неплохо описан message queue. Добавь триггер ивентов по дате и получишь reactive programming. К ООП-у описание никакого отношения не имеет.
Аноним 05/12/16 Пнд 13:45:49 #28 №888381 
>>888157
>какой-то левый тролль тебе присылает вместо размера экрана размер листа принтера, а ты его принимаешь за размер экрана и получаешь пиздец
Нет, получаешь пиздец ты не потому, что тебе прислали не то, а потому, что ты долбоёб. Во время работы программы экран заменили на принтер - теперь тебе надо печатать на принтер. Ты же нарушил все абстракции и закономерно получил хуйню. Страдай, что тут ещё можно сказать.

А вообще, ты не поймёшь, потому что blub programmer эффект.
Аноним 05/12/16 Пнд 14:14:19 #29 №888401 
>>888255
То размер экрана нужен, то внезапно не нужен... Пожалуйста, ты уж определись там!
Пацаны жалуются, нихуя ж не понятно что делать.
comments powered by Disqus