|
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Ну вот, поехали. Каждый со своей колокольни.
Я разве говорил о законченном коде? Нет. На первых этапах я часто переписываю какие-нибудь детали. Или же запоминаю, что мне нужно сделать. Если я буду писать TODO каждый раз, когда что-то пишу, то скорость написания упадёт, пожалуй, раза в полтора. И по-моему, это излишество - писать TODO для той вещи, которую я собираюсь реализовать через пару часов. Когда я плотно работаю со своим же собственным кодом - мне TODO не нужны. Естественно, что когда код уже оформлся и я точно знаю, что из него получится - я снабжаю отдельные элементы комментариями, а не if (true). Но если данная часть кода мне ещё самому точно не известна - то написание комментариев только вводит в заблуждение. "Плохой комментарий хуже его отсутствия" (автора забыл, но программист уважаемый). Нет ничего глупее, чем поверить комментарию, который ты забыл перенести или же подредактировать после того, как что-то изменилось. Отлично. Именно это я и хотел услышать. Тем не менее выражение true == true не противоречит логике. Точно так же как и (true == true) == (true == true) тоже логике не противоречит. В этом и была суть вопроса. На каком основании компилятор выдаёт ошибку, если мой код ошибок не содержит? На основании best practices? Как-то... странно это. Поэтому я и хотел узнать, откуда уши растут у этого явления. Цитата:
Я же говорил о рабочем процессе. Уверен, что вы тоже свой код не за один заход сразу начисто пишите. И уверен, что тоже не по каждому случаю подробные TODO пишите. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Stargazer, ваш код хоть раз уходил больше, чем за 500 строк?
У меня в чаще всего в проекте около 20-30 классов, у каждого от 200 до 1000 строк кода. Я открываю какой нибудь класс - и я не понимаю, что я там писал, я отдаленно помню, что какой метод возвращает и что какая функция делает. Когда я сдам проект - через неделю уже я не буду помнить в этом проекте ровно ничего. Без комментариев я разбираться буду очень долго, даже в своем коде. А если проект будет больше? Я напишу какой нибудь "костяк" проекта, и начну вокруг него обращивать все больше и больше. Все кости я сразу не напишу, заказчик как правило требует "глядеть на результаты работы", а выдача текстом ему не очень нравиться. И вот тут я поставлю TODO - то, к чему вернусь через неделю работы. Про сравнение true==true==true while true!=false. Циклы теперь будем писать так: (условие если mc.x<200, то двигаем вправо) А ещё лучше так С точки зрение логики правильно. А я бы написал вот так: Все 3 кода не противоречат логике и вполне ясны, только вы сделали за компилятор работу, сэкономив ему процессорное время. Из жизни пример мм... Дана матрица. Нужно найти её корни и подставить куда нибудь. Вы нашли корни, например крамером и уверены, что они 100% правильные. Можно сразу их подставить, а можно подсчитать их ещё и гауссом, что вы и делаете. Вам этого кажеться мало и вы пытаетесь их ещё и угадать. Угадали. 3 одинаковых результата в 3 случаях. Если вы фанат этого дела - ради бога. Но компилятор на основании отсутствия у него шизофрении (хотя, пишу сейчас проект на ас2 и сильно в этом сомневаюсь) говорит мол, хозяин, а может один раз корни нашел - и больше ненадо?..
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Конкретно на флеш мой код уходил за 5000 строк (в сумме) и содержал около 10 классов.
На делфи мои проекты, бывало, уходили за десятки тысяч строк кода и содержали десятки классов. К сожалению, с делфи дороги разошлись. Цитата:
Цитата:
P.S. Далеко уехали от изначальной темы. Флуд со своей стороны я прекратил. Последний раз редактировалось Stargazer; 07.04.2009 в 16:42. |
|
|||||
Modus ponens
|
Компилятор выдает ошибку не потому, что код не логичный, а потому, что пытается предотвратить ошибку сделаную по невнимательности. Точно так же вам будут выдаваться предупреждения, если вы будете использовать некоторые имена для функций бывшие очень популярными в АС2 - например onEnterFrame - т.е. таким образом он пытается предотвратить какую-нибудь явную глупость написаную по невнимательности.
И, это, в проекте над которым сейчас работаю (нас 2 человека теперь уже трудиться больше 300 классов... строки не считал... так вот если писать дурацкий код вместо коментариев, то мы так баги будем неделями разбирать... Это только просто очень хорошее правило - не писать в реально работающем коде никакую чушь, - кажется - перекрестись и закоментируй Представьте себе, что в проекте есть очень много работы с ХМЛем и в том числе с рефлекциями (т.е. когда мы описываем объект в какой-то дескриптор, в данном случае текстовый, а потом воссоздаем его из дескриптора). В такой ситуации мне очень даже часто может понадобиться именно "true", а не true - а с другой стороны, по запарке очень легко влепить и без кавычек - а потом ищи его... Еще раз, вместо резюме: не пишите ерунду в работающий код, хочется написать ерунду - напишите и закоментируйте
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Dec 2007
Сообщений: 269
|
Цитата:
|
|
|||||
стервочка (я мужик)
|
badun, тоесть у Вас ( "true" == true ) == true ?
|
|
|||||
Регистрация: Dec 2007
Сообщений: 269
|
Я же цитату привел, там вроде речь идет про XML, не?
|
|
|||||
стервочка (я мужик)
|
badun, именно. в XML записано у Олега записано предположим так: <xml a="true" />.
|
|
|||||
Регистрация: Dec 2007
Сообщений: 269
|
Вот этот xml все-равно как читать xml.@a == true или xml.@a == "true" (старых XML-классов не касается).
update: но преобразование Boolean(xml.@a), сработает неадекватно, как для обычной строки. Последний раз редактировалось badun; 16.04.2009 в 19:04. |
|
|||||
стервочка (я мужик)
|
badun, действительно. на взгляд это бага
|
Часовой пояс GMT +4, время: 21:03. |
|
« Предыдущая тема | Следующая тема » |
|
|