![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Какими подходами???? Если программисту не очевидно, что х&1 дают последний бит, то с ним в любом случае сработаться будет тяжело. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 3 Всего: 106 |
Зри в корень! Отсюда все и начинается. Думаешь ты один такой? ) Наивный...
Оптимизация типа х&1 или (!(id+1)) и т.п. - это болезнь, от которой нужно поскорее избавляться, если ты хочешь прославиться программистом. Все через неё проходят, ты не первый. Возможно меня поддержат профессионалы, если увидят. До сих пор вижу код, который нспещрен примочками типа встроенного ассемблера, сажусь разбирать - чушь полнейшая, которая либо заменяется парой строк на си, либо работает только при ограничениях на оптимизацию, (т.е. из за долбанного куска асма приходится отказываться от скорости исполнения остального кода). Раньше любой школьник, который хоть мало-мальски интересовался кодингом мог подглядеть, содрать, украсть очередную примочку и всем хвастаться: какой он молодец. Но этот бум давно прошел, сейчас рынок труда не терпит такого издевательства, такие грамотеи отсеиваются элементарной конкуренцией, а програмное обеспечение уже давно ушло за рамки асма, невозможно сейчас просто даже вручную посчитать элементарную програмку с использованием различных наворотов типа ASP, с импортом библиотек от различных производителей, даже если ты супер-пупер классно этот асм знаешь. Поэтому большое значение имеет компилятор, которым пользуется разработчик; насколько велики его возможности оптимизировать код; насколько перспективно его дальнейшее развитие в ногу со временем. Это все и даже больше имеет значение при разработке сегодняшнего софта. Я сделал свой выбор и не жалею. А по поводу "очевидно", возможно, это простой пример, но когда сидишь дома, пытаешься разобраться в серьезном коде такие вот примочки тормозят процесс бывает на час-два, а то и день выпадает, например, ты используешь простую проверку на ноль, а число знаковое, оно пустое, но знак выставлен, вроде все нормально, но проверка не проходит, пока найдешь это место, потеряешь время, выясняется - просто програмер решил соптимизировать, он же не думал, что знак - тоже бит. Вот такие вот пироги бывают... Так что, зрите в корень! -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
bel_nikita |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Вот, сам же говоришь оптимизация второстепенный вопорос, ну так возьми пару компиляторов и посмотри на код по-дефолту:
увидишь там операцию div ![]()
Если над проектом будут работать люди, которые задумываются над операциями &,|,%, и при проверке целого на четность используют деление, то ни о каком срабатывании и речи быть не может. |
||||||
|
|||||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Так, налицо конфликт поколений
![]() Код типа x&1 - это не оптимизация, а привычка (со времен, когда компьютеры были большими и медленными, а компиляторы - не такими умными): думаешь "взять остаток от деления на 2", а руки сами пишут "&1". И чего ради перучиваться? Чтобы молодые "высокоуровневые" програмисты не напрягались? Так и им полезно знать кое-что о битах... В конце концов, дело вкуса. А уж бездарный и излишне замудренный код можно написать и без всякого ассемблера. Сейчас это даже "проще", с шаблонами и TMP: смотришь битый час на код из полутора сотен шаблонных классов, пока поймешь, что аффтар просто излишне увлекается TMP. -------------------- ... |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
GremlinProg,
Ну-уу, если тебя вводят вступор такие операции, как х&1 или (!(id+1)), то что же ты пишешь? ![]() Это сообщение отредактировал(а) bel_nikita - 24.7.2006, 14:43 |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
GremlinProg, во первых на "ты" мы не переходили.
Во вторых если к этому делу уже серьёзно подходить, то правильно будет писать: if is_even(x) { ... } Поскольку оценивая операцию х%2 можно именно узнать, какому значению равен остаток от деления. То что ответ 0 означает деление нацело - уже оптимизатия программиста (и по Вашей теории). (как видим со всем можно перестарться) Добавлено @ 14:46 Вообще, всё зависит от определения. Один определяет чётность отсутсвием остатка при делении на число 2, другой результатом булевой операции & переменной с числом 1. Кто из этих двух больший проффессионал - на Вам судить. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 3 Всего: 106 |
Неохота спорить, да и не нужно мне это.
По DDK - это вообще отдельная тема, зря ты её трогаешь, нет еще полноценного компилятора для разработки драйверов. Могу только посоветовать хорошую книжку Солдатова Программирование драйверов Windows. Изд. 2-е, перераб. и доп. — М.: ООО "Бином-Пресс", 2004 г. — 480 с: ил. Здесь он очень хорошо расписал, что можно, а что нельзя.
Похоже ты не понял, о чем я говорил. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
Млин, а создал то простую тему с простым вопросом, возникшем в результате торможения после тяжелого вечера!
Ну вы молодцЫ конечно, начали за здравие, закончили за упокой! ЗЫ: если вам интерестно мое мнение, хоть я в етом я уже оч сильно сомневаюсь, так вот, если вам интерестно мое мнение - то
намного красивше и читаеться с ходу, а вот вариант с & заставил на секундочку тормознуть ![]() Может голосование устроим? -------------------- Never again... |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 3 Всего: 106 |
Earnest, похоже вы правы, согласен. Именно об этом я и говорю: время - деньги, но голова-то одна на плечах и она изредка раскалывается от излишней рьяности перспективных программистов доказать свою значимость, превосходство, показать как можно больше из того, что он знает. Это конечно не плохо, только девелопер не должен особо переживать по поводу подтверждения своей квалификации. Быть может дело в гармонах?
Добавлено @ 15:04 Nuzur, программирование - это искусство, в нем тоже должна быть красота.
хоть кто-то понял, о чем я битый час говорю. Молодец, садись, пять, давай зачетку ) Это сообщение отредактировал(а) GremlinProg - 24.7.2006, 15:08 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
![]() А я DDK и не трогаю. Причем тут DDK и книжка? ![]() ![]() |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 3 Всего: 106 |
Профессия в первую очередь подтверждается временем, это я и имел в виду под словом "профессионал".
похоже, ты вообще ни чего не трогаешь, только шум поднимаешь. про это речи не было , а книжку я посоветовал потому, что в нех понятным языком разъяснены особенности разработки драйверов конкретно в VS и конкретно для Windows. По моему я ни кого не дезинформировал. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 1 Всего: 14 |
Да господа, как сказал Nuzur, начали за здравие, а закончили за упокой. Вы здесь обсуждаете разные привычки написания кода. Кому-то проще и понятнее писать x&1, кому-то x%2. Не вижу смысла этого спора, всё равно все останутся при своём мнении.
Красота дело относительное. Кому-то нравится больше x%2, кому-то x&1 ![]() Код прежде всего должен быть понятным, а эффективность это дело тоже относительное ![]() ![]() Это сообщение отредактировал(а) ptr - 24.7.2006, 15:39 -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Именно, ptr. Вот ведь нашли мировую проблему, о чем спорить, да еще и на личности переходить! GremlinProg, я понимаю, что ты хотел сказать: только ведь нет абсолютного критерия: что русскому красиво, то немцу смерть. (Это я ни в коем случае не намекаю на место жительства sergej.z, просто пословица такая... ![]() Т.е. один программист увидит трехэажный boost::bind и скажет "вау!", а другой скажет: "убить бы гада, который это написал". Да что там говорить: чужой код, в котором приходится разбираться, почти всегда раздражает: не алгоритмом, так именами, не именами так расстановкой скобочек... Не надо злится, надо просто сказать себе: "что же делать, не все же такие умные как я, пишут как могут, и на том спасибо..." ![]() -------------------- ... |
|||
|
||||
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: нет Всего: 5 |
Модераторы перенесите тему в релизиозные войны пожалуйста
![]() -------------------- Never again... |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Не вижу ничего плохого в спорах. На то он и форум. (Переубедите меня) Вот пример, что можно вдоволь поспорить (к тому же "на религиозную тему"), каждому остаться при своём мнении абсолютно не переходя никакие рамки приличия и остаться друзьями. http://forum.vingrad.ru/index.php?showtopic=35267 Ну это уже жизнь и эволюция темы. Одному человеку она не подвластна ![]() Узнал ответ на свой вопрос? Вот и отлично! А во что она превратится после этого - решают её участники. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |