Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.04.2009, 00:22
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 51  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Ну вот, поехали. Каждый со своей колокольни.

Цитата:
Сообщение от wvxvw Посмотреть сообщение
никому даром не нужны ваши if (true) в работающем коде.
Я разве говорил о законченном коде? Нет. На первых этапах я часто переписываю какие-нибудь детали. Или же запоминаю, что мне нужно сделать. Если я буду писать TODO каждый раз, когда что-то пишу, то скорость написания упадёт, пожалуй, раза в полтора. И по-моему, это излишество - писать TODO для той вещи, которую я собираюсь реализовать через пару часов. Когда я плотно работаю со своим же собственным кодом - мне TODO не нужны.

Естественно, что когда код уже оформлся и я точно знаю, что из него получится - я снабжаю отдельные элементы комментариями, а не if (true). Но если данная часть кода мне ещё самому точно не известна - то написание комментариев только вводит в заблуждение. "Плохой комментарий хуже его отсутствия" (автора забыл, но программист уважаемый). Нет ничего глупее, чем поверить комментарию, который ты забыл перенести или же подредактировать после того, как что-то изменилось.

Код AS1/AS2:
Не сравнивать булевые величины - это то, что называется best / recommended practices
Отлично. Именно это я и хотел услышать. Тем не менее выражение true == true не противоречит логике. Точно так же как и (true == true) == (true == true) тоже логике не противоречит.

В этом и была суть вопроса. На каком основании компилятор выдаёт ошибку, если мой код ошибок не содержит? На основании best practices? Как-то... странно это. Поэтому я и хотел узнать, откуда уши растут у этого явления.

Цитата:
и, что самое главное, вам не нужно будет из отуска по телефону объяснять человеку не знакомому с вашим кодом за каким лешим вы там какую-то ахинею написали.
Удивительно, как быстро может человек навыдумывать, если ему этого хочется. Про оформление кода вы сами начали говорить и в пределах одного поста сразу же довели ситуацию до абсурда, когда вы, действительно непонятно за каким лешим налепили чёрт-знает чего в свою программу специально перед началом своего отпуска.

Я же говорил о рабочем процессе. Уверен, что вы тоже свой код не за один заход сразу начисто пишите. И уверен, что тоже не по каждому случаю подробные TODO пишите.

Старый 07.04.2009, 11:11
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 52  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Stargazer, ваш код хоть раз уходил больше, чем за 500 строк?
У меня в чаще всего в проекте около 20-30 классов, у каждого от 200 до 1000 строк кода. Я открываю какой нибудь класс - и я не понимаю, что я там писал, я отдаленно помню, что какой метод возвращает и что какая функция делает. Когда я сдам проект - через неделю уже я не буду помнить в этом проекте ровно ничего. Без комментариев я разбираться буду очень долго, даже в своем коде.
А если проект будет больше? Я напишу какой нибудь "костяк" проекта, и начну вокруг него обращивать все больше и больше. Все кости я сразу не напишу, заказчик как правило требует "глядеть на результаты работы", а выдача текстом ему не очень нравиться. И вот тут я поставлю TODO - то, к чему вернусь через неделю работы.

Про сравнение true==true==true while true!=false.
Циклы теперь будем писать так:
(условие если mc.x<200, то двигаем вправо)
Код AS3:
while (true){
if (mc.x>=200) break;
mc.x++;
}
А ещё лучше так
Код AS3:
for (var i:uint=0; i>=0; i++){
if (mc.x>=200) break;
mc.x++;
}
С точки зрение логики правильно. А я бы написал вот так:
Код AS1/AS2:
mc.x=200
Все 3 кода не противоречат логике и вполне ясны, только вы сделали за компилятор работу, сэкономив ему процессорное время.

Из жизни пример мм... Дана матрица. Нужно найти её корни и подставить куда нибудь. Вы нашли корни, например крамером и уверены, что они 100% правильные. Можно сразу их подставить, а можно подсчитать их ещё и гауссом, что вы и делаете. Вам этого кажеться мало и вы пытаетесь их ещё и угадать. Угадали. 3 одинаковых результата в 3 случаях. Если вы фанат этого дела - ради бога. Но компилятор на основании отсутствия у него шизофрении (хотя, пишу сейчас проект на ас2 и сильно в этом сомневаюсь) говорит мол, хозяин, а может один раз корни нашел - и больше ненадо?..

Старый 07.04.2009, 16:28
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 53  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Stargazer, ваш код хоть раз уходил больше, чем за 500 строк?
Конкретно на флеш мой код уходил за 5000 строк (в сумме) и содержал около 10 классов.
На делфи мои проекты, бывало, уходили за десятки тысяч строк кода и содержали десятки классов. К сожалению, с делфи дороги разошлись.

Цитата:
Я открываю какой нибудь класс - и я не понимаю, что я там писал
Я снова повторяю, что я вёл речь о рабочем процессе. Вот я пишу один (ровно один класс) в настоящее время и с ним работаю. Не собираюсь я составлять комментарии и TODO до тех пор, пока хотя бы каркас кода не будет готов. После того как работа дойдёт до косметической отделки - тогда и опишу в комментариях, каким образом работают мои функции. Поскольку в основном я всё время работал с одним этим классом - то память отлично помнит, что и как там работает. Вот в этот момент я всё оформлю, просмотрю: всё наглядно? И только потом отложу в сторонку.

Цитата:
И вот тут я поставлю TODO - то, к чему вернусь через неделю работы.
А я как будто утверждаю обратное?

P.S. Далеко уехали от изначальной темы. Флуд со своей стороны я прекратил.


Последний раз редактировалось Stargazer; 07.04.2009 в 16:42.
Старый 07.04.2009, 17:01
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 54  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Компилятор выдает ошибку не потому, что код не логичный, а потому, что пытается предотвратить ошибку сделаную по невнимательности. Точно так же вам будут выдаваться предупреждения, если вы будете использовать некоторые имена для функций бывшие очень популярными в АС2 - например onEnterFrame - т.е. таким образом он пытается предотвратить какую-нибудь явную глупость написаную по невнимательности.
И, это, в проекте над которым сейчас работаю (нас 2 человека теперь уже трудиться больше 300 классов... строки не считал... так вот если писать дурацкий код вместо коментариев, то мы так баги будем неделями разбирать... Это только просто очень хорошее правило - не писать в реально работающем коде никакую чушь, - кажется - перекрестись и закоментируй
Представьте себе, что в проекте есть очень много работы с ХМЛем и в том числе с рефлекциями (т.е. когда мы описываем объект в какой-то дескриптор, в данном случае текстовый, а потом воссоздаем его из дескриптора). В такой ситуации мне очень даже часто может понадобиться именно "true", а не true - а с другой стороны, по запарке очень легко влепить и без кавычек - а потом ищи его...

Еще раз, вместо резюме: не пишите ерунду в работающий код, хочется написать ерунду - напишите и закоментируйте
__________________
Hell is the possibility of sanity

Старый 15.04.2009, 19:29
badun вне форума Посмотреть профиль Отправить личное сообщение для badun Найти все сообщения от badun
  № 55  
Ответить с цитированием
badun

Регистрация: Dec 2007
Сообщений: 269
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Представьте себе, что в проекте есть очень много работы с ХМЛем и в том числе с рефлекциями (т.е. когда мы описываем объект в какой-то дескриптор, в данном случае текстовый, а потом воссоздаем его из дескриптора). В такой ситуации мне очень даже часто может понадобиться именно "true", а не true - а с другой стороны, по запарке очень легко влепить и без кавычек - а потом ищи его...
Неудачный пример, все в порядке будет без кавычек .

Старый 15.04.2009, 20:48
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 56  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
badun, тоесть у Вас ( "true" == true ) == true ?

Старый 16.04.2009, 11:34
badun вне форума Посмотреть профиль Отправить личное сообщение для badun Найти все сообщения от badun
  № 57  
Ответить с цитированием
badun

Регистрация: Dec 2007
Сообщений: 269
Я же цитату привел, там вроде речь идет про XML, не?

Старый 16.04.2009, 13:43
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 58  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
badun, именно. в XML записано у Олега записано предположим так: <xml a="true" />.

Старый 16.04.2009, 18:56
badun вне форума Посмотреть профиль Отправить личное сообщение для badun Найти все сообщения от badun
  № 59  
Ответить с цитированием
badun

Регистрация: Dec 2007
Сообщений: 269
Вот этот xml все-равно как читать xml.@a == true или xml.@a == "true" (старых XML-классов не касается).

update: но преобразование Boolean(xml.@a), сработает неадекватно, как для обычной строки.


Последний раз редактировалось badun; 16.04.2009 в 19:04.
Старый 16.04.2009, 19:50
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 60  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
badun, действительно. на взгляд это бага

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.