Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2014.10.05;
Скачать: [xml.tar.bz2];

Вниз

Я Написал Книжку по Делфи, хотел бы узнать Ваше мнение и отзывы   Найти похожие ветки 

 
big_djo ©   (2014-02-22 20:59) [0]

Здравствуете! Недавно я опубликовал книжку для начинающих программистов "Курс практического программирования в Delphi. Объектно-ориентированное программирование" в Москве в изд-ве "Солон-Пресс", был бы рад узнать Ваши мнения и отзывы


 
big_djo ©   (2014-02-22 21:03) [1]

Привожу ознакомительный вариант книжки. Приведены: Практическая работа №1 -полностью, остальные несколько работ частично.
http://yadi.sk/d/5SRgrCCTJMnwv


 
Дмитрий СС   (2014-02-22 21:31) [2]


Для обучения и освоения объектно-ориенитрованной среды программирования Delphi наиболее оптимальными версиями являются Delphi 6 или Delphi7.

Почему?

И еще в глаза бросилось: 4 скриншота по поводу сохранения проекта и ни одного в "Задание 1.1.0".

Оформление кода плохое, оформление форм - плохое (а ведь к аккуратности нужно приучать с самого начала!)

if D<0 then
begin
ShowMessage("Корней нет");
halt;// немедленное прекращение программы
end;

Зачем halt?
Я уже не говорю, что D таким образом сравнивать с нулем некорректно в общем случае.


if Drug=true then Canvas.LineTo(X,Y)

Зачем =true ?

Дальше смотреть не стал.
У меня мама изучает Delphi в данный момент (переходит с Pascal) с целью преподавания. Я бы ей вашу книгу не порекомендовал.


 
Mystic ©   (2014-02-22 21:40) [3]

Мне непонятно, кому адресована книга. Если совсем начинающим, то нужно дать основы программирования вообще. Как введение в Delphi для тех, у кого есть опыт, то слишком элементарно. Как справочник тоже не тянет.


 
clickmaker ©   (2014-02-22 21:59) [4]

TForm1.Button1Click

edit4.Text
edit5.Text

Дальше можно не читать


 
Inovet ©   (2014-02-22 22:05) [5]

Недавно была такая тема, кто помнит.


 
Inovet ©   (2014-02-22 22:19) [6]

Бросилось в глаза: "Вернитесь в режим программирования". Как-то оно не по-нашему звучит. Что за режим такой? Для начинающих тем более не надо выдумывать несуществующие режимы, как и приучать к этим, набившим оскомину Form1, Edit1 и т.д.. Наоборот надо чётко объяснять что есть что и рекомендовать заменять дефолтные имена на осмысленные, показывая заодно и это в примерах.


 
ухты   (2014-02-22 22:22) [7]


> TForm1.Button1Click
а надо было TMySuperPuperForm.MySuperPuperButtonClick ?


 
Inovet ©   (2014-02-22 22:28) [8]

> [7] ухты   (22.02.14 22:22)

Посмотри Задание 1.2.1


 
Inovet ©   (2014-02-22 22:32) [9]

> [5] Inovet ©   (22.02.14 22:05)
> Недавно была такая тема, кто помнит.

Нашёл, но её, оказывается, безжалостно выпилили не понятно за что.


 
ухты   (2014-02-22 23:32) [10]


> Посмотри Задание 1.2.1
да я тоже не в восторге от книги с самого начала, думаю критики к ней больше чем в ней заданий :)


 
big_djo ©   (2014-02-22 23:51) [11]

-->Зачем halt?
Согласен halt здесь лишний, но с другой стороны он не сильно и портит код) выпилю его в последующем переиздании

-->if Drug=true then Canvas.LineTo(X,Y)
-->Зачем =true ?

для новичка нормально так написать, пусть будет ясно что Drug сравнивается именно с true. Книжка не посвящена нюансам паскаля, паскал новички могут выучить по другим книжкам

-->Бросилось в глаза: "Вернитесь в режим программирования". Как-то
-->не по-нашему звучит. Что за режим такой?

это Режим набирания кода программистом в редакторе кода))) Это просто для упрощения

-->да я тоже не в восторге от книги с самого начала, думаю критики к
-->ней больше чем в ней заданий :)

Я нормально отношусь к конструктивной критике) буду рад замечаниям


 
big_djo ©   (2014-02-22 23:54) [12]

-->Оформление кода плохое, оформление форм - плохое
согласен, щас делаю новое переиздание код будет выделен Courier New

-->У меня мама изучает Delphi в данный момент (переходит с Pascal) с
-->целью преподавания. Я бы ей вашу книгу не порекомендовал.
я книжку протестировал многократно на студентах, за месяц они стали разбираться в Делфи очень неплохо)


 
картман ©   (2014-02-22 23:58) [13]

как стать преподом за 24 часа))


 
DVM ©   (2014-02-22 23:58) [14]


> big_djo ©   (22.02.14 23:51) [11]


> это Режим набирания кода программистом в редакторе кода)))
> Это просто для упрощения

Так и писали бы Редактор кода и Дизайнер форм. Иначе только путаница будет. Пользуйтесь устоявшейся терминологией.


 
DVM ©   (2014-02-23 00:02) [15]

Над языком, надо еще поработать. Чтоб не было таких фраз:


Таким образом, чтобы отловить любое шныряющее к вашему приложению сообщение Windows, достаточно создать свою собственную процедуру с любым именем, например, ApplicOnMessage с теми же параметрами.


 
ухты   (2014-02-23 00:06) [16]


> я книжку протестировал многократно на студентах, за месяц
> они стали разбираться в Делфи очень неплохо)
а студенты каких факультетов, вузов?


 
ухты   (2014-02-23 00:06) [17]


> я книжку протестировал многократно на студентах, за месяц
> они стали разбираться в Делфи очень неплохо)
а студенты каких факультетов, вузов?


 
big_djo ©   (2014-02-23 00:12) [18]

-->а студенты каких факультетов, вузов?
первокурсники, самых разных, негуманитарных, физики, математики , информаты


 
Дмитрий СС   (2014-02-23 00:15) [19]


> они стали разбираться в Делфи очень неплохо

Я думаю от этого до первой тысячи рублей как до луны.


 
big_djo ©   (2014-02-23 00:23) [20]

-->Так и писали бы Редактор кода и Дизайнер форм. Иначе только
-->путаница будет. Пользуйтесь устоявшейся терминологией.

да надо поменять будет, на типа "Далее, в редакторе кода сделайте то-то и то-то.."

-->Над языком, надо еще поработать. Чтоб не было таких фраз:
-->Таким образом, чтобы отловить любое шныряющее к вашему
-->приложению сообщение Windows, достаточно создать свою

Это просто некоторый легкий сленг, ради разнообразия сухих фраз)) его очень мало, а в новой версии таких фраз совсем не будет


 
Inovet ©   (2014-02-23 00:33) [21]

> [11] big_djo ©   (22.02.14 23:51)
> для новичка нормально так написать

Это ненормально, тем более ненормально такую ахинею в учебнике предлагать ученику.


 
Inovet ©   (2014-02-23 00:35) [22]

> [11] big_djo ©   (22.02.14 23:51)
> пусть будет ясно что Drug сравнивается именно с true

Он не сравнивается - он и есть сам. И нюансы Паскаля здесь совершенно ни при чём, потому что это не нюансы Паскаля.


 
Inovet ©   (2014-02-23 00:35) [23]

> [11] big_djo ©   (22.02.14 23:51)
> Режим набирания кода программистом в редакторе кода))) Это
> просто для упрощения

Это для запутывания и усложнения.


 
big_djo ©   (2014-02-23 00:38) [24]

-->Это ненормально, тем более ненормально такую ахинею в учебнике
-->предлагать ученику.

не согласен, это лишь мелочь которая у новичка заострит внимание с чем сравнивается переменная. выпиливать не стану)


 
big_djo ©   (2014-02-23 00:41) [25]

-->Это для запутывания и усложнения
Насколько я могу судить по сотне студентов никто НИ РАЗУ не запутался)) Выполняли всё с нуля без малейшей подсказки с моей стороны)


 
Inovet ©   (2014-02-23 00:43) [26]

> [24] big_djo ©   (23.02.14 00:38)

Да не сравнивается она, не должна сравниваться. Не надо приучать к таким глупостям, это называется - непонимание типов данных. Наоборот, надо показывать что логический тип сам участвует в условной операции. Вот на этом надо заострить внимание на примерах. А не на масло = масло.


 
Inovet ©   (2014-02-23 00:45) [27]

> [25] big_djo ©   (23.02.14 00:41)
> Насколько я могу судить по сотне студентов никто НИ РАЗУ не запутался

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


 
big_djo ©   (2014-02-23 00:50) [28]

Для меня важнее читабельность, программа работает корректно, ничего страшного если там будет сравнение с true.

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

самобытного там ничего нет)


 
big_djo ©   (2014-02-23 00:52) [29]

-->Для обучения и освоения объектно-ориенитрованной среды
-->программирования Delphi наиболее оптимальными версиями являются
-->Delphi 6 или Delphi7.

-->Почему?

Потому , что Delphi 7 наименнее глючный из всех версий, насколько я мог убедиться


 
Anatoly Podgoretsky ©   (2014-02-23 00:55) [30]

Д5 безглючнее


 
Павиа   (2014-02-23 01:03) [31]

Сразу видно что книжка Русская.
Будь американская была бы благодарность и имена тестеров на 10 листов.
Всё-таки мне больше нравятся немецкие книжки. Где в первых главах даются необходимые знания, для дальнейшего освоения материала.
Что такое ООП не описано. Зачем оно нужно тоже не описано.

Да и вообще название книги не отражает её содержание.

Выбранная версия Delphi не актуальна.

По edit"ам автору следует рассказать про ошибку доступа и прочие ошибки. Которые будут при выполнении на первых уроков.

Отсутствует обработка ошибок. Хотя согласен что по началу не стоит перегружать учеников.

Также книжка учит дурному коду, а именно демонстрирует как применять глобальные переменные.


Из ошибок.
Автор путает язык Delphi с языком object Pascal.


> В Delphi стандартные оконные приложения являются потомками
> класса TWinControl и TControl, и, когда они создаются, они
> регистрируются в Windows, получая уникальный идентификатор
> – дескриптор (Handle)

Во первых Handle это не дескриптор.
Handle это указатель, ссылка.
Descriptor- описатель, это некоторая структура.
Во-вторых давать описание неизвестного термина через неизвестный это издевательство над читающим.


> Переместите на форму Label1, checkbox1, а также таймер timer1

Если переместить, то без единичек либо создать.  

Вердикт, куда не ткни везде залёты и ошибки. Так что книгу рекомендую выбросить.


 
Павиа   (2014-02-23 01:07) [32]


> Anatoly Podgoretsky ©   (23.02.14 00:55) [30]
> Д5 безглючнее

Д4 ещё более безглючнее.


 
Inovet ©   (2014-02-23 01:08) [33]

> [28] big_djo ©   (23.02.14 00:50)
> Для меня важнее читабельность, программа работает корректно,
> ничего страшного если там будет сравнение с true.

Это плохо как раз для читабельности. "Не плоди сущности без необходимости".
Видим:

if a = true then

Запинка. Так, а почему эта переменная сравнивается с true, может это на логический тип там? Сомнения. Смотрим выше на 10 страниц

var
 a : boolean;

А, ну так ламер писал, понятно что ждать дальше. Плюёмся листаем вниз на 10 страниц, ищем где там эта долбаная строчка, вспоминая проматерь всех говнокодеров.

Тогда следуя такой логике надо писать в едином стиле

if a = false then

вместо

if not a then

и

if b > c = true then

вместо

if b > c then


и т.п.


 
Palladin ©   (2014-02-23 01:13) [34]

ну нафига я это читаю...


 
clickmaker ©   (2014-02-23 01:20) [35]

явное сравнение с true/false актуально только в тех языках, где присвоение и равно обозначается одним символов. c/c++, c#, php...
Иногда сишники пишут даже что-то типа
if (false == a)
чтобы избежать случайных ошибок, да и читается лучше, чем !a


 
big_djo ©   (2014-02-23 01:50) [36]

-->Во первых Handle это не дескриптор.
-->Handle это указатель, ссылка.
-->Descriptor- описатель, это некоторая структура.
Здесь контекст текста подразумевает схожесть между терминами, дескриптор - описатель или разновидность указателя.

Привожу ссылку на текст из http://www.delphikingdom.com/asp/viewitem.asp?catalogid=169#03

"
Каждому объекту, созданному с помощью Win API, присваивается уникальный номер (дескриптор). Конкретное значение этого дескриптора не несёт для программиста никакой полезной информации и может быть использовано только для того, чтобы при вызове функций из Win API указывать, с каким объектом требуется выполнить операцию. В большинстве случаев дескрипторы представляют собой 32-значные числа, а значит, их можно передавать везде, где требуются такие числа. В дальнейшем мы увидим, что Win API несколько вольно обращается с типами, т.е. один и тот же параметр в различных ситуациях может содержать и число, и указатель, и дескриптор, поэтому знание двоичного представления дескриптора всё-таки приносит программисту пользу (хотя если бы система Windows была "спроектирована по правилам", тип дескриптора не должен был бы интересовать программиста)."

p.s. В новой версии книжки я скорректирую этот момент и приведу более точное описание

--> if a = false then
вы используйте операцию сравнения "=" двух значений "a" и "false"  и получайте результат.

кто Вам сказал, что нельзя использовать такой вариант?
В стандарте паскаля об этом не говорится и не запрещается:
6.7.2.3 Boolean operators
Operands and results for Boolean operations shall be of

Boolean-type. The Boolean operators
or, and, and not shall denote respectively the logical

operations of disjunction, conjunction, and
negation.
Boolean-expression = expression .
A Boolean-expression shall be an expression that denotes

a value of Boolean-type.

Inovet вы сконцентировали внимание на несущественных мелочах, а конструктивной критики именно от вас ноль


 
big_djo ©   (2014-02-23 01:55) [37]

-->Также книжка учит дурному коду, а именно демонстрирует как
-->применять глобальные переменные.
По вашему про глобальные переменные им вобще не надо знать так?
Я не хочу делать книжку по паскалю, предполагается, что понятие переменных, область видимости, стандартные типы они прочитают в других книгах по паскалю


 
Inovet ©   (2014-02-23 02:01) [38]

> [35] clickmaker ©   (23.02.14 01:20)
> if (false == a)

Pачем такое? Другое дело написать
if(a = 3)
вместо
if(a == 3)
но и тут предупреждение будет, но на всякий случай можно
if(3 == a)
если там вдруг окажется внезапно
if(3 = a)
так и фиг с ним, такое - уже ошибка времени компиляции. Ну а если шибко хочется присвоить и тут же сравнить, так что тут уже поделаешь, можно влететь, но кто заставлял
if(d == (a = b + c))


 
Германн ©   (2014-02-23 02:06) [39]


> big_djo ©   (22.02.14 20:59)
>
> Здравствуете! Недавно я опубликовал книжку для начинающих
> программистов "Курс практического программирования в Delphi.
>  Объектно-ориентированное программирование" в Москве в изд-
> ве "Солон-Пресс", был бы рад узнать Ваши мнения и отзывы

Я не сторонник зелёных, но в данном случае мне деревья жалко. Даже если пострадает только несколько веток. Ибо эта книга не стоит той бумаги, на которой она напечатана.


 
Inovet ©   (2014-02-23 02:10) [40]

> [36] big_djo ©   (23.02.14 01:50)
> кто Вам сказал, что нельзя использовать такой вариант?
> В стандарте паскаля об этом не говорится и не запрещается:

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

> [36] big_djo ©   (23.02.14 01:50)
> Inovet вы сконцентировали внимание на несущественных мелочах,
> а конструктивной критики именно от вас ноль

В книжке куда не ткни везде такие ляпы, но для Вас это несущественные мелочи. Но Вы, заметим, пытаетесь нести свет знания и навыков в массы, так могут ли при этом мелочи быть несущественными. Это на форуме ещё простительно на скорую руку или под настроение ляпуть что-то не то, и то в есть некие границы, хотябы внутренние, а у Вас книга, по крайней мере, предентующая на учебник. Серьёзней надо быть в таких действах.



Страницы: 1 2 3 4 5 6 7 8 9 
10 вся ветка

Форум: "Прочее";
Текущий архив: 2014.10.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.009 c
11-1255007559
Валера
2009-10-08 17:12
2014.10.05
Шрифт size


15-1393178439
Jeer
2014-02-23 22:00
2014.10.05
С днем Советской армии и военно-морского флота!


8-1234686127
Зашибис
2009-02-15 11:22
2014.10.05
Потоковое видео с IP-камеры AVIOSYS 9060A-MP на форме D6


15-1393014602
Юрий
2014-02-22 00:30
2014.10.05
С днем рождения ! 22 февраля 2014 суббота


15-1393012843
Михаил
2014-02-22 00:00
2014.10.05
генирация RTF документов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский