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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 13.10.2015, 20:27
Аватар для 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,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Еще одно напуствие, в дельфи жми Ctrl+D почаще, а то код у тебя отформатирован не по правилам, которую рекомендует эмбаркадеро. Мне из-за этого лень стало в коде разбираться.
Рекомендую сюда глянуть: http://wiki.delphi-jedi.org/index.php?title=Style_Guide
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
mxustin (13.10.2015)
  #17  
Старый 13.10.2015, 20:31
mxustin mxustin вне форума
Прохожий
 
Регистрация: 12.09.2015
Адрес: http://pbrng.16mb.com/home/
Сообщения: 18
Версия Delphi: RAD Studio XE8
Репутация: 10
По умолчанию

Спасибо! Это для меня важно. Так как я совсем не опытен в таких делах, как «дизайн кода», архитектура, разбиение на модули, и все такое. Это — мой первый проект. Старался пока что добиться хотя бы того, чтобы код был просто единообразно отформатирован. Подобный документ, как Вы дали по ссылке — видел даже где-то на русском языке. Буду стараться придерживаться правил.

Upd.: Ваша ссылка — уже в закладках!
__________________
Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/)

Последний раз редактировалось mxustin, 13.10.2015 в 20:33.
Ответить с цитированием
  #18  
Старый 13.10.2015, 21:38
mxustin mxustin вне форума
Прохожий
 
Регистрация: 12.09.2015
Адрес: http://pbrng.16mb.com/home/
Сообщения: 18
Версия Delphi: RAD Studio XE8
Репутация: 10
По умолчанию

Хочу еще раз поблагодарить за ссылку, и за то, что Вы указали на несовершенство дизайна кода! Это для меня важнее, чем обсуждение самой идеи или способов извлечения энтропии. Идея — она «идея как идея» без каких-либо претензий на исключительность. Важнее всего для меня было попытаться сделать что-то, что можно было бы считать проектом. То есть, такое:
• можно дать кому-то еще (переносимость, хотя бы потенциальная полезность для кого-то еще, кроме меня);
• есть описание, есть документация;
• проект хотя бы сколько-нибудь прилично написан и оформлен.

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

Код следующей своей разработки я уже буду писать с применением рекомендаций, ссылку на которые Вы дали.

А не могли бы еще Вы сказать хоть пару слов о документации: http://documentation.pbrng.16mb.com/

Подозреваю, что она тоже далека от совершенства. На что обратить внимание?
__________________
Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/)
Ответить с цитированием
  #19  
Старый 13.10.2015, 23:01
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А вы еще показали бы уникальное применение своего генератора? Сейчас для меня это просто очередная Incredible Machine. Никак не соображу, чем так не устраивает стандартный генератор, что потребовалось создавать свой?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
mxustin (13.10.2015)
  #20  
Старый 13.10.2015, 23:05
mxustin mxustin вне форума
Прохожий
 
Регистрация: 12.09.2015
Адрес: http://pbrng.16mb.com/home/
Сообщения: 18
Версия Delphi: RAD Studio XE8
Репутация: 10
По умолчанию

для меня — это как «лаба» по программированию. Стараюсь опыта набраться. Это могло бы быть все, что угодно. «Случайным образом выпало», что это будет генератор случайных чисел. По поводу стандартного генератора — все устраивает, хотелось, так сказать, «замахнуться на Уильяма нашего...». Орешек оказался твердоват (или зубки слабы пока). Но +1 к опыту я точно получил.

Цитата:
уникальное применение своего генератора

Уникальное применение, наверное, я вряд ли придумаю. Следующее, что попытаюсь «разгрызть» — будет генератор паролей (на моем генераторе СЧ).

P.S. Так уж получилось, что я в не-студенческие годы решаю студенческие задачки, но... это — ****, жизнь. Сложилось так, что мне нужно переквалифицироваться. (Раньше занимался другим, теперь подумываю переквалифицироваться в программиста.)
__________________
Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/)

Последний раз редактировалось mxustin, 13.10.2015 в 23:09.
Ответить с цитированием
  #21  
Старый 14.10.2015, 00:19
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
А вы еще показали бы уникальное применение своего генератора?
Да ладно, каждый обучался на таких "Incredible Machine", будь то самопальные калькуляторы, архиваторы, тетрисы, танчики, плееры или браузеры. Тут хоть нестандартно.

По документации:
1) Почему лицензия в "заключении"? Обычно с неё начинают, или же выводят отдельным пунктом.
2) Фактически, вся документация состоит из "введения" и (автогенерированных?) шаблонных описаний функций. Автодоки - это хорошо и полезно, но все же наличие описания самой системы все равно нужно иметь. Хотя бы информацию о том, как его запустить и сконфигурировать "с нуля". Представь, что сам первый раз в жизни видишь этот генератор. Вот ничего ты не знаешь про него. Не знаешь даже, какие буквы писать в делфи. И тебе надо на основе этого генератора что-то сделать. Варианты "интуитивно понятно" и "ну почитать описание существующих функций модулей" сразу отбросить, если хочется нормальную документацию. Конечно, многие проекты документированы либо никак, либо просто описанием функций, но наличие хотя бы текстового описания "надо инициализировать и и запустить генератор" полезно. Можно уже отталкиваться: "ага, инициализировать - значит ищем функцию инициализации; запустить - ищем в доках, как запускать".
3) Я чего-то не понял - во введении указаны только две функции, а в доках их о-го-го. Если программисту предполагается использовать только две, то почему они растворены в описании кучи внутренних функций, если их использование при подключении модуля не предполагается? А если предполагается, то вообще ничего не понятно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
mxustin (14.10.2015)
  #22  
Старый 14.10.2015, 00:33
mxustin mxustin вне форума
Прохожий
 
Регистрация: 12.09.2015
Адрес: http://pbrng.16mb.com/home/
Сообщения: 18
Версия Delphi: RAD Studio XE8
Репутация: 10
По умолчанию

Принято. Спасибо. Работаю над улучшениями. (Они, правда, будут касаться уже следующей версии: я переделал свою разработку в компонент VCL.)

Насчет лицензии — ок. Понял. Буду иметь ввиду.

По поводу функций — то да, для пользователя их две (остальное — «внутренние функции» и пользователю они не очень нужны). Тут я был в положении буриданова осла. Хотелось, как бы и для себя документацию сделать (чтобы через месяц вспомнить, что там за что отвечает), и для пользователя. Очевидно, что так делать нельзя. Нужно делать две отдельные вещи: руководство пользователя и тех. документацию. Это я уже понял.

(Документация, действительно, сгенерирована автоматом. Это Вы правильно поняли.)

Цитата:
Да ладно, каждый обучался на таких "Incredible Machine", будь то самопальные калькуляторы, архиваторы, тетрисы, танчики, плееры или браузеры. Тут хоть нестандартно.

Спасибо за понимание И за дельные и ценные указания.
__________________
Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/)
Ответить с цитированием
  #23  
Старый 14.10.2015, 08:46
Аватар для 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,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Не удобно, что дока раскидана по главам, нажал «скачать pdf», мне только введение и скачало.

Ну и такие проекты лучше не на бесплатный хостинг с пэхэпэ и мускуль выкладывать, а на GitHub (https://github.com/), там тебе и народ пулл-реквестов может накидать, оценить проект и т.д.. Да и самому удобнее, сразу бонусом версионный контроль, история, форки и т.д..

Сам пользуюсь (обычно всякое ненужное туда сваливаю, что удалить жалко, а хранить нет смысла. Ща пока там мало интересного).
https://github.com/OswaldMandus
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
mxustin (14.10.2015)
  #24  
Старый 14.10.2015, 17:19
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,053
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от mxustin
Принято. Спасибо. Работаю над улучшениями. (Они, правда, будут касаться уже следующей версии: я переделал свою разработку в компонент VCL.)

Ненадо. Это не та вещь, которую надо иметь как компонент. Сделай синглтон.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
mxustin (14.10.2015)
  #25  
Старый 14.10.2015, 18:18
mxustin mxustin вне форума
Прохожий
 
Регистрация: 12.09.2015
Адрес: http://pbrng.16mb.com/home/
Сообщения: 18
Версия Delphi: RAD Studio XE8
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Не удобно, что дока раскидана по главам, нажал «скачать pdf», мне только введение и скачало.

Ну и такие проекты лучше не на бесплатный хостинг с пэхэпэ и мускуль выкладывать, а на GitHub (https://github.com/), там тебе и народ пулл-реквестов может накидать, оценить проект и т.д.. Да и самому удобнее, сразу бонусом версионный контроль, история, форки и т.д..

Сам пользуюсь (обычно всякое ненужное туда сваливаю, что удалить жалко, а хранить нет смысла. Ща пока там мало интересного).
https://github.com/OswaldMandus

Принято. Насчет pdf - все понял.
Похоже, что Git все-таки придется изучить... Попробую.
__________________
Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/)
Ответить с цитированием
  #26  
Старый 14.10.2015, 18:20
mxustin mxustin вне форума
Прохожий
 
Регистрация: 12.09.2015
Адрес: http://pbrng.16mb.com/home/
Сообщения: 18
Версия Delphi: RAD Studio XE8
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ненадо. Это не та вещь, которую надо иметь как компонент. Сделай синглтон.

Если я правильно понял из гугла, то это — определенный паттерн в ООП?.. до такого уровня я еще не дорос.
__________________
Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/)
Ответить с цитированием
  #27  
Старый 14.10.2015, 19:04
Аватар для 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,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от mxustin
Если я правильно понял из гугла, то это — определенный паттерн в ООП?.. до такого уровня я еще не дорос.
Аналог ф-ии Random. Эквивалент черного ящика, к которому можно обратиться и получить результат, не зная внутреннего устройства.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
mxustin (14.10.2015)
  #28  
Старый 14.10.2015, 19:07
mxustin mxustin вне форума
Прохожий
 
Регистрация: 12.09.2015
Адрес: http://pbrng.16mb.com/home/
Сообщения: 18
Версия Delphi: RAD Studio XE8
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Аналог ф-ии Random. Эквивалент черного ящика, к которому можно обратиться и получить результат, не зная внутреннего устройства.

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

Пока полез регаться на GitHub

Терминология новая для меня. Изучаю.
__________________
Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/)
Ответить с цитированием
  #29  
Старый 14.10.2015, 19:23
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,053
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от mxustin
Если я правильно понял из гугла, то это — определенный паттерн в ООП?.. до такого уровня я еще не дорос.

Ну да. Только надо помнить, что все эти патерны - лишь "научные" названия для вполне себе обычных вещей.
Конкретно, синглтон - это объект, который может существовать только в одном экземпляре (в данном случае в контесте одного процесса). Для его реализации тебе так же потребуетя паттерн Фабрика.

Имплементация элементарна.
Создаешь новый модуль (ну или рефакторишь тот, что у тебя есть ).
Делаешь класс, у которого конструктор находится в секции protected.
Делаешь в секци Implementation переменную для твоего класса, в initialization присввиваешь ей Nil.
Создаешь опубликованную функцию, которая проверяет эту переменную на Nil, если равна, то создает экзепляр, потом возвращает ссылку на эту переменную.

Описывать дольше,чем код писать:
Код:
unit MyRandom;

interface

type
  TMyRandom = class
    ...
  protected
    constructor Create; virtual;
  public
    ...
  end;

function GetMyRandom : TMyRandom;

implementation

var
  MyRandomObj : TMyRandom;

function GetMyRandom : TMyRandom;
begin
  if MyRandomObj = Nil Then MyRandomObj := TMyRandom.Create;
  Result := MyRandomObj;
end;

initialization
  MyRandomObj := Nil;

finalization
  If MyRandomObj <> Nil Then MyRandomObj.Free;

end.
Все.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
mxustin (14.10.2015)
  #30  
Старый 14.10.2015, 21:07
mxustin mxustin вне форума
Прохожий
 
Регистрация: 12.09.2015
Адрес: http://pbrng.16mb.com/home/
Сообщения: 18
Версия Delphi: RAD Studio XE8
Репутация: 10
По умолчанию

Ну, примерно понял. На будущее — учту. Компонент мне пока что как-то ближе и понятнее. Он — вот он. Его увидеть можно. В инспекторе объектов можно поля увидеть.

Компонент дает несколько разных возможностей получить случайное число (перегружаемые методы с разным набором входных параметров, а также с разными видами результата: СЧ вещественного типа, СЧ целочисленного типа, а также булев результат True/False с некоторой вероятностью). Я благодарен за эту информацию, но пока мне хотелось бы именно как компонент это оставить.

P.S. Кажись, я на Git успешно зарегался, и, вроде бы, залил туда свой модуль (теперь он у меня один) вместе с ресурсами . Лицензию (MIT) мне система на халяву подогнала (ну, в качестве эксперимента для того, чтобы сделать свой первый коммит, я к ней русский вариант добавил). Потом добавил и файлы проекта.

https://github.com/mxustin/TPBRNG
Щас буду делать описалово (там wiki есть).

Мужчины! Спасибо за наводку.
Сайтик на бесплатном хостинге я тоже переделывать буду. Буду убирать оттуда весь бред и все лишнее. Потом покажу.

P.S. Кстати, весь код поформатировал через Ctrl+D. И в будущем буду стараться следовать правилам, описанным тут.
__________________
Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/)

Последний раз редактировалось mxustin, 14.10.2015 в 21:36.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter