Skip to content
This repository has been archived by the owner on Nov 12, 2017. It is now read-only.
atla edited this page Sep 13, 2010 · 13 revisions

Notes for presentation

General Suggestions

  • There should be no such thing as a multisegment search.. Look at the Deutsche Bahn Webinterface. You first select one trip, then the trip back or to somewhere else. Step by Step. When gathering ALL possible connections and travel routes to take with 3 or more segments we easily get into a combinatorial explosion that we just can’t handle anymore. Even if all combinations could be found in like 6 Seconds we still need to display something like 2825761 different routes you could take.
    And for a webservice this approach would also just not work. Maybe limit the maximum amount of results?
    My approach would be: Display the five cheapest trips, the five shortest trips and the five most accurate trips to your search. That would also clean up our result page a lot i think.

Interface Contract

  • Relaxation doesn’t work as intended when implementing that in Scala
    • Override cannot be less specific than toplevel interface signature as of erasure.
    • Lufthansa cannot have (Place, Place, …) if super signature has (Airport, Airport, …)
  • Interface is not correctly namespaced and also doesn’t provide error contract
    • Perhaps some Airports or Places are not supported by a specific service
      • This should not lead to empty result but should be signaled to the outside, wether service call or code call.

Implementation

  • Using approach with loading data step by step to avoid large object masses.
  • Traverse from a starting point recursively and load data on-the-go.
  • Return results in an internal data structure (lift mapper classes from model) and convert them to the interface spec when returning them.
  • On call transform external interface types to internal mapper classes from model or throw error if invalid.
Clone this wiki locally