Software Challenge : Notizen zu bisherigen Arbeiten

Icon

Lose Sammlung meiner Notizen. Ich stelle sie hier rein in der Hoffnung, dass das eine oder andere noch nützlich ist.

Automatische Tests

Zur Zeit sind keine Tests vorhanden.

  [https://stackoverflow.com/questions/111389/best-way-to-add-tests-to-an-existing-rails-project]

  • keine Specs fuer vorhandenen Code schreiben
  • bei Aenderungen Specs schreiben
  • bei neuen Features Specs vorher schreiben

  Dies setzt eine bestehende Integration voraus. Die Anwendung muss also
  mindestens auf Specs vorbereitet werden. RCov ist auch hilfreich.

  Das Buch [Working Effectively with Legacy Code]. (Gekauft, auf Kindle)

  Warum? Regression vermeiden, Umstellung auf Rails 4 (aber dann
  braeuchte man bessere Coverage).


  [Working Effectively with Legacy Code]
  http://www.amazon.com/dp/0131177052/

Uebersetzungsdateien vereinheitlichen, Texte aus Views ziehen

  Ein Tool wird benoetigt. Eventuell [Translation Center].


  [Translation Center] https://github.com/BadrIT/translation_center

Darstellung vereinheitlichen

CSS Framework

  Bootstrap mit einer Semantik-Schicht darueber, SASS

Modularisierung, der Interface-Komponenten

Kontext-Problematik

  Das muss neu aufgebaut werden, der aktuelle Ansatz ist zu
  inkonsistent.

Deploy/Produktivbetrieb Dokumentieren/vereinheitlichen

  Zur Zeit wird die Web-App ueber Capistrano deployed. Alles andere
  passiert per Hand und ist teilweise in Confluence dokumentiert.

  Alles ueber SaltStack, dadurch wird alles automatisiert und
  gleichzeitig dokumentiert.

Datenbank von MySQL auf Postrgres

  Nicht unbedingt noetig, aber schoener.

Rails Version auf 4.0

  Unbedingt noetig (Sicherheitsrelevant) und der schwierigste Teil.

  • Docker Image mit Ruby 2.1: docker pull octohost/ruby-2.1
  • Dieses Image und bestehenden MySQL Container gestartet
  • bundle install (klappt nicht -> apt-get update && apt-get install
    libgmp-dev)
  • Rails Version in Gemfile auf 4.0.3 geaendert
  • bundle update
  • bundle exec rails new_rails
  • cd new_rails
  • therubyracer gem in Gemfile einkommentiert
  • sqlite nach mysql in Gemfile geaendert
  • Routes updaten (siehe [diesen Artikel.]), das rails-upgrade Gem
    hilft leider nicht (produziert nur ganz wenige Routen)
  • Routes werden erstmal ganz neu aufgebaut
  • Problem mit ACL, acl9 gem hinzugefuegt
  • application controller mergen
  • benutze surveyor gem von [diesem Fork] wegen Rails 4 kompatibilitaet
    (sollte aber bald gemerged werden)
  • named_scope -> scope (noch nicht vollstaendig gleich, muss noch
    getestet werden)
  • [liquid] wird zur Generierung von einigen Templates benutzt

  Die neue App hat den Namespace NewRails (siehe z.B. routes.rb). Das
  sollte noch geaendert werden.

  Die Aenderungen sind sehr tiefgreifend. Vermutlich ist das beste
  Vorgehen, eine neue Rails 4 Anwendung zu erstellen und den Source nach
  und nach von der alten Anwendung rueberzukopieren. Dies passiert in
  Branch rails.

  Es fehlen noch die statischen Resourcen, d.h. Bilder, CSS, JS

  Bluecloth ist veraltet und wird durch Redcarpet ersetzt.


  [diesen Artikel.]
  http://www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/

  [diesem Fork]
  https://github.com/ferrisoxide/surveyor/tree/feature/rails_4

  [liquid] http://liquidmarkup.org

Routes neu erstellen (RESTful, konsistent)

  Die Routes sind organisch gewachsen und schrecklich inkonsistent und
  unuebersichtlich.

  Es muessen alle Routes neu geschrieben und evtl. auch die URL-Helper
  neu angepasst werden, da diese auch verschiedene Konventionen
  verwenden.

Circular Dependency

  Server neu starten hat bisher immer geholfen.

Season Definition Builders

  Das sollten Generators sein, siehe [diese Guide].


  [diese Guide] http://guides.rubyonrails.org/generators.html

Namespaces

  Admin und User mit Namespacing trennen.

Dokumentation

  TomDoc