Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    Finishing some development documentation, training more developers

    Technical Development
    5
    7
    2023
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • lizhi
      lizhi last edited by

      Must admit that this is a complex system. Sometimes I think some of the new features, Most of the time, I’ll go check Bitcoin information,But we have a lot of different codes with them.so I do not know where to start writing code.

      Who can provide some information for the development ? Bushnell , Tonny or wellenreiter

      1 Reply Last reply Reply Quote 0
      • Wellenreiter
        Wellenreiter Moderators last edited by

        I just can tell how I do it…

        I’m mainly fixing code, or implement small enhancements only.

        The way I work is:

        • I see a problem

        • I branch and download the code from Github

        • I try to read the code (C/C++, python, java, …)

        • Them I try to implement my changes.

        I’m always learning by doing, as I’m no professional programmer and my first real contact with python was, when I setup and used p2pool. Then Stratum support for neoscrypt was needed and I learned a lot about python, while trying to fix the stratum problem.

        The same is true for C/C++ (long ago) and java, where I wanted to modify existing code and that way learned a bit of the languages.

        Nevertheless I agree with you, that the crypto system is very complex and it is not easy to understand code written by somebody else, especially, as most sources do have little or no comments in the code describing what a procedure/subroutine/statement is doing.

        If you want to enhance existing code, I suggest you follow the Github process: fork/branch code-> modify/implement enhancement-> test-> create pull request to get your changes into the main branch/upstream project.

        What we could do to enable other developers to join is the following:

        1. Always have a subscripive readme.md file on Github.

        2. Place comment lines in the code, describing at least the function of a procedure, may be where is is called from, and where in the workflow it is used.

        3. Optional: create a delevopers information on the github wiki, include flow diagrams, object description and object relationship.

        to be honnest, I don’t believe, that we ever will get 3) ;)

        Feathercoin development donation address: 6p8u3wtct7uxRGmvWr2xvPxqRzbpbcd82A
        Openpgp key: 0x385C34E77F0D74D7 (at keyserver.ubuntu.com)/fingerprint: C7B4 E9EA 17E1 3D12 07AB 1FDB 385C 34E7 7F0D 74D7

        1 Reply Last reply Reply Quote 0
        • kris_davison
          kris_davison last edited by

          Nicely explained thanks.
          I agree 3 is likley never to happen but with good comments you can usually figure out what’s happening. Another good thing to know is where the code is launched from / starting code is. As starting from the beginning usually helps. :)

          1 Reply Last reply Reply Quote 0
          • D
            DemocraticRepublicOfDave last edited by

            Hi all,

            Well I’m a bit of a fan of doxygen - which with a few tweaks to the comments, you can use this to autogenerate html or even .pdf documentation on the code and hey presto, done (although you have to take the time to understand the code and add the comments to the classes/methods and variables).

            The comment formats are pretty easy to follow - I have used it over the years to document as I go.

            Cheers

            Dave

            Links - Doxygen main page http://www.stack.nl/~dimitri/doxygen/

            Example of doxygen comments : http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html

            1 Reply Last reply Reply Quote 0
            • D
              DemocraticRepublicOfDave last edited by

              Just cloned the feathercoin source - I see a doxygen config file in the /docs directory. Going to run doxygen on the source and see what I get.

              Cheers

              Dave

              1 Reply Last reply Reply Quote 0
              • wrapper
                wrapper Moderators last edited by

                Re: Software development notes:

                As a manager / specifier / QA / tester / hacker - when I worked at the Manchester University developing software, there are different levels and skills needed in software development, testing and deployment.

                All programmers need to “know” how to program in different languages. Also, proper code design and interface design are specific skills.

                Where as, understanding someone else’s complex code and hacking that with fixes updates is a different skill, in some ways harder.

                I think Wellenreiter underestimates the importance of what he has achieved for Feathercoin, in packaging support and development particularly.

                I’m learning Github as well, in the past such systems were unreliable and version control was done by hand. Absolutely amazing and state of the art and anyone can get involved and learn it.

                apart from that : most things are new to me - I’ve used FORTRAN BASIC Clipper SQL Delphi Pascal DBASE and Java. Now I’m hacking/ reading pascal C++ python Javascript BitcoinAPI JSON .

                It is virtually essential to bring in an expert in niche areas - especially if developing a whole new “module” or “function.”

                Happy to help investigate particular problems.

                1 Reply Last reply Reply Quote 0
                • D
                  DemocraticRepublicOfDave last edited by

                  Hi all.

                  I have generated doxygen documentation based off of the current master branch on github. It seems like bitcoin started to use doxygen but it was then discarded after a while.

                  If anyone is interested I have uploaded the generated documentation to an old unused website of mine:

                  http://www.bishop-morrison.com/feathercoin/index.html

                  The documentation includes class hierachy diagrams and also the source with hyper-text links.

                  http://www.bishop-morrison.com/feathercoin/inherits.html

                  http://www.bishop-morrison.com/feathercoin/files.html

                  As I will be going through the code anyway to understand it, I could document as I go (in a light way, not with heavy detail at this point).

                  Thoughts?

                  Cheers

                  Dave

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post