<br><div class="gmail_quote">On Thu, Mar 26, 2009 at 11:58 AM, Michael <span dir="ltr"><<a href="mailto:omniorb@bindone.de">omniorb@bindone.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I totally agree with Nigel, in six years of using CORBA I never wrote a<br>
server application that didn't create its own POAs. No offense, but<br>
quite frankly I think that argument is flawed ("we are the only ones<br>
writing complicated software and one day it will hit us"). This is<br>
exactly why you need coding guide lines. So, if you're concerned that<br>
people will break code by using _this in the wrong way, enforce the<br>
usage of a wrapper function that throws when _this is called on an<br>
inactive object. Make that an inline function and the performance<br>
penalty will be neglectable.</blockquote><div><br>Oh, that is for sure... I'll try to invent some C++ mechanism that will make it harder to break. <br></div><div> <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
You can then include a check for "_this" in<br>
your QA process (e.g. grep "_this" *.C *.h). </blockquote><div><br>Our "QA process" would surprise you :-D . Essentially it is absent. entire product is single threaded, well divided in parts and people working on it are experienced C++ developers, those that learn are under close supervision (but most of them are not particlarly exposed to every intricacy of CORBA, esp considering that we switched from Orbacus to omniORB quite recently -- it took ~six month of work, and I had to learn CORBA in a very short time). <br>
<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Quite simple. It's pretty<br>
much like every piece of code, people will make mistakes, as a project<br>
leader/manager it is your responsibility to define best practices and<br>
setup a QA process.</blockquote><div><br>I disagree -- it turned out that _this()'s behaviour is quite twisted... One thing when developer screws with nicely designed framework or library and another one -- when he steps on rakes of something like _this(). (pun intended :) )<br>
<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> Especially in C++ it's all about your people not<br>
doing stupid things (like enforcing use of smart pointers, RAII<br>
principle etc.). Developers will always find ways to break code.</blockquote><div><br>No, if they are experienced and tools they are using well-thought out and well-designed.<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Did you<br>
ever consider using a different Middleware/RPC solution, because the<br>
CORBA C++ mapping is pretty complicated (once you master it it's simple,<br>
but from my experience training people is a nightmare)?</blockquote><div><br>Agree, CORBA keeps surprising me... And after all I've learned I am not sure that CORBA is a necessary a good thing -- it's complexity, myriad of non-obvious details outweight many of it's benefits. I am sure those who make decisions on that level considered other alternatives to CORBA, but risks & costs of switching to something else are (probably) in CORBA's favor. <br>
<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> I would never<br>
again setup a project based on CORBA if I knew that many developers will<br>
have to maintain the codebase.<br>
</blockquote><div><br>:-) Sorry, it won't work here -- we have a very large in-house product that is under constant development for last 10 (or maybe 15?) years. About every month or two we have a new release. People come and go regularly, and I am just one of them. We are saved by the fact that product is single-threaded (on purpose) and not many want to touch communication layer (that uses CORBA)...<br>
</div></div><br>-- <br>Sincerely yours,<br>Michael.<br>