[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: interface
Страницы: 1, 2, 3
TMake
Цитата (twin @ 7.06.2016 - 18:39)
Моя точка зрения на кодинг - лучше день потерять, потом за пять минут долететь. Да, может и методом тыка. Да, может времени на чтение или написание доки уйдет на пару минут больше, чем на интерфейс. Но горы бесполезного кода, который годами алчно молотит в проекте, больно бъет по моему самолюбию. Я что, совсем кретин, что не могу писать без плетки? Почему за мою невнимательность и лень расплачивается потребитель моих услуг?

да зачем тебе эти интерфейсы? пили треш в одиночку. Без плетки тебе к сожалению не разобрать и не понять зачем нужно тратить время на написание интерфейсов.
Цитата (twin @ 7.06.2016 - 18:55)
А тесты на что?

Интерфейсы для потомков, что бы имлементированый класс не смог нагадить. А тесты не для всех указ.
Dezigo
Цитата (twin @ 7.06.2016 - 14:55)
Цитата (Dezigo @ 7.06.2016 - 14:45)
не возможно предсказать, что твой класс которые ты добавил потом не сломается из за отсутствия метода

А тесты на что?

как бы не всегда есть тэсты, а если есть то они точно не всё покрывают.
Много людей работало на проектом, новые кто приходят не знают систему всю, да её и не кто не знает полностю, те кто 10 лет работал только знают.
Типичная ситуация у нас на работе, кто то добавил исправил баг в одном месте а в другом сломал.
он даже не мог представить что можно сделать по другому, и конечно теста нету.
А ошибка - метод не наёден, это просто стыд., что интерфейс решает.
Arh
twin
Цитата
на сколько бесполезная и даже вредная затея.

По сути любой лишний код вредная затея с точки зрения производительности.

Я по другому делаю, пишу без интерфейсов, а когда появляется еще одна реализация класса, тогда уж делаю интерфейс.
Самый простой пример.
Был класс Cache, он писал данные в файлы, понадобился класс MemCache с таким же api.
Из Cache сделал интерфейс, написал FileCache (бывший Cache), написал MemCache.
Приложение как использовала Cache, так и использует, только уже с той реализацией, какую я туда подсуну.

class News {
public funtion __construct (Cache $Cache) {}
}


new News($MemCache)


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (sg.com @ 7.06.2016 - 17:37)
Интерфейс же решает проблему таким образом, что ни одна издержка не будет упущена, при этом ни кто не вникал в суть бухгалтерии.
Напомню еще раз про юнит-тесты. По сути это тоже самое в плане проверки наличия методов, только запускается один раз, при разработке. Интерфейс же остается в коде навсегда, единожды выполнив полезную функцию. И запускается при каждом вызове, дергая лишний файл.

Вот если разработка ведется по принципу TDD, то смысл интерфейса вообще пропадает.

Цитата (chee @ 7.06.2016 - 18:48)
Вред интерфейсы могут приносить только неквалифицированным и некомпетентным разработчикам.
Вред они наносят не разработчикам, а потребителю проекта. Если есть резерв по ресурсу, допустим это какая-нибудь визитка для узкой аудитории, то конечно наплевать. А если сервера молотят на пределе от нагрузки, приходится задумываться о таких нюансах.

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

Цитата (TMake @ 7.06.2016 - 18:52)
Интерфейсы для потомков, что бы имлементированый класс не смог нагадить. А тесты не для всех указ.
Ну так я о том и говорю. Если разработчики ленивы и некомпетентны, чтобы читать доки и использовать тесты, а так же если есть большая вероятность модификации кода в дальнейшем таковыми, то интерфейс может оказаться полезным. Это контракт, не более, как сказал chee. Нарушение контракта ведет к наказанию. Интерфейс, это унтерофицерская вдова. Но за эту некомпетентность разработчиков приходится расплачиваться заказчику.

Цитата (Dezigo @ 7.06.2016 - 18:59)
как бы не всегда есть тэсты, а если есть то они точно не всё покрывают.
Если так рассуждать, то можно и наоборот:
Цитата
как бы не всегда есть интерфейсы, а если есть, то они точно не все покрывают
В чем разница? И то и другое нужно писать до. И еще, а я вот возьму и не буду имплементировать свой клас с интерфейсом. Не всегда объект передается аргументм с проверкой. И что?

Тут все равно все зависит от самодисциплины и квалификации. Интерфейсы, это защита от уже совсем дурака.

Цитата (Arh @ 7.06.2016 - 19:20)
По сути любой лишний код вредная затея с точки зрения производительности.
Все верно. Потому я и не приемлю лишнего кода, стараюсь делать все оптимально в первую очередь с точки зрения потребления. А думать за дурака, это увольте.

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

Вобщем понятно. Единственное полезное практическое применение интерфейсов, это конфигуратор для группы классов с помощью констант. С этим конечно легко справилось бы наследование, но класс без методов как то не ахти на мой взгляд. А интерфейс вроде как уместнее.

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

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

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

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

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