Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
14 апреля 2011, 6:36:09 AM   # 1
 
 
Сообщения: 868
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я опубликовал работу, в ходе реорганизации источников здесь:  https://github.com/gasteve/bitcoin

Вот файл README включены в этот коммит:
---------------
Это обязательство является реорганизация исходного кода Bitcoin (фактическая
поведение кода не было изменено). Основная цель этого
совершить это запросить ввод и анализ организации. Много работы
Осталось закончить реорганизацию, легко получить его строительство во всех
Поддерживаемые платформы и документировать его. Этот файл риого краткий
обзор работы до сих пор и что еще предстоит сделать.

Классы теперь организованы в свои собственные файлы исходного кода. Для каждого
класса есть заголовочный файл, который объявляет класс, файл заголовок,
имеют какие-либо встроенные или шаблонные определения и исходный файл для метода
Реализации. Для класса по имени "CFoo" (Имена классов всегда начинаются
с письмом "С" по соглашению), соответствующие исходные файлы были бы
быть названы:

    CFoo.h - заголовок с объявлением класса
    CFoo-inl.h - заголовок с инлайн и шаблонных методов (если таковые имеются)
    CFoo.cpp - метод реализации

Первичный файл заголовок будет включать в себя файл рядного заголовка в конце
(Если таковой имеется). Файлы заголовков использовать типичные # IfNDef / # определить
шаблон использовать препроцессор, чтобы обеспечить любой данный заголовок класса
только обработано один раз компилятор. В заголовочных файлах, где
возможно, форвардные декларации ссылочных классов используются довольно
чем включая файл заголовка другого класса. Политика одного класса в
* .h, * -inl.h, * .cpp следуют за исключением классов исключений
(В настоящее время есть два, bignum_error и key_error). Исключение
классы следуют основной декларации класса в файле класса,
использует их. В нескольких случаях это приводит к сравнительно небольшим файлам
что один может возникнуть соблазн свернуть на другой файлы класса. в
интерес последовательности, даже эти небольшие классы были введены в
их собственный набор файлов (опять же, классы исключений являются единственным исключением
для этого правила).

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

Autotools были введены в процессе сборки, чтобы упростить
конфигурация и сделать файлы и обеспечить более автоматическую зависимость
управления (то есть включать в себя зависимости файлов автоматически отслеживаются
таким образом, что трогая данный файл заголовка будет только заставить перекомпиляции
именно те исходные файлы, которые включают его, прямо или косвенно).
Autotools следует также включить один набор конфигурации и сделать файлы
быть использованы на разных платформах, но это еще не тот случай. Использование
Autotools также позволит распределения исходного кода, которые будут построены (сделать
расстояние) и включить упаковку для инструментов популярной управления пакетами (оборотов в минуту,
порты, кв, и т.д.).

На данный момент, этот код только был составлен на Mac OSX. к
успешная компиляция, вам необходимо следовать инструкциям
здания из главной ветви, чтобы собрать все зависимости (т.е.
BDB, WxWidgets и т.д.), а затем следует обычной Autotools подходу к
здание. Существует скрипт в этом каталоге для восстановления исчезнувшего
настроить сценарий и сделать файлы (autogen.sh). После запуска, что
сценарий, а затем запустить "./configure; делать" ("сделать установку" не поддерживается
все же). Как демон и полный графический интерфейс пользователя был успешно скомпилирован.

Остающаяся работа (в грубом порядке приоритета):

1. Синхронизация с руководителем ведущего Bitcoin исходного кода филиала (это
код основан на 0.3.20.2)

2. Организация, не входящих в класс источников на основе путем группирования функций, связанных с
вместе и переместились исходные файлы в подкаталогах (вероятно SUBDIRS
будет пэр, графический интерфейс, интерфейс командной строки, бумажник, шахтер, и общий) <--- Я мог бы использовать
предложения, по которым функции / классы принадлежат, в каком из этих логических
пакеты

3. Очистите источники и заголовки на основе не класс и заголовок сливового
файл включает в себя

4. Отказ от использования -DGUI для построения графического интерфейса пользователя

5. Вымойте комментарии & заявления об авторских правах и т.д.

6. Сделайте компилируются чисто на всех платформах
Стив сейчас офлайн Пожаловаться на Steve   Ответить с цитированием Мультицитирование сообщения от Steve Быстрый ответ на сообщение Steve


Как заработать Биткоины?
Без вложений. Не майнинг.


14 апреля 2011, 7:49:05 AM   # 2
 
 
Сообщения: 2660
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Получил 1806 Биткоинов
Реальная история.





Хорошая работа!
HostFat сейчас офлайн Пожаловаться на HostFat   Ответить с цитированием Мультицитирование сообщения от HostFat Быстрый ответ на сообщение HostFat

15 апреля 2011, 4:56:06 AM   # 3
 
 
Сообщения: 868
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Я слился эта работа с последним коммитом на главной ветке ... подробнее находится в README:
https://github.com/gasteve/bitcoin
Стив сейчас офлайн Пожаловаться на Steve   Ответить с цитированием Мультицитирование сообщения от Steve Быстрый ответ на сообщение Steve

15 апреля 2011, 5:52:39 AM   # 4
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов


Я не хочу говорить за какие-либо из других членов команды разработчиков, но я, как правило, приоритеты массовых повторных Orgs, как это ниже только о каких-либо других изменениях. Они создают много шума, что делает просеивание через историю более сложной (даже если мерзавец помогает с этим). Они ломают существующие патчи.

А на языке конкретной арены, два-файлов-за-класса (.h, .cpp) создает абсолютный взрыв маленьких файлов, который откровенно боль в заднице.

xf2_org сейчас офлайн Пожаловаться на xf2_org   Ответить с цитированием Мультицитирование сообщения от xf2_org Быстрый ответ на сообщение xf2_org

15 апреля 2011, 6:42:41 AM   # 5
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Хорошая работа.

Я в пользу реорганизации, особенно при добавлении некоторых единицы компиляции, которые не включают в себя все файлы .h. Некоторые файлы .cpp очень велики, и включают в себя большое количество кода в файлах заголовков, которые включены везде, замедляя компиляцию много. Кроме того, main.cpp и main содержат большую часть внутренней логики, без четкого разделения, хотя они содержат несколько классов и функции, которые, конечно, не все зависит друг от друга.

Я не уверен, что отдельный файл для каждого класса есть путь, хотя. В идеале у нас есть несколько слоев и четкие правила, о которых можно получить доступ к которой (например, я не уверен, rpc.cpp должны взаимодействовать с db.h классов, определенных непосредственно). В этом смысле ваша работа здесь является шагом в правильном направлении, по крайней мере, разделяющая классы от Афоризма. Если мы сможем договориться о том, как организовать их в отдельных каталогах, а может разделить остальные функции, а также, мы можем быть там. Тогда мы все еще можем решить, хотим ли мы все отдельные файлы, или просто один .cpp / .h на слой.

вы планируете держать ваш филиал синхронизируется с мерзавцами ГЛАВНОГО некоторого времени делать?
Pieter Wuille сейчас офлайн Пожаловаться на Pieter Wuille   Ответить с цитированием Мультицитирование сообщения от Pieter Wuille Быстрый ответ на сообщение Pieter Wuille

15 апреля 2011, 6:59:21 AM   # 6
 
 
Сообщения: 826
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

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

Сказав это, я не против того, что рефакторинг делается предоставлена каждое изменение полностью экранированы против введения возможных дыр в системе безопасности.

Никто не должен месиво слегка безопасности критичных кода.
ribuck сейчас офлайн Пожаловаться на ribuck   Ответить с цитированием Мультицитирование сообщения от ribuck Быстрый ответ на сообщение ribuck

15 апреля 2011, 7:41:04 AM   # 7
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов


Существует общее мнение, что очистка является оправданной, но я предпочел бы, чтобы будущие изменения гнать ыборко.

Это простой факт, что мы не будем знать, что кодовое должен выглядеть, после того, как режим клиента и другие запланированные улучшения все завершено, пока мы фактически не реализуем эти вещи. Таким образом, мы не можем знать, если мы создаем больше работы для себя, с "пирог в небе" Гранд REORG. Бросьте в смесь, что идея каждого совершенного кодовую отличается.

IMNSHO, ядро ​​Linux путь лучше всего: эволюция, а не революция. Выполните ыборкы другие изменения выполняются в определенной области кода.

Real Life сообщит наш ыборку лучше, чем любой Великого Плана.

xf2_org сейчас офлайн Пожаловаться на xf2_org   Ответить с цитированием Мультицитирование сообщения от xf2_org Быстрый ответ на сообщение xf2_org

15 апреля 2011, 9:52:52 AM   # 8
 
 
Сообщения: 826
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Я полностью согласен с xf2_org.

Кроме того, это имеет то преимущество, что функциональность продолжает улучшаться, вместо того, чтобы каждый посвятив свою энергию споря, какой вид рефакторинга является лучшим, и проект в конечном итоге в рефакторинге паралича.
ribuck сейчас офлайн Пожаловаться на ribuck   Ответить с цитированием Мультицитирование сообщения от ribuck Быстрый ответ на сообщение ribuck

15 апреля 2011, 12:10:47 PM   # 9
 
 
Сообщения: 868
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Хорошая работа.

Я в пользу реорганизации, особенно при добавлении некоторых единицы компиляции, которые не включают в себя все файлы .h. Некоторые файлы .cpp очень велики, и включают в себя большое количество кода в файлах заголовков, которые включены везде, замедляя компиляцию много. Кроме того, main.cpp и main содержат большую часть внутренней логики, без четкого разделения, хотя они содержат несколько классов и функции, которые, конечно, не все зависит друг от друга.

Я не уверен, что отдельный файл для каждого класса есть путь, хотя. В идеале у нас есть несколько слоев и четкие правила, о которых можно получить доступ к которой (например, я не уверен, rpc.cpp должны взаимодействовать с db.h классов, определенных непосредственно). В этом смысле ваша работа здесь является шагом в правильном направлении, по крайней мере, разделяющая классы от Афоризма. Если мы сможем договориться о том, как организовать их в отдельных каталогах, а может разделить остальные функции, а также, мы можем быть там. Тогда мы все еще можем решить, хотим ли мы все отдельные файлы, или просто один .cpp / .h на слой.

вы планируете держать ваш филиал синхронизируется с мерзавцами ГЛАВНОГО некоторого времени делать?


Да, я буду держать его синхронизируется навсегда. Я на самом деле нужен эти очистки для того, чтобы сделать код более легко повторно и реорганизованы для других вещей, которые я хотел бы сделать (т.е. построить собственный клиент Mac, добавить модульные тесты, иметь возможность создавать отдельные библиотеки и / или исполняемые файлы для сверстников и бумажник, и т.д.).

В ответ на некоторые из других комментариев, это на самом деле не рефакторинга вообще и это не какой-то великий план ... это лишь малая немного реорганизации (и принятия Autotools). Я понимаю, неудачные побочные эффекты делают историю труднее следить, но если вы знаете, где повторно орг произойдет, вы понимаете природу повторного орга, то это не так уж трудно следовать (кстати, я был очень поражен как ГИТ-слияние сделало его очень легко довести его до настоящего времени с последнего коммита). Что касается отдельного класса для каждого файла, я был соблазн объединить некоторые из меньших вместе, но я решил, что благоприятствую консистенцию над желанием иметь меньшее количество файлов (по крайней мере на данный момент). Кроме того, файлы не беспокоит меня (и многие инструменты Dev сделать количество файлов почти не имеет значения).

Я заинтересован в разделении вещей в эти пакеты: пэр, бумажник, шахтер, и общий (для тех вещей, которые все остальные нуждаются) ... Я буду помещать файлы в эти подкаталоги в ГКЗ. Чтобы сделать это, мне нужно решить, какие классы принадлежат в каждом из этих пакетов и какие из свободных функций принадлежат в каждом из этих пакетов. Если кто-то хотел бы предложить предложение о том, что мне интересно услышать. Я думаю, что я буду делать это, а затем получить Autotools здание на всех платформах (ну, платформы у меня есть доступ к так или иначе ... OSX, Ubuntu и Windows XP).
Стив сейчас офлайн Пожаловаться на Steve   Ответить с цитированием Мультицитирование сообщения от Steve Быстрый ответ на сообщение Steve

17 апреля 2011, 1:24:45 PM   # 10
 
 
Сообщений: 20
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

повторно все,

я был представлен к этому проекту genjix

прежде, чем услышать усилия Стива я также начал взлом на этом https://github.com/bitcoin/bitcoin/pull/162

ветвь в форме я хотел, чтобы получить его сейчас, только тестирование сборки с WX на Linux в то время как я пишу, то нужно будет заполнить пробелы тестирования сборки на OSX и Win, но должно быть довольно легко с помощью текущая настройка Autotools.

я думаю, организации кода в соответствии со стандартами GNU поможет намного больше кодеров ввязываться и сопровождающим координировать вклады, как правило, также кодеры, которые уважают такие стандарты очень хорошо, что они пишут, в его документации и тестирования.

я также планирую внести свой вклад больше Autotools знаний, DEBiAN упаковки, питон привязки, разделение кода в библиотеках (я использую Libtool так, что облегчает изготовление испытательных установок позже) и в целом его приятно внести свой вклад в этот проект, который я люблю и восхищаюсь, будучи себя C ++ кодер я найти его код только крошечный грязный, но все во всем что-то хорошее, мы можем построить больше.

почему бы здесь я не защищаю тянуть мою отрасль, как это. если вы хотите, я могу перебазироваться по-другому, вы можете вишневый выбор зафиксируется или я могу исправить ошибки сообщили. в конечном счете, я хотел бы объединить мое предложение с этим Стива и двигаться дальше, чтобы реализовать еще несколько идей (в основном связано с очисткой на этой ранней стадии)

Чао

постскриптум Не уверен, что о вас, но я действительно предпочитаю список рассылки разработки .... не жди, что я очень отзывчивы на данном веб-форуме, СРЮ.
Яромил сейчас офлайн Пожаловаться на Яромил   Ответить с цитированием Мультицитирование сообщения от Яромил Быстрый ответ на сообщение Яромил

20 апреля 2011, 7:30:57 PM   # 11
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Я не хочу говорить за какие-либо из других членов команды разработчиков, но я, как правило, приоритеты массовых повторных Orgs, как это ниже только о каких-либо других изменениях. Они создают много шума, что делает просеивание через историю более сложной (даже если мерзавец помогает с этим). Они ломают существующие патчи.

А на языке конкретной арены, два-файлов-за-класса (.h, .cpp) создает абсолютный взрыв маленьких файлов, который откровенно боль в заднице.

После сдачи вместе кандидата 0.3.21 релиза сегодня, я думаю, после того, как 0.3.21 выходит дверь может быть хорошее время, чтобы сделать главный источник дерево повторно орг. Мне нравится идея следуя стандартной схеме директорий GNU, и было бы проще, если моя работа источник был в SRC /, файлы README / и т.д. были в DOC /, скрипты для автоматизации сборки Windows, были сборки / и т.д.

PS: Яромил является вторым человеком, которого я слышал, кто говорит, что они предпочли бы список рассылки разработчиков. Я не забочусь так или иначе, но это было бы легко создать с помощью функции списка рассылки SourceForge в. Что думают другие?
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

20 апреля 2011, 8:39:58 PM   # 12
 
 
Сообщений: 70
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

PS: Яромил является вторым человеком, которого я слышал, кто говорит, что они предпочли бы список рассылки разработчиков. Я не забочусь так или иначе, но это было бы легко создать с помощью функции списка рассылки SourceForge в. Что думают другие?

Исходя из ядра Linux, я, конечно, предпочитаю списки рассылки, в частности, те, которые позволяют избежать Reply-To munging   AFAIK, большинство крупных проектов с открытым исходным кодом общаться по электронной почте, а не форумы?

xf2_org сейчас офлайн Пожаловаться на xf2_org   Ответить с цитированием Мультицитирование сообщения от xf2_org Быстрый ответ на сообщение xf2_org

21 апреля 2011, 5:19:55 AM   # 13
 
 
Сообщения: 868
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

После сдачи вместе кандидата 0.3.21 релиза сегодня, я думаю, после того, как 0.3.21 выходит дверь может быть хорошее время, чтобы сделать главный источник дерево повторно орг. Мне нравится идея следуя стандартной схеме директорий GNU, и было бы проще, если моя работа источник был в SRC /, файлы README / и т.д. были в DOC /, скрипты для автоматизации сборки Windows, были сборки / и т.д.

PS: Яромил является вторым человеком, которого я слышал, кто говорит, что они предпочли бы список рассылки разработчиков. Я не забочусь так или иначе, но это было бы легко создать с помощью функции списка рассылки SourceForge в. Что думают другие?
[/ Цитата]

Я бы голосовать за список рассылки ... в других проектах с открытым исходным кодом я работал, он работал хорошо. 

Что касается повторного орга, дайте мне знать, если я могу помочь. Я думаю, что простой подход разделения классов из в * .h, * -inl.h, * .cpp файлов является хорошим началом. Некоторые люди возражают на том основании, что он создает много файлов (в действительности, менее 150), но я думаю, что это ясное и простое правило, и позволяет людям легко использовать любой из классов в любой комбинации для пользовательских проектов, которые они могли бы работа над. Если вы не отдельные классы, как это, то, что вы делаете? Пять классов в файле? 10? Я думаю, что ясное и простое правило в связи с этим отвергает озабоченность в связи с распространением файлов (и на самом деле, мне нравится быть в состоянии увидеть все классы при выполнении "Ls" в каталоге).
Стив сейчас офлайн Пожаловаться на Steve   Ответить с цитированием Мультицитирование сообщения от Steve Быстрый ответ на сообщение Steve

21 апреля 2011, 6:18:01 PM   # 14
 
 
Сообщения: 137
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Стив, я с нетерпением жду вашего собственного клиента Mac, так как теперь официальный клиент макинтош не хватает для последней версии.
Алькор сейчас офлайн Пожаловаться на Алькор   Ответить с цитированием Мультицитирование сообщения от Алькор Быстрый ответ на сообщение Алькор

21 апреля 2011, 8:32:58 PM   # 15
 
 
Сообщения: 868
Цитировать по имени
цитировать ответ
по умолчанию Re: Реорганизация кода вокруг классов

Стив, я с нетерпением жду вашего собственного клиента Mac, так как теперь официальный клиент макинтош не хватает для последней версии.

На самом деле, у меня есть еще один проект, который барботировал впереди нативный клиента Mac в приоритетном порядке (только то, что я думаю, будет иметь более широкое обращение и более срочно требуется). Я не готов говорить об этом только еще, кроме как сказать, что я буду использовать эту ветку я создал для него. Я все еще хотел бы нативный клиент Mac, хотя.
Стив сейчас офлайн Пожаловаться на Steve   Ответить с цитированием Мультицитирование сообщения от Steve Быстрый ответ на сообщение Steve



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW