Re[4]: Одна из лучших книг по програмированию.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 07.07.08 13:00
Оценка: +1 -1
Здравствуйте, elmal, Вы писали:

E>Дает советы, дает аргументацию. Согласен с аргументацией — принимай к сведению. Не согласен, имеешь контраргумент — не используй. Всегда надо подвергать мнения любых авторитетов сомнению. Главное, что в книге достаточно и аргументов, и советов. Причем весьма неплохих.


Сложно это оценить, поскольку объем книги очень большой, а вот сухой остаток -- невелик. Была бы книга при том же количестве советов раза в три тоньше, тогда можно было бы ее положительно оценивать.

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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: Одна из лучших книг по програмированию.
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 07.07.08 14:28
Оценка:
Здравствуйте, eao197, Вы писали:

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


проблема, решение которой он упоминает в книге — разгон первой "реализации в лоб" в 60 раз
... << RSDN@Home 1.2.0 alpha 4 rev. 1090>>
Re[6]: Одна из лучших книг по програмированию.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 07.07.08 14:46
Оценка: 4 (1) +2
Здравствуйте, Odi$$ey, Вы писали:

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


OE>проблема, решение которой он упоминает в книге — разгон первой "реализации в лоб" в 60 раз


Прочитав то, что он пишет:

Этот алгоритм шифрования так хитер, что иногда кажется, что он сам зашифрован. Моя цель состояла в том, чтобы файл объемом 18кб шифровался на IBM PC за 37 секунд. Первая реализация алгоритма выполнялась 21 минут 40 секунд, так что мне предстояла долгая работа.

я не понял двух вещей:
— что сложного в алгоритме DES (не в математическом аппарате, а именно в алгоритме), что заставило МакКоннела писать о хитрости алгоритма? (Описание самого алгоритма с рисунками занимает в FIPS 46-3 всего несколько страниц).
— как можно было написать реализацию DES-а, чтобы 18K данных шифровались 21 минуту? Пусть даже это реализация в лоб и на IBM PC XT. Нужно только вдуматься: 18Kb за 21.40 (т.е. по 14.5 байт в секунду). Это при том, что DES оперирует 8-ми байтовыми блоками. Т.е. один блок за 0.5 секунды.

Да уж, эти люди запрещают мне ковыряться в носу.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Одна из лучших книг по програмированию.
От: minorlogic Украина  
Дата: 07.07.08 19:13
Оценка:
А ты агностиком становись , не живи исходя из веры авторитету а просто отталкивайся от логики.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[7]: Одна из лучших книг по програмированию.
От: Gluk_Kazan  
Дата: 08.07.08 06:11
Оценка: :)
Здравствуйте, eao197, Вы писали:

E>я не понял двух вещей:

E>- что сложного в алгоритме DES (не в математическом аппарате, а именно в алгоритме), что заставило МакКоннела писать о хитрости алгоритма? (Описание самого алгоритма с рисунками занимает в FIPS 46-3 всего несколько страниц).
E>- как можно было написать реализацию DES-а, чтобы 18K данных шифровались 21 минуту? Пусть даже это реализация в лоб и на IBM PC XT. Нужно только вдуматься: 18Kb за 21.40 (т.е. по 14.5 байт в секунду). Это при том, что DES оперирует 8-ми байтовыми блоками. Т.е. один блок за 0.5 секунды.

IBM PC это которая была до XT ?
Сложность в том, что для DES-а надо было раскидать переменные по регистрам (которых совсем не много)
то что реализация влоб работала на PC 20 минут верю
Еще могу рассказать, что во времена уже XT, в нашей стране, была проблема с реализацией ГОСТ 28147—89
Не удавалось написать программную реализацию, работающую с приемлимым быстродействием (регистров не хватало),
пока не появились 386-е порешавшие все проблемы кэшем

Так что, не торопитесь судить
Re[8]: Одна из лучших книг по програмированию.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 08.07.08 07:03
Оценка: +1
Здравствуйте, Gluk_Kazan, Вы писали:

E>>- что сложного в алгоритме DES (не в математическом аппарате, а именно в алгоритме), что заставило МакКоннела писать о хитрости алгоритма? (Описание самого алгоритма с рисунками занимает в FIPS 46-3 всего несколько страниц).

E>>- как можно было написать реализацию DES-а, чтобы 18K данных шифровались 21 минуту? Пусть даже это реализация в лоб и на IBM PC XT. Нужно только вдуматься: 18Kb за 21.40 (т.е. по 14.5 байт в секунду). Это при том, что DES оперирует 8-ми байтовыми блоками. Т.е. один блок за 0.5 секунды.

G_K>IBM PC это которая была до XT ?

G_K>Сложность в том, что для DES-а надо было раскидать переменные по регистрам (которых совсем не много)
G_K>то что реализация влоб работала на PC 20 минут верю

А вот я не верю, потому что на XT доводилось матрицы обращать и перемножать. И делалось это с гораздо большей скоростью. Так что не верю я в то, что на пороцессоре 8086 шестнадцать операций логического сдвига + несколько битовых перестановок для 8 байт выполнялись за 0.5 секунды. Разве что каждый сдвиг сопровождался отладочной печатью.

Насколько я знаю, DES был специально отобран среди конкуретнов в качестве национального стандарта США именно потому, что его алгоритм допускал эффективную реализацию даже на ограниченных ресурсах. Чему со временем я увидел убедительное доказательство: на SIM картах некоторых производителей еще 7-8 лет назад было реализовано шифрование DES. Которое работало с гораздо большей скоростью, чем в первой версии МакКонелла. А аппаратных ресурсов на встроенных в SIM карты Java-процессорах было явно меньше, чем на IBM PC.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: Одна из лучших книг по програмированию.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 08.07.08 07:12
Оценка: +1
Здравствуйте, minorlogic, Вы писали:

M>А ты агностиком становись , не живи исходя из веры авторитету а просто отталкивайся от логики.


когда по отношению к одной и той же книге ты говоришь:

Очень много практики , показывает в какую сторону необходимо думать при написании кода.

а следом

не живи исходя из веры авторитету а просто отталкивайся от логики.

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

Хороший пример -- книга Кернигана и Пайка "Практика программирования"
Автор(ы): Брайан Керниган, Роб Пайк
Издательство: Вильямс
Цена: 301р.

Вашему вниманию предлагается перевод на русский язык исправленного и дополненного издания (уже восьмого по счету) популярной книги, вышедшего из печати в январе 2004 года. Верификацию кода в русском издании выполнили сами авторы книги — Брайан
. При ее чтении нет никакого сомнения в профессионализме авторов.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Одна из лучших книг по програмированию.
От: Gluk_Kazan  
Дата: 08.07.08 07:28
Оценка:
Здравствуйте, eao197, Вы писали:

E>А вот я не верю, потому что на XT доводилось матрицы обращать и перемножать. И делалось это с гораздо большей скоростью. Так что не верю я в то, что на пороцессоре 8086 шестнадцать операций логического сдвига + несколько битовых перестановок для 8 байт выполнялись за 0.5 секунды. Разве что каждый сдвиг сопровождался отладочной печатью.


И хождение в память за переменными. Причем, если судить по приведенным примерам
(книгу не читал), то на каком нибудь GW Basic-е. В общем про 20 минут верю.
Был у нас один перец с дипломом. Перемножал два больших числа на XT
Влоб. Естественно времени ему не хватало, НО он нашел ВЫХОД
Он написал программульку так, чтобы она вычисляла его бред в периоды простоя
от пользователей, а также слезную просьбу запускать ЭТО, когда Вы уходите,
а не гасить машину. Не знаю чем дело кончилось, конца этого вычисления века
я не застал.
Re[10]: Одна из лучших книг по програмированию.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 08.07.08 07:46
Оценка:
Здравствуйте, Gluk_Kazan, Вы писали:

E>>А вот я не верю, потому что на XT доводилось матрицы обращать и перемножать. И делалось это с гораздо большей скоростью. Так что не верю я в то, что на пороцессоре 8086 шестнадцать операций логического сдвига + несколько битовых перестановок для 8 байт выполнялись за 0.5 секунды. Разве что каждый сдвиг сопровождался отладочной печатью.


G_K>И хождение в память за переменными. Причем, если судить по приведенным примерам

G_K>(книгу не читал), то на каком нибудь GW Basic-е.

В книге он приводит последовательность шагов, которые он предпринял для повышения производительности. Самый первый пункт: Преобразование битовых полей в массивы. Сомневаюсь, что это можно было сделать на GW Basic-е.

G_K>В общем про 20 минут верю.


Была со мной такая история: пришел к нам парнишка на испытательный срок с опытом программирования после ВУЗ-а где-то два года. Дали ему задачку, в которой требовалось поднять из БД порядка 40-50 тысяч записей, выполнить в памяти для них сортировку по специальному критерию и получить готовую к дальнейшей обработке последовательность. Через три недели он приносит реализацию. Говорит, что мол все работает правильно, но на при 40K записей сортировка что-то сильно тормозит и что делать с этим не понятно. При том, что сортирует он методом пузырька.

Теперь этот парнишка работает в крупной буржуинской конторе, на хорошем счету там, ездит в загранкомандировки и пр. Только вот если он когда-нибудь напишет бестселлер вроде "Совершенного кода", я вряд ли захочу прочитать эту книгу.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Одна из лучших книг по програмированию.
От: Gluk_Kazan  
Дата: 08.07.08 08:47
Оценка:
Здравствуйте, eao197, Вы писали:

E>В книге он приводит последовательность шагов, которые он предпринял для повышения производительности. Самый первый пункт: Преобразование битовых полей в массивы. Сомневаюсь, что это можно было сделать на GW Basic-е.


Я же говорю, что не читал

E>Теперь этот парнишка работает в крупной буржуинской конторе, на хорошем счету там, ездит в загранкомандировки и пр. Только вот если он когда-нибудь напишет бестселлер вроде "Совершенного кода", я вряд ли захочу прочитать эту книгу.


Та же фигня. Знаю одного страшного консультанта Oracle Презентухи лепит почем зря
Недавно наврал, что TimesTen версионник, ага (я даже сначала поверил)
Жисть вообще не справедливая штука ...
Re[5]: Одна из лучших книг по програмированию.
От: BokiyIS  
Дата: 12.07.08 19:05
Оценка: +1
Насчет goto и des вы правы, не спорю. Но я был бы очень признателен, если бы вы мне показали хорошую альтернативу книги МакКоннелла, которая бы охватывала такой же круг вопросов. Пусть это будет не одна книга, пусть несколько.
Я не говорю, что таких книг нет, просто интересно было бы на них посмотреть и сравнить с "Совершенным кодом".

Ещё добавлю, что уже много раз слышал о том, что МакКоннелл попса, его стоит читать только самым маленьким и т.д. Но, к сожалению, код многих "зубров", в плане читабельности и поддержки не выдерживает никакой критики.

З.Ы. Достоинство книги не только в содержании, но и в том, что она собрала под одной крышей многие вопросы конструирования.
Re[6]: Одна из лучших книг по програмированию.
От: BokiyIS  
Дата: 12.07.08 19:16
Оценка:
BIS>З.Ы. Достоинство книги не только в содержании, но и в том, что она собрала под одной крышей многие вопросы конструирования.

Бррр. Фигню написал. Имел в виду, что достоинство книги в том, что агрегирует многие вопросы конструирования.
Re[6]: Одна из лучших книг по програмированию.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.07.08 06:36
Оценка: +1
Здравствуйте, BokiyIS, Вы писали:

BIS>Насчет goto и des вы правы, не спорю. Но я был бы очень признателен, если бы вы мне показали хорошую альтернативу книги МакКоннелла, которая бы охватывала такой же круг вопросов. Пусть это будет не одна книга, пусть несколько.

BIS>Я не говорю, что таких книг нет, просто интересно было бы на них посмотреть и сравнить с "Совершенным кодом".

Сложный вопрос. Я никогда не вел учет книг, которые бы повлияли на мой стиль программирования и на подходы к проектированию/кодированию/тестированию. Но, если попытаться вспомнить, то вот книги, которые определенно оказали на меня положительное воздействие (названия и авторов воспроизвожу по памяти, поэтому могут быть ошибки):

Никлаус Вирт, "Алгоритмы + структуры данных = программы".
Гради Буч, "Объектно ориентированный дизайн и проектирование".
Бьярн Страуструп, "Язык программирования C++" (начиная со второго издания этой книги в нее входят несколько глав, посвященных проектированию и конструированию программ; как мне помнится, часть этих рекомендаций применима к любому языку программирования, не только C++).
Бертран Мейер, "Объектно-ориентированное конструирование программ".
Кент Бек, "Экстремальное программирование".
Дэйв Томас и Энди Хант, "Programming Ruby" (как погружение в программирование на динамически-типизированных языках, в частности duck typing).
Диссертация Джо Армстронга о разработке надежного ПО.

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

BIS>Ещё добавлю, что уже много раз слышал о том, что МакКоннелл попса, его стоит читать только самым маленьким и т.д. Но, к сожалению, код многих "зубров", в плане читабельности и поддержки не выдерживает никакой критики.


Ну на меня в свое время сильное впечатление производили фрагменты кода Страуструпа в "Языке программирования C++" -- очень хорошее сочетание минимализма, прагматизма и функциональности. Код Вирта, помнится, вообще воспринимался как образец (но это было уже очень и очень давно).

BIS>З.Ы. Достоинство книги не только в содержании, но и в том, что она собрала под одной крышей многие вопросы конструирования.


У меня сложилось впечатление, что МакКоннелл все поднятые в книге вопросы обсуждает очень поверхностно (по крайней мере по тем главам, которые я прочел). И все это снабжено большим количеством воды и обилием цитат (которые может быть и интересны сами по себе, но уж очень сильно отвлекают во время чтения).

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

Так что я бы предпочел прочесть несколько книг других авторов (путь даже имеющих суммарно гораздо больший объем), чем обсуждаемый здесь толмуд МакКоннела.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Одна из лучших книг по програмированию.
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.07.08 15:31
Оценка:
Здравствуйте, eao197, Вы писали:

E> Почему он не рассматривал такие простые, но в то же время мощные вещи, как процедурное и структурное программирование --


Наверное потому что невозможно объять необъятное.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[5]: Одна из лучших книг по програмированию.
От: barn_czn  
Дата: 14.07.08 09:03
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, elmal, Вы писали:


E>>Дает советы, дает аргументацию. Согласен с аргументацией — принимай к сведению. Не согласен, имеешь контраргумент — не используй. Всегда надо подвергать мнения любых авторитетов сомнению. Главное, что в книге достаточно и аргументов, и советов. Причем весьма неплохих.


E>Сложно это оценить, поскольку объем книги очень большой, а вот сухой остаток -- невелик. Была бы книга при том же количестве советов раза в три тоньше, тогда можно было бы ее положительно оценивать.


нормальная книга, воды там налито только в первой части по поводу архитектуры ПО.. ну так эта тема всегда мутной была.

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


и что тут неприятного? я вот понятия не имею что такое DES, и когда читал то пропускал эти детали, DES — это всего лиш пример, важно извлеч метод решения проблемы, а не осуждать автора за то что он не выиграл олимпиаду по скорости кодирования DES . я просто читал и с чем то соглашался а с чем то нет. предыдущий собеседник правильно сказал: "Не согласен, имеешь контраргумент — не используй".
Re[6]: Одна из лучших книг по програмированию.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 14.07.08 09:18
Оценка: +1
Здравствуйте, barn_czn, Вы писали:

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


_>и что тут неприятного?


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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Одна из лучших книг по програмированию.
От: LordMAD Россия  
Дата: 14.07.08 16:30
Оценка: :))
Здравствуйте, eao197, Вы писали:

E>- как можно было написать реализацию DES-а, чтобы 18K данных шифровались 21 минуту? Пусть даже это реализация в лоб и на IBM PC XT. Нужно только вдуматься: 18Kb за 21.40 (т.е. по 14.5 байт в секунду). Это при том, что DES оперирует 8-ми байтовыми блоками. Т.е. один блок за 0.5 секунды.


E>Да уж, эти люди запрещают мне ковыряться в носу.

У Макконнелла говорится именно о IBM PC, а не об IBM PC XT. Т.е. на базе i8088 4.77MHz, объем RAM от 16 до 256 Kb, внешняя память — флоппари по 160 Kb. Так что это с учетом того, что 18Kb еще надо кусками в память грузить с флоппаря, очевидно.
Re[8]: Одна из лучших книг по програмированию.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 14.07.08 16:53
Оценка: 2 (1) :))) :)
Здравствуйте, LordMAD, Вы писали:

LMA>У Макконнелла говорится именно о IBM PC, а не об IBM PC XT. Т.е. на базе i8088 4.77MHz, объем RAM от 16 до 256 Kb, внешняя память — флоппари по 160 Kb. Так что это с учетом того, что 18Kb еще надо кусками в память грузить с флоппаря, очевидно.


Не, все было еще суровее -- он грузил данные с магнитофона. А до этого ему приходилось идти за магнитофоном пять километров в гору, пешком.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Одна из лучших книг по програмированию.
От: barn_czn  
Дата: 15.07.08 03:13
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, barn_czn, Вы писали:


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


_>>и что тут неприятного?


E>то, что учиться программированию хочется у людей, которые умеют это делать лучше меня.


спору нет. однако вывод о некомпетенции делать осторожно надо.
прочем воля ваша, не читайте Макконела, он же не DES не знает
Re: Стив Макконнелл. Совершенный код.
От: yev  
Дата: 30.07.08 14:32
Оценка:
Я недавно прочел эту книгу. Очень много полезной информации, оссобенно для начинающих программистов.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.