Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Litkevich Yuriy |
28.3.2010, 14:48
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Тут наткнулся на статью Link
Читаю, вроде пока с автором согласен. |
|
|
|
|
Kagami |
28.3.2010, 15:34
Сообщение
#2
|
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9
|
Я помню эту статью еще с хабра. С частью тезисов не согласен
Сообщение отредактировал Kagami - 28.3.2010, 15:43 |
|
|
|
|
Litkevich Yuriy |
28.3.2010, 16:03
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(Kagami @ 28.3.2010, 19:34) Link Плюс отказ от рекурсии. это я тоже не понял, но пока до объяснений не дочитал.А насчёт параллельных масивов с ним согласен. И насчёт переменных объявляемых в паскалевском стиле полностью согласен (хотя сам до не давнего времени так и делал) |
|
|
|
|
kwisp |
28.3.2010, 16:15
Сообщение
#4
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Цитата(Kagami @ 28.3.2010, 16:34) Link В основном претензии к призыву отказаться от сеттеров/геттеров. я вот сейчас прочёл тоже согласен с тобой. а как автор советует поступать если при изменении свойства нужно выполнить какие нибудь действия, это получается и поведение и изменение свойства? получается никак. либо его притензии к сеттерам и геттерам проявляются только в чистом виде, когда ничего делать по изменению свойства не нужно. я поддерживаю концепцию того чтобы в открытой секции класса хранились только константные данные. Изменяемые данне должны быть надёжно защищены. + пропадает возможность сделать сеттеры и геттеры виртуальными при наследовании. |
|
|
|
|
Litkevich Yuriy |
28.3.2010, 18:29
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(kwisp @ 28.3.2010, 20:15) Link я вот сейчас прочёл тоже согласен с тобой. тут есть нюанс. В целом я согласен с автором, те кому приходилось писать на Делфи, перейдя на любой другой инструмент (Билдер не всчёт так как пытается пародировать Делфи) могли испытать чувство не Объектно-Ориентированности.Дело в том, что в Делфи, есть понятие свойств, поддерживаемых компилятором. В Qt, например, тоже есть. И когда в Делфи вы пишите: value = object.sameProperty; то вы получаете значение свойства объекта, но не напрямую, а через "геттер", а когда вы пишете object.sameProperty = value; то вы устанавливаете значение свойства объекта, но не напрямую, а через "сеттер". Т.е. у вас есть возможность определить и "геттер" и "сеттер". Но форма записи в коде очень интуитивна, и на мой взгляд, по настоящему Объектно-Ориентирована. Нюанс в том, что автор абстрагируется в размышлении от конкретного языка программирования. Но редко указывает на каком языке дан пример. Цитата Свойство — это интерфейс для красивого и безопасного доступа к данным объекта
|
|
|
|
|
Iron Bug |
28.3.2010, 20:08
Сообщение
#6
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12
|
автор статьи работает в веб и сильно зациклен на жабаскрипте. отсюда и его странные представляния о коде
но в большинстве языков того, что автор описывает, просто не существует. так что советы неактуальны. что касается "общих" вопросов, применимых ко всем языкам, то моё мнение такое: про возвращаемое значение: имхо - функция ВСЕГДА должна возвращать int с кодом ошибки и точка. результаты - в параметрах. про геттеры и сеттеры - для крупных проектов со сложными объектами это единственный нормальный и безопасный способ обращения к данным. при этом обеспечивается полная инкапсуляция и наследование. |
|
|
|
|
Litkevich Yuriy |
28.3.2010, 20:59
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(Iron Bug @ 29.3.2010, 0:08) Link про возвращаемое значение: а я вот категорически с этим не согласен. имхо - функция ВСЕГДА должна возвращать int с кодом ошибки и точка. результаты - в параметрах. Сам термин "функция" обязывает к математическому поведению. Как и приведено у автора статьи Цитата(Iron Bug @ 29.3.2010, 0:08) Link про геттеры и сеттеры - для крупных проектов со сложными объектами это единственный нормальный и безопасный способ обращения к данным. ну это опять же жёстко завязано на Си++. А в языках где есть свойства, в них нет нужды
|
|
|
|
|
AD |
28.3.2010, 22:52
Сообщение
#8
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Я не согласен с функциями внутри функций. Если нужен какой-то логический блок, то лучше пользоваться пространствами имен.
|
|
|
|
|
Litkevich Yuriy |
28.3.2010, 23:38
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(AD @ 29.3.2010, 2:52) Link то лучше пользоваться пространствами имен а пространства имён разве можно определить внутри функции?Прочитал про рекурсию, ну положим итерационным методом лучше, но кода для сравнения обоих методов я не увидел - это минус товарищу. |
|
|
|
|
AD |
29.3.2010, 10:02
Сообщение
#10
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(Litkevich Yuriy @ 29.3.2010, 0:38) Link а пространства имён разве можно определить внутри функции? Читай внимательно, я сказал следующее, что вместо функций в функциях лучше использовать пространства имен, внутри которых и определять нужные функции. |
|
|
|
![]() ![]() |
|
Текстовая версия | Сейчас: 3.1.2026, 2:09 |