+
Skip to content
Hannes Hauswedell edited this page Feb 24, 2017 · 1 revision

General Design of SeqAn3

Goals (same as SeqAn2)

  • high performance
  • generality
  • extensibility
  • blabla

Paradigms (not the same as SeqAn2)

  • Modern C++17
  • Generic programming & polymorphism/polytypism via Concepts
  • Extensibility of existing types via traits
  • weak object-orientation with member variables, member functions, and access restrictions
  • but without without virtual inheritance (specialization through concepts!)
  • don't reinvent the wheel, use STL, SDSL, cereal, boost

Reasons

  • code is easier to read and maintain
  • code is easier to write (after some training!)
  • less code is required for the same outcome
  • some things we don't have to do at all, because other people have already → less time spent on FOO, more time for adding features and writing great applications

Structural changes

While we are at it, we also:

  • switch our syntax to be more like STL, SDSL...: snake_case
  • switch to a third-party documentation system
  • switch to a third-party test framework
  • reorganize the git repositories

Quality control

SeqAn3 will have much stronger quality control from the start:

  • continuous integration, continuous deployment
  • automated style check and static code analysis
  • stricter development policies, e.g.
    • all functions must provide documentation of data races, exception safety, asymptotic run-time

What this means in practice

TODO

Clone this wiki locally
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载