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

 



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.08.2013, 23:18
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 536
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию Стойокое ощущение

того, что я делаю что-то не так. Я про код в программах.
Нет, у них (юзеров) всё работает, только у меня уверенности в том, что всё это работает как часы нет.

Держу небольшой проект: Ломбард + Магазин. Совершенствую его по мере потребностей начальства (раз в год, летом, взрываю весь код и переписываю всё с нуля, копируя часть наработок из старых версий)
Вся идея в том, что люди приходят, ломбардисты оценивают и заполняют поля в программе, вылазит залоговый билет на принтер. А инфа с него в MySQL БД. Далее за всем этим множеством билетов следит человек. Инвентаризации, еженедельные отчёты, подсчёт прибыли и т.д. Всё это реализовано на XE3 + DevExpress.

Весь код переполнен подобного рода фигнёй:
Код:
      tClients.Insert;
      tClients.FieldByName('Surname').AsString :=
      Trim(StringReplace(cSurname.Text, ' ', '', [RFReplaceall]));
    tClients.FieldByName('Name').AsString :=
      Trim(StringReplace(cName.Text, ' ', '', [RFReplaceall]));
    tClients.FieldByName('Patronymic').AsString :=
      Trim(StringReplace(cPatronymic.Text, ' ', '', [RFReplaceall]));
    tClients.FieldByName('Passport').AsString :=
      Trim(StringReplace(cPassport.Text, ' ', '', [RFReplaceall]));
    tClients.FieldByName('PWhom').AsString := cPWhom.Text;
    tClients.FieldByName('PWhen').AsString := cPWhen.Text;
    tClients.FieldByName('Address').AsString := cAddress.Text;
    tClients.FieldByName('IDCode').AsString :=
      Trim(StringReplace(cIDCode.Text, ' ', '', [RFReplaceall]));
    tClients.FieldByName('Phone').AsString :=
      Trim(StringReplace(cPhone.Text, ' ', '', [RFReplaceall]));
    tClients.Post;

Я уверен, что меня в адекватной фирме за этот код сожгли бы. Учился в своё время, читая книгу Delphi. Быстрый старт. и ещё парочку справочников.

С тех пор прошло 10 лет. Как-то не по себе. Возможности XE3 не использую. Devexpress изучается постепенно через форумы только, если возникнет реальная необходимость "раскрасить грид". Да что там говорить. Блоки try..except так и не прижились у меня.

Помогите справиться с этой проблемой.

P.s 23 года. Учусь в МИФИ по специальности Медицинская Физика. Программирование - хороший запасной вариант, если времена будут не лучшие
Ответить с цитированием
  #2  
Старый 23.08.2013, 23:37
Аватар для Freeman
Freeman Freeman вне форума
Человек-компилятор
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 575
Версия Delphi: 6
Репутация: выкл
По умолчанию

Запалил факел. Настоятельно советую открыть для себя визуальные DB-компоненты, вроде DBEdit, DBLookupComboBox и события полей, вроде OnGetText и OnSetText.
Ответить с цитированием
Этот пользователь сказал Спасибо Freeman за это полезное сообщение:
Uniq! (24.08.2013)
  #3  
Старый 24.08.2013, 00:38
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Да я вообще адекватно (архитектурно) кодить на чем-то кроме асмы разучился со своим реверсом. И ничего, жив пока. Клепаю в основном разнородные тулзы для выполнения какой-то конкретной функции, связанной с анализом, и делаю максимально быстро. А потом тулзы обрастают кучей свистелок вплоть до почти полной смены функционала, и код превращается в нечитаемый треш. Только когда пишу на асме делаю все как надо.
Цитата:
меня в адекватной фирме за этот код сожгли бы
В адекватных фирмах код тоже далеко не всегда хороший. Даже статьи на тему кода в M$ на хабре были. Фирме важна скорость разработки и чтобы программа работала. Так что не страшно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 24.08.2013 в 00:43.
Ответить с цитированием
  #4  
Старый 24.08.2013, 15:26
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 536
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от Freeman
Запалил факел.... DB-компоненты, вроде DBEdit, DBLookupComboBox и события полей, вроде OnGetText и OnSetText.
Благодарю за пинок в нужном направлении.

Я временами открываю исходники компонент DevExpress и удивляюсь качеству. В этом коде реально можно разобраться. Берёт зависть белой лентой (С)

Может кто-то подскажет в какие степи необходимо копать, чтоб развиваться в этом(качество кода) направлении?
Ответить с цитированием
  #5  
Старый 25.08.2013, 21:27
Аватар для Freeman
Freeman Freeman вне форума
Человек-компилятор
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 575
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Uniq!
в какие степи необходимо копать, чтоб развиваться в этом(качество кода) направлении?
Писать кривые проекты и получать люлей внимать разумной критике до полного стыда за свой код, с пониманием конкретно за что и как это исправить в дальнейшем, чтобы не допускать ошибок.

Можно, конечно, читать мантры всякие умные книжки, но без практического понимания сути толку не будет. Понимание же приходит с масштабом. Масштаб во времени -- опыт.
Ответить с цитированием
  #6  
Старый 25.08.2013, 22:57
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,238
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от Freeman
Писать кривые проекты и получать люлей внимать разумной критике до полного стыда за свой код, с пониманием конкретно за что и как это исправить в дальнейшем, чтобы не допускать ошибок.
Лучше всего помогает писать большие проекты в команде. Тогда привыкаешь писать как минимум не хуже остальных, причём ещё и учишься читать чужой код.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #7  
Старый 25.08.2013, 23:48
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Кстати, можно нагуглить стандарты оформления кода.
Например вот. Это для языка Python.
Или ввот Googl'овский стиль для C++. Есть для Windows общий, Венгерская Нотация называется. Может быть и для Delphi есть, не искал.
Ответить с цитированием
  #8  
Старый 26.08.2013, 00:52
Аватар для Freeman
Freeman Freeman вне форума
Человек-компилятор
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 575
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от ChinYan
Может быть и для Delphi есть, не искал.
Delphi is created in California.
Ответить с цитированием
  #9  
Старый 26.08.2013, 01:04
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 536
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от Freeman
получать люлей
Не от кого. От меня ни разу не требовали "код", только готовый "работающий" продукт.

Цитата:
Сообщение от Freeman
но без практического понимания сути
у меня есть тьма проектов, которые хотелось бы написать адекватно. Т.е. и желание и время у меня в кармане. Нет информации о том "как" это делается)

Цитата:
Сообщение от PhoeniX
читать чужой код.
и с этим никогда проблем не было. Я легко разбираю opensource проекты без всяких комментариев.

А вот в команде работать не довелось пока.

ctrl+D для "оформления кода"
Ответить с цитированием
  #10  
Старый 26.08.2013, 07:52
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от PhoeniX
Лучше всего помогает писать большие проекты в команде. Тогда привыкаешь писать как минимум не хуже остальных, причём ещё и учишься читать чужой код.
Я пишу в команде. Бывает откроешь свой исходник... и "MOTHER OF GOD! кто его переколбасил, что в нем не разобраться?".
А иногда у них так бывает, я обычно глобально переколбашиваю так, что исходник кардинально отличается (поклон преподам и профессорам, дрючили во время учебы, как правильно писать).
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 26.08.2013 в 08:02.
Ответить с цитированием
  #11  
Старый 29.08.2013, 17:08
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Актуально)
У меня часто ощущение, что тут надо бы ножичком порезать, а я топором херачу!

Но, как правило, после запуска и тестирования, все устраивает и приходит понимание, что так сделать - самое оптимальное.

Думаю это ощущение от недостатка опыта
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Ответ



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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter