Month: August 2014

W IT nie piszemy po angielsku tylko po amerykańsku

Posted on

Jest wiele słów które się inaczej pisze. Najczęstsze to color (colour) oraz neighbor (neighbour). Zawsze starałem się pisać po angielsku, jako że jest to bardziej poprawna forma. Na co dzień przecież używamy angielskiego, a nie amerykańskiego. Dopiero niedawno zdałem sobie sprawę z tego że kod powinno się pisać po amerykańsku.

Możnaby pomyśleć że to nieistotne. Ja już jednak wiele razy widziałem w projektach pisane raz tak a raz inaczej. Nie ma problemu gdy sobie taki kod oglądamy. Wszystko wydaje się zrozumiałe (color czy colour – co za różnica).

Najgorsze jest gdy trzeba poznać taki projekt. Poszukać po nazwach. Wyszukanie referencji czasem nie wystarcza, bo cześć kodu może być np. zakomentowana. Czasem okazuje się że w dwóch różnych miejscach solucji są rozwijane podobne funkcjonalności. Dlaczego? Kiedyś ktoś utworzył klasę NeighbourCosTam. Ktoś inny szukał Neighbor. Nie znalazł więc stworzył własny NeighborCosTam.

Poprawię się od dziś tylko Color oraz Neighbor (po amerykańsku).

Approval Tests – gdy zwykły assert to za mało

Posted on Updated on

http://approvaltests.com

Do posłuchania podcast Hanselmanna

Muszę je jeszcze zgłebić w praktyce. Pozwalają na bardziej kompleksowe porównywanie obiektów. Np porównywanie plików do siebie albo obiektów do jego reprezentacji która jest w pliku.

Dla .NET: https://github.com/approvals/ApprovalTests.Net

Ścieżki bezwzględne w Nancy zamiast HttpContext.Current.Server.MapPath()

Posted on

Dzisiejszy bohater – IRootPathProvider.GetRootPath().

Zamiast

public HomeModule()
{
    string filePath = HttpContext.Current.Server.MapPath("/Pdf/VERDANA.ttf");
    // ...
}

Używam

public HomeModule(IRootPathProvider pathProvider)
{
    string filePath = Path.Combine(pathProvider.GetRootPath(), "Pdf/VERDANA.ttf");
    // ...
}

Po prostu lubię się pozbywać zależności od HttpContext.Current

Źródło: Nancy – The root path

AngularJS pitfall #2

Posted on

Nie działał routing (korzystam z ngRoute). Problemem podczas przekopiowania było to że ścieżki w definicji routingu musza zaczynać się od slasha.

angular.module('app', ['ngRoute'])
    .config(function ($routeProvider) {
        $routeProvider
            .when('/admin/events/new', { // nie działało gdy było .when('admin/events/new'
                controller: 'EventsNewCtrl',
                templateUrl: '/app/Events/events-details.html',
            })