KotZhilkina #981 21 февраля 2013 не logined, а loggedinразницы нет десу~~~~синтаксической нет, а грамматическая есть Публикация отключена Поделиться сообщением Ссылка на сообщение
firelord #982 21 февраля 2013 (изменено) в чем смысл использования такого большого количества статических методов? Изменено 21 февраля 2013 пользователем firelord Поделиться сообщением Ссылка на сообщение
DIMAN123456789 #983 21 февраля 2013 в чем смысл использования такого большого количества статических методов?нет смысла, это признак хуевости программиста, так сказать — быдлокод. Поделиться сообщением Ссылка на сообщение
Mr.Blonde #984 21 февраля 2013 А я люблю статические методы. Часто они пиздаче обычных методов. Когда пишешь обычные классы+ методы, то как правило в класс добавляется состояние, и класс становится statefull. В большинстве случаев это усложнение вообще не оправдано, и лучше заменить эту порожнину статик методами. У меня есть товарищи, которые на все операции любят придумывать различные классы с состоянием, а потом мучаются, создавая объекты и отслеживая ссылки на них, используют инжект зависимостей там, где можно просто передать аргумент в метод. В итоге 5 функций распухают до нескольких классов с неочевидным жизненным циклом. А еще много любителей из всего выделять интерфейсы, даже если реализация одна и больше не планируется. Подводя итог, хочу отметить, что категоричные утверждения о вреде статик методов не имеют под собой основания. Как проще поступить в конкретной ситуации - так и следует поступать. В данном случае набор статик методов в классе типа CompanyDao вполне приемлем, правда сигнатуры я бы поменял на более информативные, например GetById(id), DeleteById(id). Не обзывать метод наподобие GetCompanyById, потому что и так ясно, что этот класс содержит методы для работы с сущностью "компания". http://ru.iccup.com/dota/details/1295953.html ИДИТЕ НАХУЙ С ТАКМИ ГОНДАРАМИ СВЕН ТП СВЕН ПУШИТ СВЕН ХЕКС СВЕН ДАБЛКИЛЛ СВЕН 7ОО КРИПОВ Поделиться сообщением Ссылка на сообщение
mos-tal #985 21 февраля 2013 так мы тут обсуждаем как ты любишь или как правильно? Поделиться сообщением Ссылка на сообщение
DIMAN123456789 #986 21 февраля 2013 А я люблю статические методы. Часто они пиздаче обычных методов. Когда пишешь обычные классы+ методы, то как правило в класс добавляется состояние, и класс становится statefull. В большинстве случаев это усложнение вообще не оправдано, и лучше заменить эту порожнину статик методами. У меня есть товарищи, которые на все операции любят придумывать различные классы с состоянием, а потом мучаются, создавая объекты и отслеживая ссылки на них, используют инжект зависимостей там, где можно просто передать аргумент в метод. В итоге 5 функций распухают до нескольких классов с неочевидным жизненным циклом. А еще много любителей из всего выделять интерфейсы, даже если реализация одна и больше не планируется. Подводя итог, хочу отметить, что категоричные утверждения о вреде статик методов не имеют под собой основания. Как проще поступить в конкретной ситуации - так и следует поступать. В данном случае набор статик методов в классе типа CompanyDao вполне приемлем, правда сигнатуры я бы поменял на более информативные, например GetById(id), DeleteById(id). Не обзывать метод наподобие GetCompanyById, потому что и так ясно, что этот класс содержит методы для работы с сущностью "компания".Если мыслить со стороны что "ничего никогда не будет расширяться" можно охуенно напороться на нехуёвые грабли. К утилитным классам вопросов нет, но многие другие вещи, особенно такие как получение данных и бизнес логику делать статическими по меньшей мере недальновидно. Все эти статические методы хуй протестируешь, а код превращается в лапшу. Поделиться сообщением Ссылка на сообщение
SPYHunter #987 21 февраля 2013 так мы тут обсуждаем как ты любишь или как правильно?правильно так как ты любишь, или как любит твоя фирма Если мыслить со стороны что "ничего никогда не будет расширяться" можно охуенно напороться на нехуёвые грабли. К утилитным классам вопросов нет, но многие другие вещи, особенно такие как получение данных и бизнес логику делать статическими по меньшей мере недальновидно. Все эти статические методы хуй протестируешь, а код превращается в лапшу.у меня метод работы с базой не статичный, а как раз таки объекти раньше я создавал сингелтоном все эти объекты, таскал их в функции и методы (ебанный пхп блять global $Company) потом решил - а нахуй оно надо, когда можно просто делать статику местами? https://insave.hostinghttps://horhul.me Поделиться сообщением Ссылка на сообщение
Mr.Blonde #988 21 февраля 2013 так мы тут обсуждаем как ты любишь или как правильно?Так как я люблю и есть правильно. велкам. http://ru.iccup.com/dota/details/1295953.html ИДИТЕ НАХУЙ С ТАКМИ ГОНДАРАМИ СВЕН ТП СВЕН ПУШИТ СВЕН ХЕКС СВЕН ДАБЛКИЛЛ СВЕН 7ОО КРИПОВ Поделиться сообщением Ссылка на сообщение
rubish #989 21 февраля 2013 А я люблю статические методы. Часто они пиздаче обычных методов. Когда пишешь обычные классы+ методы, то как правило в класс добавляется состояние, и класс становится statefull. В большинстве случаев это усложнение вообще не оправдано, и лучше заменить эту порожнину статик методами. У меня есть товарищи, которые на все операции любят придумывать различные классы с состоянием, а потом мучаются, создавая объекты и отслеживая ссылки на них, используют инжект зависимостей там, где можно просто передать аргумент в метод. В итоге 5 функций распухают до нескольких классов с неочевидным жизненным циклом. А еще много любителей из всего выделять интерфейсы, даже если реализация одна и больше не планируется. Подводя итог, хочу отметить, что категоричные утверждения о вреде статик методов не имеют под собой основания. Как проще поступить в конкретной ситуации - так и следует поступать. В данном случае набор статик методов в классе типа CompanyDao вполне приемлем, правда сигнатуры я бы поменял на более информативные, например GetById(id), DeleteById(id). Не обзывать метод наподобие GetCompanyById, потому что и так ясно, что этот класс содержит методы для работы с сущностью "компания".не прав просто во всём. такие вот классы со статическими методами делают приложение вообще не модифицируемым. если вдруг придется поменять хранилище - то придется переписывать всю программу или же переписывать этот статический репозиторий. если же использовать реализацию интерфейса - то придется просто написать ещё одну реализацию и в конфиге IoC поменять конеретную реализацию этого интерфейса на новую Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
SPYHunter #990 21 февраля 2013 Кто говорит, что именно статические методы отвечают за хранение?У меня они всего лишь абстрагированный слой над классом отвечающим за бд. https://insave.hostinghttps://horhul.me Поделиться сообщением Ссылка на сообщение
rubish #991 21 февраля 2013 Кто говорит, что именно статические методы отвечают за хранение?У меня они всего лишь абстрагированный слой над классом отвечающим за бд.такое впечатление, что ты пишешь слова, значения которых не понимаешь. какой же он абстрагированный, если он тупо завязан на контекст. где ты его вообще использовать собрался? Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Mr.Blonde #992 22 февраля 2013 А я люблю статические методы. Часто они пиздаче обычных методов. Когда пишешь обычные классы+ методы, то как правило в класс добавляется состояние, и класс становится statefull. В большинстве случаев это усложнение вообще не оправдано, и лучше заменить эту порожнину статик методами. У меня есть товарищи, которые на все операции любят придумывать различные классы с состоянием, а потом мучаются, создавая объекты и отслеживая ссылки на них, используют инжект зависимостей там, где можно просто передать аргумент в метод. В итоге 5 функций распухают до нескольких классов с неочевидным жизненным циклом. А еще много любителей из всего выделять интерфейсы, даже если реализация одна и больше не планируется. Подводя итог, хочу отметить, что категоричные утверждения о вреде статик методов не имеют под собой основания. Как проще поступить в конкретной ситуации - так и следует поступать. В данном случае набор статик методов в классе типа CompanyDao вполне приемлем, правда сигнатуры я бы поменял на более информативные, например GetById(id), DeleteById(id). Не обзывать метод наподобие GetCompanyById, потому что и так ясно, что этот класс содержит методы для работы с сущностью "компания".не прав просто во всём. такие вот классы со статическими методами делают приложение вообще не модифицируемым. если вдруг придется поменять хранилище - то придется переписывать всю программу или же переписывать этот статический репозиторий. если же использовать реализацию интерфейса - то придется просто написать ещё одну реализацию и в конфиге IoC поменять конеретную реализацию этого интерфейса на новуюты как год назад не умел читать, так и сейчас не научился.ещё раз - в 90% случаев никому и никогда не понадобится менять единственную реализацию. но поборники "правильного пути" продолжают сочинять абстракции и выделять никому не нужные интерфейсы.естественно, если сразу видно, что в каком-то месте будет не одна имплементация, то надо выделять интерфейс и делать инжект через конфиг.а по дефолту надо всё делать максимально просто и понятно. лишние интерфейсы и классы - это лишние объекты в мозгу при чтении исходного кода. http://ru.iccup.com/dota/details/1295953.html ИДИТЕ НАХУЙ С ТАКМИ ГОНДАРАМИ СВЕН ТП СВЕН ПУШИТ СВЕН ХЕКС СВЕН ДАБЛКИЛЛ СВЕН 7ОО КРИПОВ Поделиться сообщением Ссылка на сообщение
rubish #993 22 февраля 2013 ты как год назад не умел читать, так и сейчас не научился.ещё раз - в 90% случаев никому и никогда не понадобится менять единственную реализацию. но поборники "правильного пути" продолжают сочинять абстракции и выделять никому не нужные интерфейсы.естественно, если сразу видно, что в каком-то месте будет не одна имплементация, то надо выделять интерфейс и делать инжект через конфиг.а по дефолту надо всё делать максимально просто и понятно. лишние интерфейсы и классы - это лишние объекты в мозгу при чтении исходного кода.ну если ты делаешь хелло ворлд или лабораторную работу в универ - то может быть и стоит, однако если это нормальное приложение - то точно нет. ты эту хуйню статическую даже юнит тестами не покроешь. да и логику, которая использует эту хуйню Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
KotZhilkina #994 22 февраля 2013 вы тут все сектанты какие-то е-мое Публикация отключена Поделиться сообщением Ссылка на сообщение
Mr.Blonde #995 22 февраля 2013 ты как год назад не умел читать, так и сейчас не научился.ещё раз - в 90% случаев никому и никогда не понадобится менять единственную реализацию. но поборники "правильного пути" продолжают сочинять абстракции и выделять никому не нужные интерфейсы.естественно, если сразу видно, что в каком-то месте будет не одна имплементация, то надо выделять интерфейс и делать инжект через конфиг.а по дефолту надо всё делать максимально просто и понятно. лишние интерфейсы и классы - это лишние объекты в мозгу при чтении исходного кода.ну если ты делаешь хелло ворлд или лабораторную работу в универ - то может быть и стоит, однако если это нормальное приложение - то точно нет. ты эту хуйню статическую даже юнит тестами не покроешь. да и логику, которая использует эту хуйнюхахаха, ты пиздец ))) ООП головного мозга. ну ничего, это проходит со временем.бтв, статическая хуйня как раз прекрасно покрывается юнит-тестами, в отличие от интерфейсной хуйни, которую надо мокать http://ru.iccup.com/dota/details/1295953.html ИДИТЕ НАХУЙ С ТАКМИ ГОНДАРАМИ СВЕН ТП СВЕН ПУШИТ СВЕН ХЕКС СВЕН ДАБЛКИЛЛ СВЕН 7ОО КРИПОВ Поделиться сообщением Ссылка на сообщение
rubish #996 22 февраля 2013 хахаха, ты пиздец ))) ООП головного мозга. ну ничего, это проходит со временем.бтв, статическая хуйня как раз прекрасно покрывается юнит-тестами, в отличие от интерфейсной хуйни, которую надо мокатькак ты базу замокаешь в своем статическом методе, дебил?естественно контекст должен мокаться, т.к. его поведение непредсказуемо Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Mr.Blonde #997 22 февраля 2013 хахаха, ты пиздец ))) ООП головного мозга. ну ничего, это проходит со временем.бтв, статическая хуйня как раз прекрасно покрывается юнит-тестами, в отличие от интерфейсной хуйни, которую надо мокатькак ты базу замокаешь в своем статическом методе, дебил?естественно контекст должен мокаться, т.к. его поведение непредсказуемоебать ты блядь вообще что ли неадекват ?какую базу мокать ? ты че несешь ? хахаха пиздец просто вот методstatic int someFunc(SomeArgument arg) {} вот юнит-тест к немуAssert.That(5 == someFunc(argToHave5)); http://ru.iccup.com/dota/details/1295953.html ИДИТЕ НАХУЙ С ТАКМИ ГОНДАРАМИ СВЕН ТП СВЕН ПУШИТ СВЕН ХЕКС СВЕН ДАБЛКИЛЛ СВЕН 7ОО КРИПОВ Поделиться сообщением Ссылка на сообщение
TheDeadSkin #998 22 февраля 2013 просто изначально речь шла о том, что у 2поя были статические методы для работы с БД, насколько я понял из его кода class Company { public static function get_company($id) {} public static function get_all_company() {} public static function create_company() {} public static function update_company() {} public static function delete_company($id) {} public static function get_stuff($id) {} } поправьте если не прав Поделиться сообщением Ссылка на сообщение
rubish #999 22 февраля 2013 вот юнит-тест к немуAssert.That(5 == someFunc(argToHave5));ну ты реально дебил. если функция читает из базы, файла или сервиса - то у тебя юнит тест свалится если не будет этого контекста или в нем что-то поменяется, но при этом логика функции будет правильной. и это не юнит тест, а хуйня какая-то Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Mr.Blonde #1000 22 февраля 2013 вот юнит-тест к немуAssert.That(5 == someFunc(argToHave5));ну ты реально дебил.если функция читает из базы, файла или сервиса - то у тебя юнит тест свалится если не будет этого контекста или в нем что-то поменяется, но при этом логика функции будет правильной. и это не юнит тест, а хуйня какая-тоебать ты придурок бляяпри чем тут контекст ? ты путаешь статические МЕТОДЫ и статические ПЕРЕМЕННЫЕ.статические МЕТОДЫ тестировать - одно удовольствие.статические ПЕРЕМЕННЫЕ - не тестируемы. дак вот я говорил про МЕТОДЫ. http://ru.iccup.com/dota/details/1295953.html ИДИТЕ НАХУЙ С ТАКМИ ГОНДАРАМИ СВЕН ТП СВЕН ПУШИТ СВЕН ХЕКС СВЕН ДАБЛКИЛЛ СВЕН 7ОО КРИПОВ Поделиться сообщением Ссылка на сообщение