Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> презумпция инкапсуляции, обязательное сокрытие полей класса 
:(
    Опции темы
Pawl
Дата 1.6.2014, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: нет
Всего: 28



Цитата(diadiavova @  30.5.2014,  23:55 Найти цитируемый пост)
Я тут вообще ни при чем. В случае со мной публичное поле объявляется так
код VB.NET
1:

Public X As Double




А публичное (по умолчанию) свойство так
код VB.NET
1:

Property X As Double




И мне сложно представить аргументы в пользу того, чтобы отдать предпочтение первому варианту, но если они у тебя есть, то я весь - внимание.

В плане свойств да, тут безусловно большой профит, убедили! smile Возможно, пиши я изначально на C#, я бы эту тему вообще не создал. Но сейчас я согласен, что
Цитата(diadiavova @  30.5.2014,  23:55 Найти цитируемый пост)
В принципе догматизм - это всегда плохо, всегда надо не только знать как что сделать, но и понимать почему.
 Поэтому 
Цитата(Alexeis @  30.5.2014,  20:48 Найти цитируемый пост)
Фтопку ООП когда оно не нужно.
 smile 
Цитата(diadiavova @  30.5.2014,  16:29 Найти цитируемый пост)
Ну так такие классы обычно генерируются автоматически,

Цитата(diadiavova @  30.5.2014,  23:55 Найти цитируемый пост)
да и отступы руками делать не привык, поскольку иде с этим прекрасно справляется. И вообще, чем меньше кнопок приходится жать - тем лучше 

Автоматически генерируемый код - это, конечно, хорошо, но его
Цитата(Alexeis @  30.5.2014,  20:48 Найти цитируемый пост)
будут читать другие люди

А ИДЕ иногда такого нагородит, что потом сам можешь не понять, что к чему.
 smile 
Цитата(diadiavova @  30.5.2014,  23:55 Найти цитируемый пост)
Обеспечивать доступ к данным из одного места 

Не будем уточнять, из какого! smile 





Это сообщение отредактировал(а) Pawl - 1.6.2014, 09:40


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
diadiavova
Дата 1.6.2014, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 4
Всего: 142



Цитата(Pawl @  1.6.2014,  10:38 Найти цитируемый пост)
Поэтому 

Я уже сказал, что ООП здесь вообще ни при чем. Если ты уверен, что ситуации, в которой это может стать проблемой, не может возникнуть в принципе, то поступай как тебе удобно. Но ведь не все же от тебя зависит.
Цитата(Pawl @  1.6.2014,  10:38 Найти цитируемый пост)
А ИДЕ иногда такого нагородит, что потом сам можешь не понять, что к чему.

Тут есть несколько возражений:
1. Изначально мы говорили о тривиальных случаях, а с ними любой инструмент кодогенерации справляется на ура, да и читается все хорошо.
2. Читать сгенерированный код в принципе не обязательно, обычно он используется как внешняя библиотека и проблем это не создает.
3. Много зависит от того, что именно ты используешь для кодогенерации, насколько надежен инструмент и какие возможности дает тебе язык, на котором ты пишешь. К примеру в C# и VB.Net есть такая штука как partial-классы. То есть код одного класса можно описать в разных файлах. Кроме того в одном файле может быть несколько классов, среди которых могут быть и частичные. Такой подход позволяет безболезненно использовать инструменты кодогенерации, посколько автоматически генерируемый код можно легко отделить от ручного. Таким образом сгенерированные файлы вообще даже открывать не обязательно, а на их содержимое можно влиять только через визуальный дизайнер к примеру и при любом изменении в дизайнере файл переписывается полностью. Обычно это работает достаточно надежно.
Цитата(Pawl @  1.6.2014,  10:38 Найти цитируемый пост)
Не будем уточнять, из какого!

В данном случае речь шла об акцессорах, но почему-то меня вовсе не удивляет, что у тебя выражение "одно место" вызывает совсем другие ассоциации. Мало того, я даже догадываюсь какие именно. smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Pawl
Дата 1.6.2014, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: нет
Всего: 28



Цитата(diadiavova @  1.6.2014,  13:45 Найти цитируемый пост)
 К примеру в C# и VB.Net есть такая штука как partial-классы. То есть код одного класса можно описать в разных файлах. Кроме того в одном файле может быть несколько классов, среди которых могут быть и частичные. Такой подход позволяет безболезненно использовать инструменты кодогенерации, посколько автоматически генерируемый код можно легко отделить от ручного.

Согласен, удобная штука. Надо будет как-нить обсудить достоинства и недостатки шарпа, но не в этой теме - тут это будет оффтопик.
Цитата(diadiavova @  1.6.2014,  13:45 Найти цитируемый пост)
Читать сгенерированный код в принципе не обязательно

Цитата(diadiavova @  1.6.2014,  13:45 Найти цитируемый пост)
Таким образом сгенерированные файлы вообще даже открывать не обязательно

С этим не соглашусь: ты должен отвечать за выдаваемый тобой код, а как ты будешь отвечать за что-то, чего даже не видел? smile Так что тут можно и поспорить - но опять таки в другой теме (типа, надо ли читать, а тем более редактировать код, написанный твоей ИДЕ). А вот холивара из инкапсуляции чёт не получается... smile 


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
LSD
Дата 2.6.2014, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Pawl @  1.6.2014,  23:03 Найти цитируемый пост)
С этим не соглашусь: ты должен отвечать за выдаваемый тобой код, а как ты будешь отвечать за что-то, чего даже не видел?

Ты вот без гугла можешь сказать, хотябы как посмотреть на то, что из твоего байткода сделал JIT? (это к вопросу об отвечать за то что даже не видел)


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Pawl
Дата 2.6.2014, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: нет
Всего: 28



Цитата(LSD @  2.6.2014,  10:41 Найти цитируемый пост)
Ты вот без гугла можешь сказать, хотябы как посмотреть на то, что из твоего байткода сделал JIT? 

За это пусть Oracle отвечает.  smile И вообще, я на байт-коде не пишу! smile 

Это сообщение отредактировал(а) Pawl - 2.6.2014, 18:38


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
LSD
Дата 3.6.2014, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Pawl @  2.6.2014,  19:37 Найти цитируемый пост)
За это пусть Oracle отвечает.   И вообще, я на байт-коде не пишу!

Тогда на вопрос
Цитата(Pawl @  1.6.2014,  23:03 Найти цитируемый пост)
С этим не соглашусь: ты должен отвечать за выдаваемый тобой код, а как ты будешь отвечать за что-то, чего даже не видел?

ответ аналогичный, это пусть <разработчик генератора кода> отвечает.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Pawl
Дата 3.6.2014, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: нет
Всего: 28



Цитата(LSD @  3.6.2014,  10:12 Найти цитируемый пост)
ответ аналогичный, это пусть <разработчик генератора кода> отвечает.

Ну и будешь в ответ на претензии к своему коду отсылать заказчиков прямо туда! smile посмотрим, как долго они это терпеть будут. smile 

Это сообщение отредактировал(а) Pawl - 3.6.2014, 16:50


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
LSD
Дата 3.6.2014, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Pawl @  3.6.2014,  17:49 Найти цитируемый пост)
Ну и будешь в ответ на претензии к своему коду отсылать заказчиков прямо туда!

Туда это туда же куда тебя пошлет Оракл с твоим багов в JIT (при условии конечно что у тебя не куплен VIP саппорт)?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Pawl
Дата 3.6.2014, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: нет
Всего: 28



Цитата(LSD @  3.6.2014,  17:29 Найти цитируемый пост)
Туда это туда же куда тебя пошлет Оракл с твоим багов в JIT (при условии конечно что у тебя не куплен VIP саппорт)?

Разница тут в том, что ты можешь залезть в дебри автосгенерированного IDE java-кода, разобраться в нём, потратив n-ное количество времени, и, найдя там лажу, хлопнуть себя по лбу с воплем "Семён Семёнович!" А потом самостоятельно эту лажу исправить. А баги JDK исправить можешь?

Это сообщение отредактировал(а) Pawl - 3.6.2014, 18:00


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
LSD
Дата 3.6.2014, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Pawl @  3.6.2014,  18:58 Найти цитируемый пост)
Разница тут в том, что ты можешь залезть в дебри автосгенерированного IDE java-кода, разобраться в нём, потратив n-ное количество времени, и, найдя там лажу, хлопнуть себя по лбу с воплем "Семён Семёнович!" А потом самостоятельно эту лажу исправить. А баги JDK исправить можешь?

1. Про "автосгенерированного IDE" это твоя личная фантазия, diadiavova не уточнял чем генерируется код. А так, сгенеренный код подправить то конечно можно, но как ты предлагаешь это (исправление) автоматизировать?
2. И я о том же, баги в JIT JDK имеют гораздо более серьезные последствия и устраняются на порядок сложнее, чем баги в автосгенеренном коде. Но тебя почему-то сильно пугает "автосгенерированный IDE" код, а код сгенерированный JIT не беспокоит вообще.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Pawl
Дата 3.6.2014, 20:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: нет
Всего: 28



Цитата(LSD @  3.6.2014,  19:17 Найти цитируемый пост)
Про "автосгенерированного IDE" это твоя личная фантазия, diadiavova не уточнял чем генерируется код. 

А чем еще при разработке может быть автосгенерирован код? smile 
Цитата(LSD @  3.6.2014,  19:17 Найти цитируемый пост)
А так, сгенеренный код подправить то конечно можно, но как ты предлагаешь это (исправление) автоматизировать?

Никак, только тщательная проверка и правка ручками smile Поэтому я стараюсь сразу всё писать сам, а не слепо доверяться какой-то там IDE.
Цитата(LSD @  3.6.2014,  19:17 Найти цитируемый пост)
Но тебя почему-то сильно пугает "автосгенерированный IDE" код, а код сгенерированный JIT не беспокоит вообще.

Я вообще стараюсь не беспокоиться о вещах, на которые повлиять не в силах! smile 


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
diadiavova
Дата 3.6.2014, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 4
Всего: 142



Цитата(LSD @  3.6.2014,  20:17 Найти цитируемый пост)
diadiavova не уточнял чем генерируется код

Я уточню. smile Все инструменты кодогенерации, с которыми мне доводилось сталкиваться(или ваять самому) можно условно разделить на три группы:

1. Инструменты рефакторинга. Сами по себе они вряд ли могут считаться инструментами кодогенерации, но, учитывая, что какой--то код они генерируют, в них нередко встраивают дополнительные функции, которые выполняют разовые операции  по кодогенерации. Например для списка объявленных полех можно сгенерировать методы-акцессоры или в свиче описать кейсы для перечисления и т.п. Существуют и отдельные инструменты такого рода(без рефакторинга), но их я отношу к этой же группе.

Код, генерируемый такими инструментами, можно и нужно не только читать, но и писать дописывать. Зачастую (как в случае со свичами) они просто создают заготовку кода и не более.

2. Инструменты визуального моделирования. Суть их состоит в том, что вся работа выполняется в дизайнере, а сохраняться результат может в том числе в виде программного кода. Наиболее очевидный пример такого генератора - инструменты для создания классов модели предметной области из сущностей базы данных. То есть в дизайнере создаются модели табличек связей и т. д. а сохраняется это в виде готовых классов.

Если используется вполне надежный инструмент, то заглядывать в код, сгенерированный такой тулзой - зачастую просто противопоказано. Код может оказаться с виду достаточно мудреным, но на самом деле он вполне шаблонный и автоматический генератор кода с такой задачей справляется на ура. Любые ошибки, которые при этом могут возникать - обычно являются ошибками, допущенными в дизайнере и исправляются там же. Правда справедливости ради надо отметить, что иногда ошибки выявляются во время отладки, так что в код в этот период заглядывать иногда приходится, но исправлять все равно придется в дизайнере, поскольку все изменения, выполненные вручную будут утрачены при следующем сохранении дизайнера или при следующей сборке проекта.

3. Код, порождающий код. Обычно это какой--то вариант текстовых шаблонов, где код смешивается с операторами языка программирования, которые будут выполняться. 
Пример из MSDN, поддерживается в Visual Studio.

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


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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LSD
Дата 4.6.2014, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Pawl @  3.6.2014,  21:12 Найти цитируемый пост)
А чем еще при разработке может быть автосгенерирован код?

Вообще-то генерация кода с помощью IDE, это очень плохая практика. Как минимум по тому что такой билд, нельзя автоматизировать и гонять на CI сервере. Ну или придется комитить сгенерированный код в VCS, то тоже не айс.


Цитата(Pawl @  3.6.2014,  21:12 Найти цитируемый пост)
Никак, только тщательная проверка и правка ручками  Поэтому я стараюсь сразу всё писать сам, а не слепо доверяться какой-то там IDE.

Я так и представляю, как ты берешь какой нибудь prtobuf, и вдумчиво читаешь все те тонны кода которые он генерирует smile 



Цитата(Pawl @  3.6.2014,  21:12 Найти цитируемый пост)
Я вообще стараюсь не беспокоиться о вещах, на которые повлиять не в силах!

А это тогда тут при чем
Цитата(Pawl @  1.6.2014,  23:03 Найти цитируемый пост)
С этим не соглашусь: ты должен отвечать за выдаваемый тобой код, а как ты будешь отвечать за что-то, чего даже не видел?

? Ты или "должен отвечать" и за компилятор и рантайм и автогенерацию или "не беспокоиться о вещах ...".


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Pawl
Дата 4.6.2014, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: нет
Всего: 28



Цитата(LSD @  4.6.2014,  12:10 Найти цитируемый пост)
Я так и представляю, как ты берешь какой нибудь prtobuf, и вдумчиво читаешь все те тонны кода которые он генерирует


Цитата(Pawl @  3.6.2014,  20:12 Найти цитируемый пост)
я стараюсь сразу всё писать сам


Цитата(LSD @  4.6.2014,  12:10 Найти цитируемый пост)
Цитата(Pawl @  3.6.2014,  21:12 )Я вообще стараюсь не беспокоиться о вещах, на которые повлиять не в силах!А это тогда тут при чемЦитата(Pawl @  1.6.2014,  23:03 )С этим не соглашусь: ты должен отвечать за выдаваемый тобой код, а как ты будешь отвечать за что-то, чего даже не видел?? Ты или "должен отвечать" и за компилятор и рантайм и автогенерацию или "не беспокоиться о вещах ...".

Ну, тут ты меня поймал! smile Формально оно конечно так, но вот только, когда твой начальник найдет ошибку у тебя в коде, он не будет разбираться, кто его писал - ты или IDE, а сразу лишит тебя, к примеру, премии. И будет прав. Но вот ошибку в байт-коде ни ты ни он найти не сможете, поэтому, случись что, совесть твоя будет чиста. smile 



--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
LSD
Дата 4.6.2014, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Цитата(Pawl @ 4.6.2014,  16:27)
Цитата(LSD @  4.6.2014,  12:10 Найти цитируемый пост)
Я так и представляю, как ты берешь какой нибудь prtobuf, и вдумчиво читаешь все те тонны кода которые он генерирует


Цитата(Pawl @  3.6.2014,  20:12 Найти цитируемый пост)
я стараюсь сразу всё писать сам



Цитата(Pawl @ 4.6.2014,  16:27)
Ну, тут ты меня поймал! smile Формально оно конечно так, но вот только, когда твой начальник найдет ошибку у тебя в коде, он не будет разбираться, кто его писал - ты или IDE, а сразу лишит тебя, к примеру, премии. И будет прав. Но вот ошибку в байт-коде ни ты ни он найти не сможете, поэтому, случись что, совесть твоя будет чиста. smile

1. Нефиг генерированный код коммитить.
2. Хотел бы я посмтреть на реализованный тобой protobuf сериализатор/десериализатор smile 
3. Не знаю в какой *** конторе ты работаешь, но у нас за баги никого премии не лишают.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1905 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.