![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
Я написал программку, и хотелось бы услышать критику специалистов. Пишу здесь, а не в разделе «тесты», потому, что программу выложил с исходным кодом. Тут все файлы проекта на Delphi 2006 + файл проекта для инно-сетап. Многие контролы не стандартные, взяты отсюда. Отличаются от стандартных поддержкой скинов, а во всём остальном тоже. В названии класса присутствует буква «s», например TMemo – TsMemo. Хотелось бы узнать свои недостатки при написании кода, некоторые мелочи я и сам вижу, но может я что-то очень важное делаю не так…. Хотелось бы узнать мнение специалистов по данному коду.
Исходник Заранее спасибо! |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
А нельзя ли поподробнее, какой код тестирует твоя программка, и какие тесты она генерирует?
|
|||
|
||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
По-видимому, она тесты генерирует электронные для абитуриентов).
|
|||
|
||||
| THandle |
|
||||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
Глянул на код:
1. Оформлен плохо, читать неудобно. 2. Нет try..finally там, где им быть не плохо было бы. 3. Вот такой код тоже не украшает:
Лишние begin..end. Даже если там необходимо сделать было бы несколько действий, я предпочел бы писать так:
//Some Code Могу и и более тщательно посмотреть, но я не подхожу под вот эти критерии: |
||||
|
|||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
THandle, я думаю вполне подходишь. Посмотри пожалуйста вот эту тему, там как раз по теме твоего ника
|
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
THandle, под специалистами я имел ввиду постоянных пользователей форума vingrad, так что вполне подходишь и ты и другие участники
А почему обязательно для абитуриентов? Это сообщение отредактировал(а) Rohoss - 3.7.2008, 19:18 |
|||
|
||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: 1 Всего: 2 |
это так, к слову. А для кого? |
|||
|
||||
| THandle |
|
||||||||||||||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
Там даже массив не из меня, а из каких то cardinal'ов На самом деле темы то я все смотрю, но не во все пишу Такс. Ну начнем разбор. Сразу говорю - я не специалист даже близко, так что все комменты не професссиональны
Нус:
после этого надо начинать try..finally...
хм... а не кажется ли тебе, что это условия не наступит? После создания СтрингЛичта Count = 0. Так что условие бесполезное...
а вдруг ничо в файле и нет? надо бы проверять...
А теперь как я бы написал эту процедуру
Завтра продолжу разбирать |
||||||||||||||
|
|||||||||||||||
| Shaggy |
|
||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 2.5.2007 Где: г.Ижевск Репутация: 3 Всего: 5 |
это если по быстрому... а условие:
не выполнится никогда... даже если str будет непустой
Это сообщение отредактировал(а) Shaggy - 4.7.2008, 02:46 |
||||||||||||
|
|||||||||||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
Ну это же действительно бред… не пойму как мне такое в голову пришло… |
|||
|
||||
| Rohoss |
|
||||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
THandle В восьмой строчке у тебя ошибка надо так
Shaggy, в TfrmTest.ExecSubMenu
В свойстве Caption появляется вот такой символ «&» он нужен для использования горячих клавишь, но он всю малину портит… Его как-то можно отключить? Это сообщение отредактировал(а) Rohoss - 4.7.2008, 20:52 |
||||
|
|||||
| THandle |
|
||||||||||||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
Со всеми бывает Вообще отвлекусь от темы на чуть чуть и скажу как я пишу программы. Вдруг кому пригодится. 1. Думаем. 2. Находим идею. 3. Набрасываем на листочке примерный план действий. 4. Думаем что для этого требуется. 5. Пишем первый модуль. Я предпочитаю использовать ООП. То есть пишем на классах. 6. По ходу дела используем {$IFDEF} и прочее для всяких функций поднятия ошибок, логирования... 7. Так же, по ходу дела, тестируем все это в программке, офрмленной чисто для тест. Пара кнопок которые вызывают методы класса и тд. 8. Усиленно тестируем готовый модуль и гоняем его под дебаггером. 9. Все ли вместилось в этот модуль? Если да то дальше, иначе пишем таким же образом еще и остальные. Разбивать программу по не большим модулям(30-50 кб) лично для меня удобнее... 10. Оптимизируем код. 11. Создаем GUI. 12. Прикручиваем к нему код. 13. Усиленно все это дело тестируем на разных машинках. 14. Два варианта: или отдаём юзерам или кладем программу в архив. Так. Теперь по делу.
Неплохо бы тут try..finally юзать... Еще, лично я бы вынес всем имена разделов Ini файла и прочие такие вещи в resourcestring.
Лишние begin..end. Не очень красиво смотрится. ИМХО.
Опять таки нужен try..finally. И еще: Ну зачем, ну зачем нужна такая не красивая запись типа:
Все очень легче сделать так:
И остальное так же... На сегодня хватит... Времени нет... Завтра продолжу. ОК? А вообще: Код построен на одних компонентах, никакой романтики Немножко условие не приметил, пишу то тут |
||||||||||||
|
|||||||||||||
| Shaggy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 2.5.2007 Где: г.Ижевск Репутация: 3 Всего: 5 |
||||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: 4 Всего: 18 |
THandle, а зачем так усилено try..finally юзать? Ведь появления исключения при работе с ини-файлами большая редкость, я например, никогда не замечал.
|
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |