Hot answers tagged

14

I think warnings, which are not treated as errors, are useless. You get tons of them, therefore nobody bothers to look at them, and they miss their purpose. My suggestion is to fix them all, and start treating them as errors. Fixing them looks scary, but I think it can be done. A good programmer that would pick up this work will very soon figure out the way ...


11

Your solution is the right one. Put the shared code into a another project that builds its own JAR file, and use it in both projects. When building the JAR file, you may want to include the version in the name, e.g. in Debian style; libmyproject-shared-1.0.jar It doesn't prevent versioning trouble, but it should help. I've never used Maven, but I ...


10

Decoupling only works if there really is separation. Consider if you have an ordering system: Table: CUSTOMER Table: ORDER If that's all you've got, there's no reason to decouple them. On the other hand, if you have this: Table: CUSTOMER Table: ORDER Table: CUSTOMER_NEWSLETTER Then you could argue that ORDER and CUSTOMER_NEWSLETTER are part of two ...


9

Yes that's not a bogus test case, it's a valid test for expected exceptions


9

The reason you're getting the concepts jumbled up is that the vendors are selling them in a package. But they are definitely separate concepts. An API Gateway provides a central access point for managing, monitoring, and securing access to your publicly exposed web services. It would also allow you to consolidate services across disparate endpoints as if ...


8

Coming from someone who has had to come up to speed on a lot of different codebases in my career, here's what I would suggest: Spend a short amount of time (maybe a day or two) with activities related to using the product so that they can become familiar with what the product does. This could be verifying bugs or executing QA test plans or going through ...


8

I worked at a place that took 5 hours (across 30 machines) to run integration tests. I refactored the codebase and did unit tests instead for the new stuff. The unit tests took 30 seconds (across 1 machine). Oh, and bugs went down too. And development time since we knew exactly what broke with granular tests. Long story short, you don't. Full integration ...


6

Where I work we have an ESB to which 6 different applications (or should I say "endpoints") are connected. Those 6 applications work with 3 different Oracle schemas on 2 database instances. Some of these applications coexist in the same schema not because they are related but because our database infrastructure is managed by an external provider and ...


6

I've seen the worst possible nightmares in software architecture due to data integration, and the best weapon against this type of mess that I've encountered so far id DDD-Style Bounded Contexts. Which is not very far away from "SOA done right", on a certain sense. However, data itself is not the best way to attack the problem. One should focus on the ...


5

The more the input is loosely-structured, the harder is to parse it. In this way, XML is already loosely-structured. When I get <price/> tag, I expect it to be a number, like <price>59.90</price>, but nothing, in XML, ensures that I will actually receive a number. What about <price>USD59.90</price>, or <price>59,90 €</...


5

Decoupling databases and keeping the data consistent between them is an expert level task. It is very easy to get wrong and end up with the problems of duplicates etc, that the current system is designed to avoid. Frankly, taking a working system and doing this is pretty much a guarantee of introducing new bugs for no real value to the users.


5

There are probably those in the company that see too many disparate systems that are duplicating effort and making it harder to include data in the same report. The head of IT needs to focus on design and not be so myopic to think everyone using the same language is the panacea. Consolidating to the MS stack may make it easier to share developers and ...


5

Can access FoxPro from .NET? Yes, you can use the FoxPro OLE DB Driver provided by Microsoft, to connect to FoxPro through .NET. It may be done in C# the following way: OleDbConnection oleDbConnection1 = new OleDbConnection("Provider=VFPOLEDB.1;"+ "Data Source=C:\\myVFPDatabase.DBC;"); oleDbConnection1.Open(); OleDbConnection oleDbConnection1 = ...


5

create a one extra project in which all common things are defined This is the exactly first step to share reusable parts - and its the easy part. The more challenging part is if the two projects which are using the shared library shall have independent release cycles (or not), and if it should be possible that "project A" uses version 1.0 of your shared ...


4

You have at least two different issues here that you are conflating into one. Toolset / stack Communication For the first, you may or may not want to migrate towards fewer technologies. Having one of everything under the sun can make maintenance difficult, and does limit your ability to share certain parts of your applications. Communication between ...


4

There is no problem that cannot be solved by adding a layer of abstraction, except for having too many layers of abstraction. If you have four domains from four disparate apps, and you are attempting to integrate their functionality or data into one app, then use the four domains, with an extra layer on top to handle interop between them; each domain or SOA ...


4

Have you read anything about Enterprise Integration Patterns? There is an entire book on this subject and a variety of frameworks out there to help. http://www.eaipatterns.com/


4

My feeling is that most people's tolerance for reading documentation is fairly low (Good for a day or two, but beyond that they'll probably be itching to do something a bit more hands-on). I don't think you can really get understanding of an application's code without a reasonable understanding of the application itself. The software presumably has ...


4

I've only been working in industry for 10 months (On placement) but I found the following helped me: Teaming up with other developers and observing how they tackle issues. Testing the software helped, I would need to test feature x which means I read the documentation on feature x. I did this a lot, it helped. Both of those helped me a fair bit. Good ...


4

Don't touch any of the legacy code. Find a way to suppress the warnings for now. Making seemingly innocuous changes to the code can introduce bugs in code which, I assume, has already been tested and is relatively bug free. By suppressing all of the warnings that are currently in the codebase, you can pretend to have a clean slate. Any new warnings ...


4

Solution B only works if you request the data from System A every time it is required by System B. Otherwise you cannot guarantee the information is up to date. This is not as bad as it sounds and is in fact the basis of all SOA architectures. The decision of whether to push (Solution A) or pull (Solution B) depends on the ratio of updates in system A to ...


4

There are two sources of errors here: (a) numerical inaccuracies stemming from floating-point representations, and (b) general measurement errors, which in turn are either (b.1) calibration errors (your accelerometer has a skewed or drifting scale) or (b.2) statistical uncertainty. Errors from (a) are difficult, but possible to quantify exactly. However, ...


3

As the Lead, I spend at least 2 days with new developers. I've found that developing a relationship in which it feels comfortable to ask the inevitable question "how is your progress?" is a MUST. There is fear in any new community to fit in... we hide mistakes, act perfect, make things better than they are, lessen difficulty. A manager spending 2 days with ...


3

As someone mentioned in the comments, hosting Java within a C++ app would be difficult. You'd have to provide an environment for it to run in. It's not outside the realm of posibilities though. For example, the mono project has IKVM with is a .NET implementation of the Java Virtual Machine. This allows Java and .NET code to run together. Look at the sources ...


3

The branch workflow sounds a lot like gitflow http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow and there are support tools around it. It is highly recommended. If there is only one tester, your testing workflow sounds fine, but if there are multiple people then development might move between start and finish, and of course testing should ...


3

I was reading C++ Coding Standards: 101 Rules, Guideleines, and Best Practices and the second of guidelines suggests "Compile cleany at high warning levels". It outlines a number of reasons why you would not want that many warnings in a program and chief among them are There is a potential problem in your code. Should have silent, successful builds and, ...


3

Ask yourself and your business very carefully, sincerely, and repeatedly, if it really needs to be real-time. As in, really instant? Are we talking about atomic, you can never ever have those two servers out of sync, not even for a microsecond? Or is there really some kind of SLA attached and the data can be stale for maybe a few milliseconds, or a few ...


3

No, it's not an unusual requirement. It's common to expend significant effort to make upgrades as seamless as possible for the customer, sometimes even going so far as to purposely retain bugs that client software depends on. I've had similar requirements even in environments where upgrades are done quickly with a script, even if the dual code is only in ...


3

If you built a house and you want to describe it to someone, would you talk about what kind of flooring material you used? About what kind of hammer and tools you used? About the plumbing? You might, but none of this has to do with architecture. Architecture is about what kind of rooms there are, where they are and how they are connected. So the first ...


3

Integration tests will always be long running as they should mimic a real user. For this very reason you shouldn't run them all synchronously! Given that you are already running stuff in the cloud it seems to me like you are in a prime position to scale your tests over multiple machines. In the extreme case, spin up one new environment per test and run ...



Only top voted, non community-wiki answers of a minimum length are eligible