Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Книги / Литература
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 26.02.2014, 00:05
big_djo big_djo вне форума
Прохожий
 
Регистрация: 21.02.2014
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Согласен ляпы есть.


Цитата:
2. Примеры довольно странные. форма, которая меняет цвет и размер, когда её передвигают. Почему вы рисуете на форме, а не на панели (или на PainiBox)? Ведь Delphi не для того, чтобы создавать приколы. Есть стандартные задачи: текстовый/графический редакторы, обработка файлов, базы данных, связь по сети, вычисления и графики, алгоритмы (сортировка и проч.). Для начала надо показать, как правильно делать интерфейс (меню, поля информации, кнопки управления) и какими средствами решать типовые задачи.

Пример с формой чтобы демонстрировать обработку сообщений наглядно, мы двигаем форму и вот оно! генерируется сообщение и обрабатывается.
Форма взята для простоты, думаю это не принципиально на чем рисовать.




Цитата:
3. Следите, пожалуйста, за русским языком. Напр., в фразе "недолжно быть" "не" пишется отдельно. Следите за логикой. Напр.: "компонент называется (является) объектом". Термин "объект" вы пояснили, но забыли пояснить термин "компонент". "Можно отлавливать нежелательные события": если они нежелательные, то зачем их отлавливать? Просто не ставить для них обработчики. Timer.Enable=false вы считаете недоступным, но не надо переводить буквально, просто таймер останавливается (перестают вызываться обработчики OnTimer). И т.д.

За проверку орфографии отвечают также и в издательстве перед печатью, наверное пропустили.
С компонентом да , не дал определение.


Цитата:
4. Анг. язык. Почему вы использовали 'drug', что означает "лекарство, наркотик"? "Перетащить и бросить" это Drag&Drop. (При этом вы не рассказываете об автоматической схеме Drag&Drop - опять же, логика хромает).

не обратил внимание на это, надо будет исправить. Возможно да, надо было бы привести автоматической схеме Drag&Drop.


Цитата:
6. Насколько я понимаю, книга для новичков. Но вы довольно глубоко копнули, допустим, dll, messages, API. Вот вы привели код TApplication.CreateForm. Неужели новичок его поймёт? Я сам не стал разбираться.
Думаю на конкретных простых примерах новички смогут разобраться. И я это уже испробовал на многих студентах.


Цитата:
7. Ещё странная логика. Почему, если нет корней в квадратном уравнении, то надо аварийно закрывать программу (halt)? Почему не выдать сообщение "Корней нет, т.к. дискриминант отрицательный"?
Почему для сообщения вы используете то ShowMessage, то MessageDlg?

Уже увидел это когда отправил в печать. halt лишний. Насчет фразы "Дискриминант отрицательный" думаю это излишне, достаточно просто "Корней нет".

Цитата:
8. Визуальные компоненты на палитре не называются Edit1, Button1, называйте их TButton или Button.
Это сделано для упрощения, но замечание правильное.

9. То, что выбрана Delphi7 это хорошо (т.к. если использовать XE5, то лучше переходить на FireMonkey), но используйте реалии сегодняшнего дня: во-первых, CLX вы не сможете использовать (как я только что указал, для кроссплатформенных систем используется FireMonkey), во-вторых, старые hlp-файлы справки новые Windows по умолчанию не поддерживают, так что надо было бы указать как решать эту проблему.

Цитата:
Общий совет такой: если вы приводите свой вариант, то намекните, что существуют и другие решения. Напр. if CheckBox.Checked=T then Timer.Enable:= T else Timer.Enable:= F можно было упростить:
Timer.Enable:= CheckBox.Checked.
Почему вы пишете if L= true then? Это вы у Сишников насмотрелись? Можно писать покороче: if L then (L - логическое выражение).
Это тоже уже пофиксил.

Цитата:
Есть ещё куча замечаний, но рука устала писать.

Спасибо за замечания, я собираюсь сделать новую верисю книжки, тщательно пересмотрю код, и учту все замечания.
Ответить с цитированием
  #17  
Старый 26.02.2014, 00:47
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от AlexSku
...Почему вы пишете if L= true then? Это вы у Сишников насмотрелись? Можно писать покороче: if L then (L - логическое выражение)...
А я вот здесь поддерживаю автора, явное указание состояния флажка более наглядно, для новичков ведь примеры приводятся, а неофит просто обязан быдлокодить, не пройдя сквозь понимание того как надо и как не надо полноценным кодером ему стать будет трудно. Наберётся опыта и "= true" само собой отвалится

По книге. Извините, такую не куплю - она мне просто не нужна, посмотрел мельком представленный материал - нового там ни чего не заметил, в смысле ну чтоб прям "Ах! А мужики-то и не знают!", да во всех книгах одно и тоже в принципе обмусоливается, что поделаешь, на этом поприще сложно влить чего-то новенького. Подобных книг в доме за 12 лет со дня выхода D7 накопилась уже целая полка, и ставить туда ещё одну смысла нету. Вот если бы была книга про ХЕ5, как и чем бодяжить сборки под яблоко или дрона, такое вот могло бы в принципе сподвигнуть к покупке и книги, и описываемой в ней СР. Думаю за этим будущее. Прошу прощения, имхо
Ответить с цитированием
  #18  
Старый 26.02.2014, 02:56
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Alegun
А я вот здесь поддерживаю автора...
И зря, нужно сразу приучать новичков к правильному стилю программирования.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #19  
Старый 27.02.2014, 01:01
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Вот ещё кое-что.
1) Немного о среде программирования (IDE). Можно написать, что её можно настраивать под себя. Напр., из панели инструментов я убираю ненужные, добавляю те, что часто использую (New VCL App, Open Proj, Open..., Save All, Compile, Run; во второй строке, напр. Align), да ещё и не забывать вставлять разделители между группами. У формы удаляю изображение сетки (привязку к узлам оставляю). Для запуска (F9) ставлю опцию минимизации окон. Список свойств в Object Inspector можно делать не только по алфавиту, но и по группам. Есть полезные окна для отладки. При размещении элементов их удобно выравнивать (Align).

2) Можно менять не только названия компонентов (вы пишете, что у простых проектов имена не меняют, но правильнее всё-таки давать осмысленные названия для компонентов с обработчиками, а вот для, напр., Label можно и не менять), но и название unit'ов. Названия форм должно отражать их назначение, напр.: fmMain, fmAbout. Можно было отметить, что название проекта перейдёт в название программы (исполняемый файл exe), поэтому и тут лучше не Project1, а что-то поинформативнее (SimpleControls, Painting, FunCharts...)

3) Хотя для вывода текста вы использовали Label, но можно было указать, что есть Static Text c рамочкой, а вместо пары Label-Edit можно использовать LabeledEdit. Применив Button, можно было упомянуть и о кнопках с графикой: BitButton, SpidButton, а также ToolButton с панелями.

4) Программа. Вы упомянули о комментариях, но привели пример только для //. А вот для {} пример не дали, хотя новичок должен знать, что в первом случае комментарий после //, а во втором - между {}. Для красоты // лучше отделять пробелами (табуляцией), а не ставить впритык к команде.

5) Глобальную переменную X: Integer вы написали в той же строке, что и Form1. Опять же, для красоты хоть бы переместили её на новую строку. Хоть вы и сказали, что она над словом implementation, но логичнее было пояснить, что сначала идёт секция интерфейса (interface), для чего она нужна, что описания типов, констант, переменных и заголовки функций и процедур могут быть в любом месте, лишь бы ссылки (использование) на идентификатор были ниже описания.

6) Примеры. Зачем было переписывать WndProc, чтобы узнать коды клавиатур? Проще использовать стандартные обработчики OnKeyPress, OnKeyDown. Мой вам совет: почитайте "Delphi для чайников" Кернигана, там много примеров и они более осмысленные.

7) БД. "База данных состоит из записей...Базу данных удобно представить в виде таблицы." А вот мне казалось, что база данных состоит из таблиц (и прочих объектов таких как индексы, виды (view), курсоры, триггеры, хранимые процедуры...), а уже таблица состоит из записей.
"Каждая запись содержит информацию об одном экземпляре." Экземпляре чего?
Лучше бы было в ведении отметить что в основном приходится работать с двумя типами баз данных: простыми файловыми (они часто называются реляционными) и с серверами (эти называются распределёнными).
"номер строки таблицы – номер записи." Вот на эти номера надо поменьше обращать внимание. Порядок вывода определяется текущим индексом или словом ORDER BY в операторе SELECT. Тем более, плохой тон выводить всю базу, надо использовать фильтр.
Ответить с цитированием
  #20  
Старый 15.03.2014, 17:24
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

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

Цитата:
Сообщение от AlexSku
1) Немного о среде программирования (IDE). Можно написать, что её можно настраивать под себя.
Слово "нужно" тут написано с ошибками. Далее по тексту тоже.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #21  
Старый 15.03.2014, 18:18
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп:

Цитата:
Сообщение от Freeman
На твоем месте я бы поостерегся давать такие советы. Представь, что в вашей автосигналке (или как ее там?) придет какой-то умник и начнет учить направо и налево: мол, сделай тяп-ляп, лишь бы работало, ты же новичок, нехай провода изо всех дыр торчат... Понравилось ли бы тебе потом работать с таким "специалистом"?...
СТО называется, сейчас как раз на работе и только что вылез из-под клиентского капота - раньше вешал кембрики на провода с мнемонической разводкой, теперь использую радиометки: ученики мои тоже с ярлычков начинают, так нагляднее, как дойдут до понимания процесса, вот тогда можно им более простой способ показывать, а иначе нельзя :-) Прошу прощения у ТС за флуд, извнт пжлст
Ответить с цитированием
  #22  
Старый 28.01.2015, 20:52
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Не читал конкретное издание, но...
Основная беда большинства подобных изданий, это перепечатка уже имеющихся решений, статей. Посмотришь что там действительно авторского, а ничего и нет. Большие, наполненные ненужными рассуждениями разделы без реальной конкретики. А вот действительно, ценных, с точки зрения предложенных алгоритмов, решений или каких-то скрытых особенностей, такой литературы и не сыщешь. Не секрет, что 99% знаний и умений получаешь не читая эту муть, уж простите, а ковыряясь в чужих исходниках, форумах.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #23  
Старый 14.09.2015, 10:39
dreindeimos dreindeimos вне форума
Заблокирован
 
Регистрация: 04.06.2015
Сообщения: 12
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Зря вы обсираете, довольно неплохо! Тс молодец!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter