I try (again) to update my .NET FCP2 library to the current state of development.

I do not even expect that a rare Message is documented correctly, but something as essential as "PersistentGet" should be at least in a usable state, shouldnt it?

A protocol should rarely change, especially a client protocol. But its in constant change and some of the messages even have dynamic parameters of course completley undocumented!

If FCP shows anything of the development of the rest of the core, I am really happy I never looked at that code in deep!

Anyway from the documentation:

PersistentGet as an example Lists 3 Arguments which are not sent by the protocol anymore:

/FileName/, /TempFilename/, /ClientToken/, not that any of these parameters are ever described, but even the message in the wiki is still the same since April 2010. And it doesnt help that you refer to the source code, source code is NO DOCUMENTATION! its really desastrous that you expose complete datastructures directly into the protocol, it makes it MUCH too easy to change the FCP, and it looks like there are a lot of people changing these strucutres constantly.

In the meanwhile there are obviously 5 new undocumented fields in it....

/Started/, /Persistence/, /MaxSize/, /Identifier/, /Binary Blob/: most of these are now documented at least in the Call, and the removal of the ClientToken is certainly a good idea HOWEVER!!! ITS NOT DOCUMENTED!...

In the ClientGet-Documentation there is still the field "ClientToken" described as Returned in PersistentGet <http://new-wiki.freenetproject.org/FCPv2/PersistentGet>, a hint to the client, so the client doesn't need to maintain its own state. [FIXME: how does this differ from Identifier?] ...

You change the protocol permanently but have not even the time to send a message back, OH I am sorry, I do not understand that parameter, maybe its out of date?

There needs to be a versioning of the protocol, its impossible to keep track of all the source changes you do, and you should not expose datastructures directly to the client interface, this is a very poor design and makes impossible to support FCP2. This is not FCP2 this is at least FCP2.0.174

There need to be a review process, if you change the protocol - there must be a reason for that and not just conveniance, and the reason needs documentation. If you change anything in the FCP it should get a new protocol number and any change needs to be documented. If you do not invest 10 - 20% of development time for documentation, you do something wrong!

There is too much development going on and not enough planning documenting, hack something together, deploy and use all the users as testers...

I won't get into general Project Planning - if there is one, but the FCP is a reference for the outside, and it shows mainly incomeptence in a great degree. The main page still links to the old wiki, the new wiki is not used at all, there is not a single wiki-commit for the fcp in the last 30 days.

Regards,
Thomas Bruderer, Apophis
_______________________________________________
Devl mailing list
[email protected]
http://freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to