Comprehensive Overview of Our Company’s Technology Stack, Server Environment, and Team Management Practices
This article presents a detailed case study of a mid‑size development team’s front‑end and back‑end technology stack, server environment, project workflow, and management practices, aiming to share practical solutions and lessons learned for building and maintaining enterprise‑grade Java applications.
Purpose
The goal is to analyse, from a personal perspective, the technology stacks used in the company, the problems they solve, and the daily project‑management methods of a team of dozens, providing a holistic view that may inspire others.
Key Points
Only technologies that solve real problems are introduced.
Front‑end Technology Stack
1. CSS3 for styling
Solves page rendering issues.
2. HTML5 for page structure
Addresses mobile compatibility.
3. SeaJS framework
Handles modular development and loading.
4. jQuery
Facilitates DOM manipulation.
5. Popular front‑end plugins
bootstrapValidator for form validation
Bootstrap for layout
layer for modal dialogs
jQuery cxSelect for cascading dropdowns
bootstrap‑fileinput for multi‑file upload
iCheck for checkbox styling
UEditor for rich‑text editing
6. Custom business plugins
Eliminate code duplication for features such as collection, like, comment, message, follow, personal‑info settings, payment triggers, and exam‑paper question panels.
Back‑end Technology Stack
1. Layered architecture
Core layer provides generic capabilities (DB persistence, Redis cache, HTTP wrapper, utilities). Base layer represents core business entities. Business layer handles cross‑project logic. Web layer serves external users with isolated services.
2. Shared services extraction
Common services (SMS, email, dictionary, collection, follow, order, payment) are packaged as reusable JARs.
3. Jedis‑based Redis wrapper
Unified ID generation and caching of Freemarker snippets to reduce database load.
4. Maven for project management
Custom archetypes for rapid project creation
Aggregation for multi‑module builds
Inheritance for shared configuration
Properties for variable substitution
Standardised resource layout
Dependency management and conflict resolution
HTTP proxy for repository access
Publishing internal artifacts to Nexus
5. Nexus private repository
Prevents duplicate JAR downloads
Enables internal artifact sharing
Manages third‑party libraries
6. GitLab for version control
Supports collaborative development with defined workflow.
7. Jenkins/Hudson CI
Automates build, publish, rollback
Scheduled builds for early issue detection
One‑click deployment
Build steps: pull from GitLab → Maven build → SCP to server → remote script execution
8. MySQL for data storage
Standard relational database.
9. Spring + Spring MVC + MyBatis (SSM)
Handles HTTP requests, business logic, and persistence.
10. Hibernate Validator
Validates incoming parameters (non‑null, range, etc.).
11. Spring MVC interceptors
Implements permission checks (SSO, role, payment).
12. Spring AOP
Extracts common code such as uniform JSON responses.
13. Logback
Logging framework.
14. Flying‑saucer + iText + Freemarker
Generates PDFs (exam tickets, reports).
15. JavaMail
Email sending service.
16. TestNG + H2
Unit testing for code quality.
17. Cookie + Redis
Implements single‑sign‑on.
18. Global exception handling (HandlerExceptionResolver)
Unified handling of business, timeout, and other exceptions.
19. ServletContextAware
Initialises Freemarker config and global static variables (domain, file storage path).
20. Quartz
Scheduled task execution.
21. Jsoup web crawler
Scrapes external site data.
22. QR code generation
Provides QR‑code functionality.
23. Custom JSP tags
Implements site‑wide pagination.
24. Druid connection pool
Manages database connections.
25. Spring IoC container
Dependency injection for flexible implementations and configuration.
26. CXF / Axis
WebService integration with third parties.
27. Custom annotations + reflection
Method access control
Inject user info via AOP
28. MyBatis
Data persistence
Mapper interfaces for CRUD
PageHelper for pagination
Interceptor for SQL logging
29. JSP / Freemarker view layer
Renders UI.
30. Custom Freemarker tags
Handles dictionary‑like cross‑table lookups.
31. Custom JSON view
Standardises JSON response format.
32. EL expressions & JSTL
Accesses model data and handles view logic.
33. Custom annotations for feature toggles
@Void to skip JSON wrapping
Annotation‑based SSO interception
AOP + annotation for user info injection
Server Environment
Unified internal test and production environments
Nginx for reverse proxy, static‑dynamic separation, IP restrictions, request routing
Redis for business cache
Tomcat as web container
JDK 8
MySQL database
Mount for static resource mounting
Team Management
Management philosophy: self‑management, learning, progress, openness, sharing.
1. Java coding standards
Project naming
Output standards
Development guidelines
Front‑back API contracts
Java coding conventions
URL design
2. Database operation standards
No stored procedures
Naming conventions
Field types
SQL change tracking and approval
3. Worktile for project & task management
Centralises documentation, meetings, timelines, and sharing.
4. Internal wiki for knowledge retention
Facilitates collaborative editing and knowledge solidification.
5. Pair programming
Accelerates onboarding and reinforces knowledge.
6. Reading culture
Daily reading time and weekly book sharing.
7. Coding habits
Morning planning on XMind, afternoon implementation.
8. Regular demo sessions
Encourages high performers and supports slower teammates.
9. Code reviews
Ensures adherence to standards and shared coding style.
10. Daily work plan
Clarifies goals, blockers, risks, and resource coordination.
Software Build Process (Project Management)
1. Project Initiation
Control difficulty and scope
Define timeline and deliverables
Allocate resources and create Worktile project
Produce stakeholder‑approved project plan
2. Requirement Analysis
Product explains project and prototype
Derive system flowcharts
Validate understanding with product
Extract domain terms and use‑case list
Assign, schedule, and prioritize use cases
3. System Design
Deduplicate and classify domain terms
Create class diagrams
Validate coverage against prototype
Define class relationships
Draft method pseudocode (future work)
Design complex business logic
Plan service deployment per layer
Plan URL list from prototype
4. Product Development
Create base, business, and web Eclipse/IDEA projects
Define entities, services, and annotations
Generate database schema
Configure Nginx, host, and Jetty
Follow URL list to create physical files
Implement use cases in code
Daily code review
Local self‑testing per use case
Team demo of completed use cases
5. Product Testing
Merge to master and add to CI pipeline
Sync production data to internal DB
Execute DB migration scripts
Update server configs (Nginx, Tomcat)
Coordinate internal testing with business
Validate workflows, UI, and compatibility
Release when no critical bugs remain and stakeholders approve
6. Project Summary
Complete missing documentation
Team members record personal gains in XMind
Discuss and consolidate improvement list
Assign owners and schedule knowledge‑sharing sessions
Identify high‑cost, complex, repetitive areas
Root‑cause analysis of process/tech gaps
Assign project owners to resolve issues
Final demo to product for acceptance
Team Tools
1. IDEs: Eclipse and IntelliJ IDEA
Standardise version, plugins, settings, shortcuts, and code templates.
2. Network tunnelling: PeanutShell or ngrok
Enable internal‑network penetration for payment and API debugging.
3. Additional recommended tools
XMind – mind‑mapping
Everything – file search
Weizhi – knowledge management
Notepad++ – advanced editor
Postman – API testing
SecureCRT – SSH client
Navicat – DB client
Jetty – web container
SourceTree – Git GUI
PowerDesigner – modelling
Visio – flowcharts
Lantern – VPN
TeamViewer – remote control
JD‑GUI – Java decompiler
FFmpeg – video processing
Snipaste – screenshot
Screen Recorder – screen capture
PS: If you find this sharing useful, feel free to like and share.
(End)
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.