bee2c - paulvi/notes GitHub Wiki

0

Best direction for architecture are business needs and requirements. While some technology innovation can enable new features, starting using them without business need will make project more complex and worse. (See YAGNI)

On March 16th Architect group meeting was accompanied by Si Zong and Han YiZong. Bee2c product current and future were discussed.

The expectation are

General

  • to speed up team work
  • increase efficiency, eliminate time waste over old tools and approaches

Performance

  • [industry] standard response within 0.5s for basic integrations, no longer then 5s for processing operations (only that user can accept to wait) ETCA-6226

  • double maximum daily served users from 20 000 to 40 000 within standard response

  • double maximum monthly saved users from 56 000 to 100 000 within standard response

  • English version (incl ETCA-6227)

  • Maintenance message ETCA-6225

#1 May-20th-architect-group-meeting

  • New modules with new stack requires independent team of 2-3 developers that work 100% on one project, but we don't have these resources as old guys can only devote 20% of time
  • Use shorter com.bee2c. as module and package prefix
  • Focus on dididache as the module for new framework
  • Contracts can be implemented within older codebase
  • continue with new stack. Note that Database can be reviewed in 6 months
  • learn and do sharing
  • Architecture approach is to use application per subsystem, and these subsystem apps have average hardware requirements
  • Need new server to arrange systems

2

New project

  • requirements

Desision

  • seprate Application (We can't continue to put all new feature into exisitng app)
  • new database (We can't continue to use Oracle DB for all), we needed simple database and we selected PostgreSQL, as proposed by Han YiZong and confirmed on Architects group

Technology stack

Spring MVC + FreeMarker

Spring core 4.2.x JPA 2 (over hibernate) Spring MVC 4.2.x jackson logback

Looking for feedback (if no feedback do not use in production only for prototyping)

  • Spring Boot 1.3 for bootstraping
  • Spring Data Repositories API (instead of JPA 2)

Environment and tools

Standard environment document: exact recommended locations

  • JDK 8
  • Maven 3.3
  • Eclipse Mars.2

3 months summary

start architects group lead to make decisions on frameworks, stacks and approaches quicken-up communication cycles

old analyze old code base: 50 minutes build; 1,5GB in size, .java files 375MB, 69 modules, and a lot of small issues that needs time and cooperation to clean up spent enough time for get a sense of work ammount, finally decided not to pursue putting all new functionailty into the same 1 application and the same database

new infrastructure new Spring-based stack for learning and adopting

Trainings

attended: 新员工3天培训 SD系列数据库核心技术架构实战峰会(深圳站) http://www.huodongjia.com/event-930942.html made: Maven, Gradle, Nexus Spring boot and current work sharing, get the feeling and know value part for a project

Plan: as architect

  • continue to fulfill goal set on March 16th meeting
  • address 5+ issues from Problem_list.xls as talked over with Chen.Ledan
  • architects group
  • CODE STANDARD
  • solid software design practices
  • supervise code quality
  • make sure pair-reviews go on
  • Unit and integration testing automation
  • delivery pipeline, automatic deployment int INTegration, UAT environemnt
  • quicken-up communication cycles continue both old and new threads:
  • mavenize bee2c 100%
  • share, educate about new Spring-based stack

Principles - sharing knowledge is power - one new thing at a time - engineering excellence

⚠️ **GitHub.com Fallback** ⚠️