|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Еще одно напуствие, в дельфи жми Ctrl+D почаще, а то код у тебя отформатирован не по правилам, которую рекомендует эмбаркадеро. Мне из-за этого лень стало в коде разбираться.
Рекомендую сюда глянуть: http://wiki.delphi-jedi.org/index.php?title=Style_Guide — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
mxustin (13.10.2015)
|
#17
|
|||
|
|||
Спасибо! Это для меня важно. Так как я совсем не опытен в таких делах, как «дизайн кода», архитектура, разбиение на модули, и все такое. Это — мой первый проект. Старался пока что добиться хотя бы того, чтобы код был просто единообразно отформатирован. Подобный документ, как Вы дали по ссылке — видел даже где-то на русском языке. Буду стараться придерживаться правил.
Upd.: Ваша ссылка — уже в закладках! Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/) Последний раз редактировалось mxustin, 13.10.2015 в 20:33. |
#18
|
|||
|
|||
Хочу еще раз поблагодарить за ссылку, и за то, что Вы указали на несовершенство дизайна кода! Это для меня важнее, чем обсуждение самой идеи или способов извлечения энтропии. Идея — она «идея как идея» без каких-либо претензий на исключительность. Важнее всего для меня было попытаться сделать что-то, что можно было бы считать проектом. То есть, такое:
• можно дать кому-то еще (переносимость, хотя бы потенциальная полезность для кого-то еще, кроме меня); • есть описание, есть документация; • проект хотя бы сколько-нибудь прилично написан и оформлен. После Ваших слов понимаю, что с задачей справился слабенько. И, вообще, чем больше углубляюсь в тему того, чтобы вообще кому-то что-то можно было отдать, тем больше понимаю, что это сложно. Это требует большого труда. Но мне интересно этим заниматься, и я надеюсь, что постепенно буду совершенствоваться. Код следующей своей разработки я уже буду писать с применением рекомендаций, ссылку на которые Вы дали. А не могли бы еще Вы сказать хоть пару слов о документации: http://documentation.pbrng.16mb.com/ Подозреваю, что она тоже далека от совершенства. На что обратить внимание? Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/) |
#19
|
||||
|
||||
А вы еще показали бы уникальное применение своего генератора? Сейчас для меня это просто очередная Incredible Machine. Никак не соображу, чем так не устраивает стандартный генератор, что потребовалось создавать свой?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
mxustin (13.10.2015)
|
#20
|
|||
|
|||
для меня — это как «лаба» по программированию. Стараюсь опыта набраться. Это могло бы быть все, что угодно. «Случайным образом выпало», что это будет генератор случайных чисел. По поводу стандартного генератора — все устраивает, хотелось, так сказать, «замахнуться на Уильяма нашего...». Орешек оказался твердоват (или зубки слабы пока). Но +1 к опыту я точно получил.
Цитата:
Уникальное применение, наверное, я вряд ли придумаю. Следующее, что попытаюсь «разгрызть» — будет генератор паролей (на моем генераторе СЧ). P.S. Так уж получилось, что я в не-студенческие годы решаю студенческие задачки, но... это — ****, жизнь. Сложилось так, что мне нужно переквалифицироваться. (Раньше занимался другим, теперь подумываю переквалифицироваться в программиста.) Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/) Последний раз редактировалось mxustin, 13.10.2015 в 23:09. |
#21
|
||||
|
||||
Цитата:
По документации: 1) Почему лицензия в "заключении"? Обычно с неё начинают, или же выводят отдельным пунктом. 2) Фактически, вся документация состоит из "введения" и (автогенерированных?) шаблонных описаний функций. Автодоки - это хорошо и полезно, но все же наличие описания самой системы все равно нужно иметь. Хотя бы информацию о том, как его запустить и сконфигурировать "с нуля". Представь, что сам первый раз в жизни видишь этот генератор. Вот ничего ты не знаешь про него. Не знаешь даже, какие буквы писать в делфи. И тебе надо на основе этого генератора что-то сделать. Варианты "интуитивно понятно" и "ну почитать описание существующих функций модулей" сразу отбросить, если хочется нормальную документацию. Конечно, многие проекты документированы либо никак, либо просто описанием функций, но наличие хотя бы текстового описания "надо инициализировать и и запустить генератор" полезно. Можно уже отталкиваться: "ага, инициализировать - значит ищем функцию инициализации; запустить - ищем в доках, как запускать". 3) Я чего-то не понял - во введении указаны только две функции, а в доках их о-го-го. Если программисту предполагается использовать только две, то почему они растворены в описании кучи внутренних функций, если их использование при подключении модуля не предполагается? А если предполагается, то вообще ничего не понятно. jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
mxustin (14.10.2015)
|
#22
|
|||
|
|||
Принято. Спасибо. Работаю над улучшениями. (Они, правда, будут касаться уже следующей версии: я переделал свою разработку в компонент VCL.)
Насчет лицензии — ок. Понял. Буду иметь ввиду. По поводу функций — то да, для пользователя их две (остальное — «внутренние функции» и пользователю они не очень нужны). Тут я был в положении буриданова осла. Хотелось, как бы и для себя документацию сделать (чтобы через месяц вспомнить, что там за что отвечает), и для пользователя. Очевидно, что так делать нельзя. Нужно делать две отдельные вещи: руководство пользователя и тех. документацию. Это я уже понял. (Документация, действительно, сгенерирована автоматом. Это Вы правильно поняли.) Цитата:
Спасибо за понимание И за дельные и ценные указания. Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/) |
#23
|
||||
|
||||
Не удобно, что дока раскидана по главам, нажал «скачать pdf», мне только введение и скачало.
Ну и такие проекты лучше не на бесплатный хостинг с пэхэпэ и мускуль выкладывать, а на GitHub (https://github.com/), там тебе и народ пулл-реквестов может накидать, оценить проект и т.д.. Да и самому удобнее, сразу бонусом версионный контроль, история, форки и т.д.. Сам пользуюсь (обычно всякое ненужное туда сваливаю, что удалить жалко, а хранить нет смысла. Ща пока там мало интересного). https://github.com/OswaldMandus — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
mxustin (14.10.2015)
|
#24
|
|||
|
|||
Цитата:
Ненадо. Это не та вещь, которую надо иметь как компонент. Сделай синглтон. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
mxustin (14.10.2015)
|
#25
|
|||
|
|||
Цитата:
Принято. Насчет pdf - все понял. Похоже, что Git все-таки придется изучить... Попробую. Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/) |
#26
|
|||
|
|||
Цитата:
Если я правильно понял из гугла, то это — определенный паттерн в ООП?.. до такого уровня я еще не дорос. Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/) |
#27
|
||||
|
||||
Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
mxustin (14.10.2015)
|
#28
|
|||
|
|||
Цитата:
До паттернов, я, наверное, еще когда-нибудь доберусь. Полагаю, что в программировании тяжело будет претендовать на сколько-нибудь профессиональный уровень без знания паттернов. Пока полез регаться на GitHub Терминология новая для меня. Изучаю. Разрабатываю генератор случайных чисел на основе пинга (информация — на сайте http://pbrng.16mb.com/) |
#29
|
|||
|
|||
Цитата:
Ну да. Только надо помнить, что все эти патерны - лишь "научные" названия для вполне себе обычных вещей. Конкретно, синглтон - это объект, который может существовать только в одном экземпляре (в данном случае в контесте одного процесса). Для его реализации тебе так же потребуетя паттерн Фабрика. Имплементация элементарна. Создаешь новый модуль (ну или рефакторишь тот, что у тебя есть ). Делаешь класс, у которого конструктор находится в секции 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
|
|||
|
|||
Ну, примерно понял. На будущее — учту. Компонент мне пока что как-то ближе и понятнее. Он — вот он. Его увидеть можно. В инспекторе объектов можно поля увидеть.
Компонент дает несколько разных возможностей получить случайное число (перегружаемые методы с разным набором входных параметров, а также с разными видами результата: СЧ вещественного типа, СЧ целочисленного типа, а также булев результат 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. |