Is it really a problem to mix Backend (BE) and Frontend (FE)?
- I'm doing both: FE and BE and I'm 'pro' in both areas.
- Our FE developers learned Domino platform in few weeks, so we have no problems, they feel comfortable with doing stuff with IBM Designer.
- Our FE guys simply say what to change and we do that, they send us some template each time we need to change something.
- We are doing internal website and our internal employee do not care about speed, modern UI etc.
Where is a problem?
1. Classic example (mail9.ntf, form memo)
Problems:
- almost impossible to deal with that if you are not skilled in Domino;
- have to know @Formula language to change <Compute Values> or hidden formulas;
- have to know that fields might have some properties (classes, styles, id etc);
- should ask for help each time they need to change UI;
Problems:
- more skill required about Domino, Java, SSJS and xPages especially;
- controls will generate HTML automatically and it is a problem for our team as we aiming for 100% control;
- as it's even more complicated, potentially FE will ask to involve BE developers each time they need to chagne UI.
If we split BE and FE then what?
Wanna see 'Hello world' example?
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "Velocity");
map.put("author", "Joker");
velocity.applyVelocityTemplate("hello.world", map)
## Velocity Template; id 'hello.world'
<html>
<body>
## our hello world example
Hello $name World!
$author
</body>
</html>
<html>
<body>
Hello Velocity World!
Joker
</body>
</html>
Summary
Other articles in this series
- How we build our web applications based on Domino
- Split back-end and front-end areas, they should not block each other and be independent as much as it is possible.
- Front-end guys should not have any knowledge about Domino, they don't need IBM Designer installed at all.
- Back-end guys must have knowledge about Domino, however they don't need to use IBM Designer, only in very rare cases. Backend should be done using only Java (no LS/SSJS/@Formula etc)
- Using Git+Jira is must and Jenkins server as builder server
- Auto-tests.