[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: interface
Страницы: 1, 2, 3
Ron
Цитата (twin @ 8.06.2016 - 19:11)
Так вот именно. А для чего он тогда нужен, если все равно это остается на совести разраба?

Очевидно основная задача - раскутка данного форума. Для этого интерфейсы и содавались. А остальное так, для прикрытия.
chee
twin, тебе не нужно использовать интерфейсы, у тебя нету такой сложности, для которой они нужны. Тебе уже выше описали, когда количество строк идёт на миллионы, тогда уже нужно применять интерфейсы, как минимум для того чтобы систематизировать сам код.

Я повторяюсь, но скажу еще раз. Ты остался там, в 2007 году, вместе с Медведевым laugh.gif . Пока ты не сменишь работодателя и не попадешь под влияние серьезных и тяжелых (в плане бизнесс-логики) проектов (а не интернет-магазинов с кучей сателлитов) то все наши споры бесполезны. Ты в болоте, которое сам и создал, можешь оставаться там, но вот болотная вонь, которая исходит от тебя в твоих темах - делает из тебя клоуна.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Dezigo
Напоминает формат.
Зачем мне использовать инструменты для починки машины которые лежат в комплекте, возьму как я примотаю скотч, как то держится. Ну вот и классно.

Зачем Вам ООП, пишите на процедурке, там нету всяких 'дурацких interfaces', и не надо делать нагрузку на сервер, а высоко нагруженые проекты оставьте другим дядям, они об этом позаботятся.
Arh
Цитата
Напоминает формат.

Нет, напоминает такой формат:
Цитата
Американский форум: задал вопрос - получил ответ.
Израильский форум: задал вопрос - получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты мудак.


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (chee @ 9.06.2016 - 06:46)
Пока ты не сменишь работодателя и не попадешь под влияние серьезных и тяжелых (в плане бизнесс-логики) проектов (а не интернет-магазинов с кучей сателлитов) то все наши споры бесполезны

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

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

Тут ведь как. Если проект закончен, то не нужно ничего в него добавлять. И интерфейс - на корове седло. А если проект такой, где нужно часто добавлять однотипные классы, то их функционал уже наизусть знаешь, на кой еще интерфейсы?

Если большая текучка кадров, то интерфейс не поможет, один фиг нужна подробная документация. Что может дать название метода, если не знаешь, что именно от него требуется? А если есть документация, тесты и ответственность разработчика, то интерфейс - только обуза. Естественно, если персонал предполагается "набрали по объявлению", то там не только интерфейсы нужны. Там вообще глаз да глаз.

Но это ИМХО, я в сотый раз говорю. Не умеете писать код без плетки и намордника, конечно они будут полезны. И не хочу я спорить. Для себя я давно все решил. Ставка на минимальное потребление ресурсов дает мне офигенный профит. У вас профит в другом - минимизация ответственности.

И не нужно тут в очередной раз строить из себя героев. Отстал я. biggrin.gif Это от ваших рассуждений воняет болотом, а не от моих. Я каждый инструмент, каждый алгоритм выверяю со всех сторон, прежде чем применить. А не щеголяю в штанах с мотней, раз это на пике моды. Как ты со своим композером, расшаренными сервисами и вот интерфейсами теперь.

Цитата (Dezigo @ 9.06.2016 - 07:05)
Напоминает формат.
Зачем мне использовать инструменты для починки машины которые лежат в комплекте, возьму как я примотаю скотч, как то держится. Ну вот и классно.
Да скотч то как раз больше на интерфейс и похож. Склеил проект, а чтобы не расползался по швам - намотали синей изоленты интерфейсов. Клей давно высох, все классно держится, а лохмотья так и болтаются.

И хватит уже. Давно все понятно. Нет ничего итересного в них, кроме констант. На том и закончим. Каждый волен писать так, как ему хочется, я вовсе не просил проводить тут ликбез по контрактам. Загадили тему.

Отвечу только по существу. Не пытайтесь меня задеть. Надоело.

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

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

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

user posted image
DedMorozzz
Приведу пример из практики. Работая в достаточно крупной компании, более тыщи человек, работая над 1м проектом (платформа). Там использовалось много разных систем кеширования
И тут в какой-то момент я вижу, что у мемкеша, редиса и ещё 1й системы есть разные методы для сохранения/выборки. Были write/set/add, fetch/get/..., delete/remove..

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

Недостаточное удобство по твоему?

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Invis1ble
Цитата (Arh @ 9.06.2016 - 11:21)
Русский форум: задал вопрос и потом долго выслушиваешь какой ты мудак.

Здесь скорее: "долго объясняешь всем, что они мудаки, сделав вид, что задал вопрос".

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Another Reality
Действительно, использование абстрактного класса вместо интерфейса вполне логично и оправдано, и казалось бы, чего дергаться ? Но есть одна разница: при использовании абстрактного класса(ов) мы получаем потомка который имеет жесткое отношение к своему древу классов, интерфейс же освобождает от такого. К тому же под разные нужды мы можем реализовать несколько интерфейсов, использовать их в качестве "ключа доступа" к тем или иным методам, тогда как множественного наследования нет.
Важная деталь: все это имеет смысл при высоком уровне абстракции.

В качестве маленького примера:

Некая страничка показывает нам информацию из базы данных.
Вот только сейчас мы работаем с MySQL, через 5 минут - с Redis, завтра с PostgreSQL, через 36 часов 17 минут уже будет MSSQL Server, а еще чуть позже читать из файла.

В итоге разные объекты, работающие каждый со своей базой реализуют один и тот же интерфейс. Все красиво, приятно, система не понимает что ей подсунули, Она просто вызывает методы которые перечисленые в интерфейсе.

Но я думаю, что это и так всем понятно, а топик просто для веселья wink.gif
twin
Цитата (DedMorozzz @ 9.06.2016 - 11:40)
Недостаточное удобство по твоему?
С удобством для разработчика я и не спорил. Я про то, что приходится из двух зол выбирать меньшее. Для себя. smile.gif Я об "удобстве" для сервера пекусь.

Вот скажи, ты допустим садишься внедрять в систему Redis.
Цитата (DedMorozzz @ 9.06.2016 - 11:40)
Я открываю и нтерфейс и уже понимаю какие методы использовать, что бы достить результата, а не бегать по коду и искать как же тут сохранение кеша реализовано, как метод называется

Откуда тебе известно, что есть уже мемкэш и тем более интерфейс? Как узнать, что нужно именно от него имплементировать класс редиса?

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

Цитата (Another Reality @ 9.06.2016 - 18:54)
В итоге разные объекты, работающие каждый со своей базой реализуют один и тот же интерфейс.

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

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

Это такая морковка на самом деле для ленивых. Что бы заставить раздолбаев хоть как то систематизировать код, пообещав печеньку в виде осознания себя эдаким навароченным ООПэшником.

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

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

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

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

user posted image
Arh
Цитата
Основное предназначение (контракт) опускаем сразу

И сразу закрываем тему.

Потому что это просто тип данных, контракт.

Можно быть дисциплинированным и писать так
function a ($data) {}
function b ($data) {}
function c ($data) {}


А можно писать так
function a (int $data) {}
function b (array $data) {}
function c (ClassName $data) {}


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (Arh @ 10.06.2016 - 06:51)
И сразу закрываем тему.

Ну почему сразу.

Вот допустим идея использовать его как контейнер для констант (конфигуратор) у меня возникла в процессе обсуждения. Я даже знаю, где мне это применить теперь. smile.gif

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

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

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

user posted image
Arh
twin
Чёто мне кажется это из той оперы когда узнаешь о новом патерне и пытаешься придумать где его использовать =)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
DedMorozzz
Цитата (twin @ 10.06.2016 - 02:06)
С удобством для разработчика я и не спорил. Я про то, что приходится из двух зол выбирать меньшее. Для себя. smile.gif Я об "удобстве" для сервера пекусь.

А, ну так о чём речь. Для сервера удобнее всё в бинарном виде сразу. Что бы не переводить в машиный код.
Есть повод задуматься об улучшении своего кода, что бы снять нагрузку с сервера и сразу писать в бинарном виде!

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
kaww
Цитата (twin @ 10.06.2016 - 06:06)
Я об "удобстве" для сервера пекусь.

Акселераторы? не, не слышал.
Тем более что начиная с 5.5.0 opcache уже включен в php.
twin
DedMorozzz
Ну почему всегда, когда кончаются аргументы, люди впадают в крайности. Причем тут бинарный код? Ну принцип у меня такой, писать по максимуму оптимально. Я же не заставляю ни кого. Для вас вон kaww прослышал про акселераторы. Они как раз для вас придуманы.

Мне не нравится наворотить бездумно код, потом кидаться разгребать это акселераторами. Мне нравится, когда акселератор, это НЗ на случай какого-нибудь хабра-эфекта. smile.gif

Да и вообще, успокойтесь уже. А то Invis1ble имеет повод обвинить меня в провокации.

Согласен я, хорошие интерфейсы, хорошие. Полезные и крутые. Только успокойтесь. smile.gif


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

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

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

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

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