Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6]      все
 Re: Недостатки Дельфи и Билдера  [new]
XDiaBLo
Member

Откуда: Югра
Сообщений: 70769
softwarer
XDiaBLo
В Дельфи, при выборе события, тебя сразу же закидывает в сгенерированную функцию, вот к примеру ткнул куда попало:

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

Я ради интереса погуглил по слову всего-навсего addActionListener. Первая ссылка пустая (на явадок), вторая вот. Ведёт, между прочим, на sun.com. И совершенно явно "кажется, что так и надо писать код". Называется, найдите десять отличий от волшебной кнопки

"Десять раз подумаешь" - это характеристика человека, а вовсе не инструмента. Я вот почему-то использовал концепцию Action ещё когда ни в Яве, ни в Дельфе не было соответствующего стандартного класса.

Мне кстати больше нравятся лисенеры в ЭкшнСкрипт. Но я только что заподозрил, что от некоторой привычки к волшебной кнопке пока не совсем избавился И плюс что мои любимые лисенеры ЭкшнСкрипта тоже несколько предрасполагают к волшебной кнопке.

		static private function dragShip():void
		{
.....
                        //добавление лисенера 
			playerTable.addEventListener(MouseEvent.MOUSE_MOVE, currentShip.mouseMoveOverTableListener);
.........
                }
private function mouseMoveOverTableListener(e:MouseEvent):void
		{
			var i:Number = Math.floor( e.localX / playerTable.getCellSize() );
			var j:Number = Math.floor( e.localY / playerTable.getCellSize() );
			var point:Point = new Point(i, j);
			correctCoordinates(point);
			stage.invalidate();
		}
		private function correctCoordinates(mouseCoordinates:Point)
		{
			var i:Number;
			var j:Number;
			if (mouseCoordinates == null)
			{
				return;
			}
			else
			{
				i = mouseCoordinates.x;
				j = mouseCoordinates.y;
			}
			if (rotation == 0 && (j + size) > 10)
			{
				j = 10 - size;
			}
			if (rotation == -90 && (i + size) > 10)
			{
				i = 10 - size;
			}
			if (i >= 0 && i < 10 && j >= 0 && j < 10)
			{
				x = playerTable.x + (i+0.5) * playerTable.getCellSize();
				y = playerTable.y + (j+0.5) * playerTable.getCellSize();
			}
		}
Поле 10 на 10, морской бой. i и j номер клетки. x и y координаты на которые следует поместить картинку корабля. Это просто из моего алгоритма обработки расстановки кораблей. Думаю стоило бы убрать вообще всё в вызываемый метод correctCoordinates, но дело в том, что в других местах вызов происходит немного по другому, так что это более менее приемлемый вариант.
17 фев 10, 20:54    [8360544]     Ответить | Цитировать Сообщить модератору
 Re: Недостатки Дельфи и Билдера  [new]
XDiaBLo
Member

Откуда: Югра
Сообщений: 70769
softwarer
Капитан очевидность.
Визуальный дизайнер+кодогенератор завязывает тебя в месте, где ты можешь добавлять обработчики событий.

Не соглашусь. Редактор кода никуда не девается, операция New file присутствует как в любом нотепаде. А если знаешь, что такое data module (с чем, правда, у ряда дельферов.. проблемы) так и вовсе скорее "отвязывает от гуя".

Капитан очевидность.
(от того, что обработка будет перенесена из Button1Click в DoSomething того-же класса-формы - толку будет мало,

Отнюдь. Значение и смысл "вынесения этого метода в отдельный класс" как раз гораздо меньше, чем "отрыва от кнопки".

Первое, в новый файл в Билдере лазить неудобно, если он к форме ни к какой не привязан, нужно туда лазить через класс-эксплорер, в котором отображается куча лишних классов
Второе, согласен, за то и люблю ЭкшнСкриптовские лисенеры. При правильном применении, удобнее, чем явовские. Плюс редактор удобнее чем в Билдере 6, я FlashDevelop использую. Правда ничего особенного в нём нет, но всё основное что нужно редактору, на месте, и по файлам лазить удобнее.
17 фев 10, 21:08    [8360580]     Ответить | Цитировать Сообщить модератору
 Re: Недостатки Дельфи и Билдера  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53543
Блог
XDiaBLo
И плюс что мои любимые лисенеры ЭкшнСкрипта тоже несколько предрасполагают к волшебной кнопке.

Имхо листенеры вообще больше располагают к этому, нежели события. Причина проста: листенер - это отдельный класс. То есть, получается, чтобы сделать "правильно", надо делать три класса: гуй, листенер и контроллер. Часто тут ощущается перебор и появляется желание упростить. Если, скажем, Action - ещё компонент на своём месте, то делать отдельный листенер для какого-нибудь edit.changed - как-то слишком.
17 фев 10, 21:12    [8360585]     Ответить | Цитировать Сообщить модератору
 Re: Недостатки Дельфи и Билдера  [new]
XDiaBLo
Member

Откуда: Югра
Сообщений: 70769
softwarer
Капитан очевидность.
См. выше про пример мега mainform с 15-тью поздакладками в TNotebook. Я такого насмотрелся и не раз (не на студенческих проектах).

Это да. Я однажды на заре своей карьеры столкнулся с программистом, который в течение примерно полугода аккуратно получал задания по ТЗ, делал их, а потом однажды оказалось, что все они сделаны в рамках одной формы.

Капитан очевидность.
Да я уже написал, что и там и там обычно делают плохо.

Именно поэтому постановка вопроса "инструмент помогает хорошему или плохому стилю у начинающих" представляется мне... сомнительной.

Я в Билдере перенёс многое из магических кнопок в отдельные классы, раскидал по функциям, с внятными названиями, сделал красиво. А показать кому, стыдно, т.к. лазать по этим файлам неудобно, фиг проссышь, куда я что рассовал, разве что ctrl-left click, по вызову класса, чтобы попасть в тот файл, и то хорошо. Как я уже говорил, в Билдере 6, по классам без форм, лазить неудобно.
17 фев 10, 21:13    [8360586]     Ответить | Цитировать Сообщить модератору
 Re: Недостатки Дельфи и Билдера  [new]
XDiaBLo
Member

Откуда: Югра
Сообщений: 70769
softwarer
XDiaBLo
И плюс что мои любимые лисенеры ЭкшнСкрипта тоже несколько предрасполагают к волшебной кнопке.

Имхо листенеры вообще больше располагают к этому, нежели события. Причина проста: листенер - это отдельный класс. То есть, получается, чтобы сделать "правильно", надо делать три класса: гуй, листенер и контроллер. Часто тут ощущается перебор и появляется желание упростить. Если, скажем, Action - ещё компонент на своём месте, то делать отдельный листенер для какого-нибудь edit.changed - как-то слишком.

Так ведь в том-то и дело, что в ЭкшнСкрипте это обычно как я уже упоминал, нечто типа
private function mouseMoveOverTableListener(e:MouseEvent):void
То есть функция класса, в котором этот лисенер и цепляешь, куда хочешь. Я обычно это делаю к визуальным объектам, хотя есть там и другие лисенеры. И уже из него, можно вызвать какой-нибудь класс-обработчик. То есть изначально никто не заставляет делать отдельный класс. Так что не вижу разницы с событиями. Даже вон, названия какие MouseEvent к примеру. Лисенер получает событие. Так что не вижу, что тут к чему больше располагает.
17 фев 10, 21:17    [8360598]     Ответить | Цитировать Сообщить модератору
 Re: Недостатки Дельфи и Билдера  [new]
Капитан очевидность.
Guest
softwarer

Именно поэтому постановка вопроса "инструмент помогает хорошему или плохому стилю у начинающих" представляется мне... сомнительной.


Если взять гипотетического коня в вакууме вполне себе реального недоученного студента
XDiablo, у которого "опыт и знания" ограничивается скачанной пиратской Delphi, книгами
Архангельского и прочитанными статьями сомнительного содержания и авторства,
да помноженное это все на условия изоляции от более-менее приличных коллективов разработчиков и проектов,
то проблема подсознательного доминирования неправильности инструмента вполне себе может иметь
место в его робких начинаниях интенсивного самообучения методом битья палкой от граблей по голове.

Это как, ну я не знаю, обезьяна с гранатой папуас с Delphi микроскопом перед привычной ему задачей добывания пропитания.

Что сделает папуас? Применит микроскоп для раскалывания скорлупы орехов. А потом, имея в одной
руке микроскоп, а в другой - руководство другого папуаса о MVC том, что линзы можно
использовать для добывания огня - заведет топик, о том, что какой-же это неправильный и дорогой
инструмент, микроскоп, что и орехи плохо колет, и огонь добывать из него совсем неудобно.

А потом подпряжется третий папуас, который заведет нытье, что он дескать в своем племени
вообще запретил микроскопом добывать огонь и колоть орехи, и вручил всем C++ бутылки из
под огненной воды, которыми можно и орехи колоть, и огонь добывать.

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


Короче.

Одно только не понятно. Эй, папуасы студенты, а кто вам вообще разрешил свое мнение высказывать?
17 фев 10, 21:23    [8360609]     Ответить | Цитировать Сообщить модератору
 Re: Недостатки Дельфи и Билдера  [new]
XDiaBLo
Member

Откуда: Югра
Сообщений: 70769
Капитан очевидность.,

Слушай, ты, я 5 лет назад отучился. На Дельфи не пишу из религиозной ненависти, на С++ Билдере начал с поддержки наследия, которое благополучно переписываю, уже наполовину убрал всё гавно. В Нетбинсе использую unit-тесты, и SVN, к Билдеру юнит-тесты прикрутить мне не удалось, давайте, списывайте на мою недоученность, но всё же я перерыл несколько библиотек юнит-тестирования, и мозг сломал об их документацию, при этом постоянно отвлекаясь на текущую работу. Причём к примеру boost.regex я прикрутил к одному Билдеровскому проекту. Ещё раз насчёт недоученности, у меня универ был лажовый, группа 17 человек, из них я один программист, остальные и рядом не валялись. Я вообще программирую не благодаря, а вопреки университету. Никаким из своих навыков программирования, я универу не обязан. Разве что может основы UML там узнал. Всё остальное самообучение. Результаты неплохие, но есть к чему стремиться. НО МЛЯ НА ЭТОМ ФОРУМЕ ЗАКОЛЕБАЛИ УЖЕ ВСЯКИЕ ОНАНИЗМУСЫ МЕНЯ ОСКОРБЛЯТЬ!!! Чем я показал какую-то недоученность и ущербность? Я справляюсь с работой, и дома программирую из личного желания, в чём я не прав то опять? Короче, смотался отсюда, му**ло, ты запарил уже!
17 фев 10, 21:37    [8360638]     Ответить | Цитировать Сообщить модератору
 Re: Недостатки Дельфи и Билдера  [new]
Капитан очевидность.
Guest
XDiaBLo
Капитан очевидность.,
Слушай, ты, я 5 лет назад отучился.

И до сих пор ничего толком делать не научился?

Хм.

XDiaBLo
На Дельфи не пишу из религиозной ненависти

Вот я и говорю. Такое - не лечится.


Модератор: Вот на этой радостной ноте и закончим.
17 фев 10, 21:39    [8360645]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6]      все
Все форумы / Программирование Ответить