Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.10.05;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.012 c
11-1254976050
imp
2009-10-08 08:27
2014.10.05
Неработает loMultiSelect в ListBox (KOL MCK)


15-1393662306
Demo
2014-03-01 12:25
2014.10.05
SQl import


2-1382690602
coder123
2013-10-25 12:43
2014.10.05
не видно свойства класса


15-1393360202
Юрий
2014-02-26 00:30
2014.10.05
С днем рождения ! 26 февраля 2014 среда


2-1382695991
JohnKorsh
2013-10-25 14:13
2014.10.05
Обработка исключений