I'd like to learn more about/better understand common java web development practices of development groups that have at least two teams - web designers and web component developers. Particularly, I'm interested in understanding things like:
Assuming there is a code repository, do all teams checkout a local copy of all code? If yes, why would a web designer want/need access to back-end code, similarly why would a web component developer want/need access to front-end code?
How does each team-member, regardless of team, test their code - do they 'deploy' the code to their local workstation, an individual instance on a development box, or a consolidated dev box?
How is integration and testing done? For example, let's say a web designer creates a 'sign-up' form page and web component developer creates the back-end code to process and insert the data into the db - how would the front-end and back-end code be integrated and tested?
Any additional information that pertains to java web development practices of development groups that I have not specifically inquired about, but is relevant, please do share.
EDIT (FOLLOW-UP): I appreciate the answers, they've filled in most of the conceptual holes I had about java web development. However, I do have a couple of follow-up questions -
Testing, particularly automated testing are clearly important parts of java web development; but what constitutes a good "test"? For example, lets say a java back-end developer just put together code that accepts form data, validates it, and then inserts into/updates a database. What would be a good test in this scenario? Furthermore, how could this be "automated"?
Can someone expound on continuance integration - i.e. is their purpose to only compile all project code? Or is it to help in automated testing? From what I understand continuance integrations servers monitor repositories for commits, and upon commits checkout the newly modified code and compile the entire project; upon successful/failed compilation the user(s) are notified.
We always check out all the sourcecode we can get our hands on. Source code for external libraries, backend systems and the works. Reading code of backend systems makes it easier for frontend developers to understand what's going on. Backend developers sometimes read frontend code to see how things are actually being used. More code is a good thing. Maven also supports auto-downloading of source code, which is great.
We use maven, and I really recommend it in a team environment. We deploy locally, on team centralized test servers and common acceptance environments. The closer to "home" you can test things, the cheaper and more efficient.
We use selenium for a lot of testing that allows use to test "through the front" of a properly deployed webapp. Other than that, most of the integration tests that run parts of the stack run as regular junit tests within a maven profile.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With